Вы находитесь на странице: 1из 4

Agrupacin de artculos cientficos, empleando el

algoritmo K-means.
Martha Suntaxi-Sarango.
Ingeniera en Sistemas,
Universidad Nacional de Loja
mcsuntaxis@unl.edu.ec

Resumen- En este documento se presentan los resultados DB 701


obtenidos luego de implementar el algoritmo k-means, primero AI 249
se analizan los datos que vamos a clasificar, luego de aplicado el
algoritmo para agrupar los datos, se analizan los resultados
HCI 508
determinando que tan eficiente es el algoritmo para el conjunto ML 590
de datos analizados
Palabras Clave- Inteligencia artificial, k-means, agrupacin,
clasificacin. III.PROPUESTA

I. INTRODUCCIN Para agrupar los artculos se aplica el algoritmo de


agrupamiento K-means. Se implementar el algoritmo en el
Actualmente la informacin es el recurso ms abundante y entorno de desarrollo MATLAB (Anexo 1). Como sabemos al
es debido a la gran cantidad de informacin que existe, por lo iniciar el algoritmo los centroides son seleccionados
que es necesario concretar mtodos para agruparla de manera aleatoriamente por lo que se debe utilizar un random (Anexo
que sta se pueda explotar de la forma ms ptima. Lo mismo 2).
ocurre en inteligencia artificial donde se disean modelos que Al momento de seleccionar a que grupo pertenece cada
permitan determinar las mejores agrupaciones de datos. dato se necesita medir las distancias, para ello se aplica
Uno de ellos es el K-means un algoritmo de agrupamiento distancia euclidiana (1) el cdigo aplicado se encuentra en el
de los ms simples. El proceso para dividir una base de datos Anexo 3.
dada en k grupos; es primero definir k centroides (uno por cada

grupo) y luego tomar cada punto de los datos y situarlo en la
clase cuyo centroide sea el ms cercano. El prximo paso es (, ) = ( )2 (1)
recalcular el centroide de cada grupo y volver a distribuir =1
todos los objetos segn el centroide ms cercano. El proceso Para medir el rendimiento del algoritmo se implementa la
se repite hasta que ya no hay cambio en los grupos de un paso funcin de costo (Anexo 4).
al siguiente [1]. Uno de los problemas del empleo de este
algoritmo es que fallan cuando los puntos de un grupo estn IV. EXPERIMENTOS Y DISCUSIN
muy cerca del centroide de otro grupo, adems de que este
algoritmo es susceptible a datos externos. Los ficheros analizados contienen valores de 1 y 0, para el
caso de keywords nos resulta en una matriz de 3312x3703,
II. PLANTEAMIENTO DEL PROBLEMA donde el valor mnimo de palabras clave de un artculo es de
8, el valor mximo es de 54 y la media es de 31.75 y en el
Se desea agrupar 3312 artculos cientficos extrados de la caso de references tenemos una matriz cuadrada de
base de datos Citeseer, cuya informacin se ha almacenado 3312x3312 donde el valor mnimo de referencias de un
en tres ficheros: artculo es de 1, el valor mximo es de 99 y la media es de 2.77
classes.csv: una lnea para cada artculo, en la que se (Tabla 2), no existen valores ausentes y no es necesario
indica a qu tema pertenece. Hay seis clases de artculos: normalizar porque como ya se mencion en un principio son
Agents, IR, DB, AI, HCI, ML (Tabla 1). valores de 1 y 0.
references.csv: una lnea y una columna para cada Tabla 2 Media/Minimo/Maximo de los datos
artculo, donde un 1 en la celda (i,j) significa que uno de los
dos artculos (i o j) referencia al otro (j o i), y un 0 significa FICHERO MNIMO MXIMO MEDIA
que no se referencian entre ellos. Keywords 8 54 31.7527
keywords.csv: una lnea por cada artculo, una columna References 1 99 2.7766
por cada una de las 3703 palabras clave extradas.
Como sabemos al momento de ejecutar K-means los
Tabla 1 Clases de artculos por tema segn el fichero clases.csv y el primeros centroides se seleccionan de manera aleatoria, este
nmero de artculos que pertenece a cada tema
mtodo de seleccin afecta a los grupos que se forman por
tanto, se ejecuta el algoritmo un total de 10 veces y se obtiene
TEMA DEL # DE ARTCULOS POR
la funcin de costo de cada uno, los centroides aleatorios que
ARTICULO TEMA
resulten en la menor funcin de costo (Tabla 3, Tabla 4), se
Agents 596
consideran los centroides ptimos.
IR 668
al dato ms cercano. El grupo con ms artculos es el de
Tabla 3 Datos obtenidos en 10 ejecuciones del K-means para el caso nmero 5 que posee un total de 1262 artculos cuyo
de keywords. Se recopilan posiciones de los Centroides elegidos representante es IR y el que contiene menos articulos es el HCI
aleatoriamente y la funcin de costo para cada caso (grupo 2) con 276 artculos. Como se puede observar en la
tabla 5, las clases resultantes se encuentran desequilibradas.
# CENTROIDES FUNCIN DE COSTO
[323 2094 3025 421 Tabla 5 Resultados obtenidos aplicando K-means al fichero keywords
1 29.5542
3000 2698]
[3215 522 3196 3171 U # artculos Artculo Distancia
2 29.5075
1811 922] por clase representante
[3033 1397 470 2651 (Centroide)
3 30.0376 1 534 ML 2.928395
1608 3170]
[3093 2812 118 2172 2 276 HCI 3.991719
4 30.2396 3 452 DB 4.358952
3178 2624]
[142 51 2720 1170 4 294 HCI 3.325866
5 29.4598 5 1262 IR 2.944217
778 198]
6 494 AI 3.025785
[1264 1453 114 3147
6 29.6758
1050 2301]
Para el fichero references se consideraron los centroides
[2141 1476 1622 619 que resultan en la funcin de costo 2.7183 fila 10 de la tabla
7 29.7343
2634 2535] 4, dando como resultado los grupos que se observan en la
[832 651 1159 3078 tabla 6, al igual que en keywords la columna de artculo
8 29.4440
807 2697] representante el artculo que se encuentra ms cercano al
[1220 608 2275 626 centroide es considerado representante del grupo. El grupo con
9 29.4304
2466 981] ms artculos es el de nmero 2 que posee un total de 3177
[3177 2951 2315 artculos cuyo representante es Agents y los que contiene
10 29.5298 menos artculos son los grupos 1 y 4 (DB, ML) con 1 artculo
1676 845 2488]
cada uno. Como se puede observar en la tabla 6, las clases
resultantes se encuentran desequilibradas.
Tabla 4 Datos obtenidos en 10 ejecuciones del K-means para el caso Ntese que para el caso de keywords la funcin de costo
de references. Se recopilan posiciones de los Centroides elegidos es muy elevada, y que las distancias mnimas tambin, son
aleatoriamente y la funcin de costo para cada caso muy altas considerando que los datos analizados son 1 y 0.
Adems, los grupos formados por el algoritmo y el fichero
# CENTROIDES FUNCIN DE COSTO references son ms desequilibrados que los generados por el
[748 645 2796 763 fichero keywords a pesar de que la funcin de costo es mucho
1 2.7318
1560 998] menor y las distancias mnimas son ms prximas a cero para
[1425 3058 1030 el caso de references.
2 2.7564
1443 754 565]
[855 368 1454 3245 Tabla 6 Resultados obtenidos aplicando K-means al fichero
3 2.7560 references
2997 612]
[734 2356 1997 868
4 2.7528 U # Datos Artculo Distancia
1970 1354]
representante
[283 1682 1405 1056 1 DB 0
5 2.7558 1
983 389] 2 3177 Agents 0.986382
[1618 2419 3076 97 3 125 IR 0.785142
6 2.7574
2653 869] 4 1 ML 0
[1726 1811 3190 5 3 ML 0
7 2.7567
1520 786 1916] 6 5 Agents 1.732050
[1217 1310 2249
8 2.7263
2067 1619 767] Para evaluar como realiza las agrupaciones el algoritmo se
[327 2637 3025 2932 utiliza Rand Index que verifica que tan similares son las
9 2.7593
125 3272] agrupaciones en dos casos, para ello se empleara los dos
[354 2389 452 2251 grupos de centroides que obtuvieron la menor funcin de costo
10 2.7183 Tabla 7.
1111 867]
Al aplicar rand index al fichero keywords donde se
Para el fichero keywords se consideraron los centroides consider las agrupaciones formadas por los centroides 9 y 8
que resultan en la funcin de costo 29.4304 fila 9 de la tabla de la tabla 3, podemos observar el nmero de elementos por
3, dando como resultado los grupos que se observan en la clster en cada agrupacin, a simple vista, los valores se
tabla 5, la columna de artculo representante nos da como acercan, a excepcin de los grupos 4 y 5 que tienen gran
resultado el artculo que se encuentra ms cercano al centroide diferencia, al aplicar rand index el valor que se obtiene es de
y la columna distancia nos representa la distancia del centroide 0.8586 este valor est ms prximo a 1 por tanto las
agrupaciones si coinciden en la mayor parte de puntos.
Al aplicar rand index al fichero references donde se MC= data(C,:);
consider las agrupaciones formadas por los centroides 10 y 8 for i=1:m
de la tabla 4, podemos observar el nmero de elementos por %Cargar el i dato de entrenamiento
clster en cada agrupacin, a simple vista, los valores se aux = data(i,:);
acercan, a excepcin de los grupos 2 y 3 que tienen gran c=find(C==i);
diferencia, al aplicar rand index el valor que se obtiene es de if(length(c)~=0)
0.9183 este valor est ms prximo a 1 por tanto las PC(i)=C(c);
agrupaciones si coinciden en la mayor parte de puntos. else
%Matriz con el resultado de las
Tabla 7 Datos en los que se aplica Rand Index distancias para cada centroide
MD = distanciaEuclidiana(MC,aux,k);
Fichero A B Rand %Posicion del centroide de menor
Index distancia
Tabla 3/fila Tabla 3/fila c=find(MD==min(min((MD))));
9 8 PC(i) = C(c(1));
U # U # end
1 534 1 446 end
Keywords 2 276 2 500 0.8586 MFC(m) = 0;
MM = MC;
3 452 3 654
parada = 0;
4 294 4 917
while (parada==0)
5 1262 5 313 %Formar las matrices y calcular nuevo
6 494 6 482 centroide
Tabla 4/fila Tabla 4/fila for i=1:k
10 8 c=find(PC==C(i));
U # U # AUX = data(c,:);
1 1 1 3 if(length(AUX)==0)
References 2 3177 2 6 0,9183 AUX = MC(i,:);
3 125 3 3284 %eval([v, '=AUX']);
4 1 4 7 end
MM(i,:)= mean(AUX',2);
5 3 5 1
end
6 5 6 11 %Comparar centroides
if (isequal(MC,MM)==1)
parada = 1;
V. CONCLUSIONES end
En base a los resultados obtenidos con rand index podemos %Calcular las distancias
decir que la calidad de agrupacin de nuestros datos es buena, for i=1:m
y que al aplicar k-means con el fichero references se formaran %Cargar el i dato de entrenamiento
mejores agrupaciones que con el fichero keywords. aux = data(i,:);
Si observamos los grupos que se forman, son ms %Matriz con el resultado de las
equilibrados los datos obtenidos con keywords. distancias para cada centroide
Aplicar k-means no es la solucin ms ptima MD = distanciaEuclidiana(MM,aux,k);
considerando que el dataset analizado se conforma de 1 y 0, se %Posicion del centroide de menor
puede aplicar k-means pero al calcular las distancias, la distancia
distancia euclidiana no es la mejor opcin. c=find(MD==min(min((MD))));
Al variar los centroides iniciales en el algoritmo, la funcin PC(i) =c(1);
de costo resultante no vara ms de 1 punto. MFC(i)= MD(c(1));
end
REFERENCIAS C= 1:k;
MC=MM;
[1] C. G. Cambronero and I. G. Moreno, ALGORITMOS end
DE APRENDIZAJE: KNN & KMEANS
[Inteligencia en Redes de Telecomuncicacin]. ANEXO 2 CDIGO PARA GENERAR CENTROIDES ALEATORIOS
function C = centroides(k,m)
C=zeros(1,k);
ANEXOS
while (k > 0)
aux=round(m*rand);
ANEXO 1 CDIGO PARA K-MEANS
c=find(C==aux);
%PRIMERA ITERACION if(length(c)==0)
%Obtiene posicion aleatoria C(k)=aux;
C=centroides(k,m); k=k-1;
%Obtener matriz de centroides end
end
end

ANEXO 3 CDIGO PARA CALCULAR DISTANCIA EUCLIDIANA


function D = distanciaEuclidiana(MC,x,k)
%Metodo para calcular la distancia,
recibe como parametros la matriz con
%los centroides, el dato a ser evaluado
y el valor de k
D=zeros(k,1);
for i=1:k
resta=MC(i,:)-x;
cuadrado=resta.^2;
suma = sum(cuadrado);
raiz = sqrt(suma);
D(i) = raiz;
end
end

ANEXO 4 CDIGO PARA CALCULAR FUNCIN DE COSTO


function FC = funcionCosto(MFC,m)
%Metodo para la funcion de costo,
recibe como parametros la matriz con
%las distancias minimas y la cantidad m
de datos a analizar
cuadrado=MFC.^2;
suma = sum(cuadrado);
FC = suma/m;
end

Вам также может понравиться