Está en la página 1de 66

S.E.P.

S.E.S.

D.G.E.S.T.

CENTRO NACIONAL DE INVESTIGACIN Y DESARROLLO TECNOLGICO

cenidet
MEJORAMIENTO DE LA EFICIENCIA Y EFICACIA DEL ALGORITMO DE AGRUPAMIENTO K-MEANS MEDIANTE UNA NUEVA CONDICIN DE CONVERGENCIA

QUE PARA OBTENER EL GRADO DE: MAESTRO EN CIENCIAS EN CIENCIAS DE LA COMPUTACION PRESENTA ROSY ILDA BASAVE TORRES

DIRECTOR DE TESIS
DR. JOAQUN PREZ ORTEGA

CODIRECTOR DE TESIS
DR. VCTOR JESS SOSA SOSA

CUERNAVACA, MORELOS

AGOSTO 2005

DEDICATORIA

Dedico esta tesis especialmente a mi Chenda (Roselena Arroyo Basave) por el enorme amor que nos une slidamente.

A mis padres Sr. Carlos Basave Guadarrama y Sra. Imelda Torres Torres por su apoyo y amor incondicional durante toda mi vida.

A mis hermanos Jos, Raful, Teresa, Dora Luz, Maria Elena, Maria Isabel, Antonio y Eliud por el amor tan grande que siempre me han demostrado.

A Edwin Beutelspacher Santiago por ser un enorme apoyo al final de este camino. A mis tos Guadalupe Banderas Torres y Roberto Banderas Torres, por su apoyo moral y sus constantes esfuerzos de conservar slidos los lazos familiares.

RECONOCIMIENTOS

Mi profundo agradecimiento a los miembros del comit tutorial de esta tesis: Dr. Rodolfo A. Pazos Rangel, Dr. Guillermo Rodrguez Ortiz, Dr. Joaqun Prez Ortega, Dr. Mario Guillen Rodrguez, y Dr. Vctor Jess Sosa Sosa. En especial, mi sincero aprecio al Dr. Joaqun Prez Ortega y Dr. Vctor Jess Sosa Sosa por haber dirigido esta tesis por sus valiosas sugerencias, crticas y tiempo dedicado.

Al Centro Nacional de Investigacin y Desarrollo Tecnolgico (CENIDET) por la oportunidad de realizar mis estudios de maestra. Al Consejo del Sistema Nacional de Educacin Tecnolgica (CoSNET) por brindarme el apoyo econmico durante los estudios de maestra.

Estoy en deuda con el Instituto Tecnolgico de Ciudad Madero (ITCM) que proporcion las facilidades necesarias para esta investigacin.

A la Dra. Laura Cruz Reyes y el Dr. Hctor Joaqun Fraire Huacuja por su gran apoyado y amistad. Finalmente, doy gracias a mis compaeros del (CENIDET) y (ITCM) por su ayuda, soporte moral y amistad. Para ellos mi estimacin.

ii

RESUMEN
En esta tesis se propone un mejoramiento al algoritmo K-means estndar. Se han realizado numerosos mejoramientos al algoritmo, la mayora relacionados con los valores de los parmetros iniciales, en contraste, en este trabajo se hace una aportacin a la condicin de convergencia. Se implement computacionalmente el algoritmo K-means estndar y un generador de casos de pruebas. Para validar la implementacin del algoritmo K-means estndar se realizaron pruebas con datos sintticos generados en esta tesis. Los resultados fueron contrastados con los resultados de los algoritmos K-means que proporciona el paquete comercial SPSS y la herramienta Weka, los cuales llegaron a la misma agrupacin.

Con el propsito de estudiar el algoritmo K-means estndar se le introdujo cdigo para darle seguimiento al algoritmo al tiempo de ejecucin, se realiz una experimentacin con la base de datos Diabetes y se observ que el algoritmo estndar no converga en el ptimo local hasta en un 96% de las corridas, lo cual mostr una posibilidad de mejorar el algoritmo en la condicin de convergencia. La nueva condicin propuesta en esta tesis, consiste en parar el algoritmo cuando se encuentra un mnimo local o bien cuando ya no hay intercambios de elementos entre los grupos.

Para probar la mejora del algoritmo se resolvieron seis bases de datos reales de aprendizaje mquina y una base de datos del problema Bin-packing usada y generada en la tesis doctoral [Cruz 2004]. Los resultados se contrastaron con SPSS, Weka y el algoritmo K-means estndar. En todos los casos evaluados el algoritmo propuesto obtuvo resultados mejores o iguales. El algoritmo

propuesto obtuvo una mejora en eficiencia hasta de un 82 % y en eficacia hasta de un 33%

iii

TABLA DE CONTENIDO
Pgina LISTAS DE FIGURAS........................................................................................ vii

LISTAS DE TABLAS.......................................................................................... viii Captulo 1 INTRODUCCIN 1.1 MOTIVACIONES................................................................................... 1.2 DESCRIPCIN DEL PROBLEMA DE INVESTIGACIN.............. 1.3 OBJETIVO DE LA TESIS...................................................................... 1.4 CONTEXTO DE LA INVESTIGACIN.................................................. 1.5 TRABAJOS RELACIONADOS.... 1.5.1 [Su 2004].... 1.5.2 [Likas 2003] 1.5.3 [Hamerly 2002].. 1.5.4 [Su 2001] 1.5.5 [Pelleg 2000].. 1.6 OTROS TRABAJOS.. 1.6.1 [Ordonez 2004]. 1.6.2 [Kanungo 2002]. 1.7 ANLISIS COMPARATIVOS... 1.8 ORGANIZACIN DEL DOCUMENTO... 2 K-MEANS ESTNDAR E IMPLEMENTACIN..... 2.1 K-MEANS ESTNDAR.......................................................................... 2.1.1 Definiciones y notacin............................ 1 2 2 2 2 3 3 4 4 5 5 5 5 6 6 7 8 9 9

2.2 ALGORITMO K-MEANS ESTNDAR.................................................... 12 2.2.1 Parmetros del algoritmo... 2.2.2 Pasos del algoritmo..................................................................... 2.2.3 Caractersticas del algoritmo K-means estndar 2.3 IMPLEMENTACIN Y ANLISIS EL ALGORITMO 12 12 12

K-MEANS 15

ESTNDAR.
iv

2.3.1 Implementacin del algoritmo K-means estndar...

16

2.3.2 Software comercial SPSS 16 2.3.3 Herramienta Weka 2.3.4 Resultados experimentales del algoritmo implementado............. 2.3.4.1 Validacin experimental de la implementacin K-means estndar 2.3.4.2 Experimentacin con una base de datos.. 17 20 3 MEJORAMIENTO PROPUESTO AL ALGORITMO K-MEANS................... 22 3.1 ANLISIS DETALLADO DEL ALGORITMO K-MEANS 23 23 ESTNDAR........................................................................................... 3.1.1 Anlisis del comportamiento para una corrida............................ 3.1.2 Bsqueda de patrones en el comportamiento del algoritmo K-means estndar con la base de datos 24 16 17

del 17

Diabetes...................................................................................... 3.1.3 Comportamiento del algoritmo K-means estndar con siete

bases de datos ....... 28 3.2 MEJORAMIENTO PROPUESTO AL ALGORITMO K-MEANS 29

ESTNDAR.. 4

3.3 ALGORITMO DEL ALGORITMO K-MEANS MEJORADO.. 30 RESULTADOS EXPERIMENTALES......................................... 32 4.1 DESCRIPCIN DE LAS BASES DE DATOS QUE SE USARON EN LA EXPERIMENTACIN.. 33 4.1.1 Base de datos Bin-packing.......................................................... 33 4.1.2 Base de datos Vehicle................................................................. 33 4.1.3 Base de datos Glass................. 4.1.4 Base de datos Diabetes. 33 33

4.1.5 Base de datos Heart.............. 34 4.1.6 Base de datos Wine 4.1.7 Base de datos Liver 34 34

4.2 RESULTADOS EXPERIMENTALES..................................................... 35


v

4.2.1 Resultados de eficiencia ....... 35 4.2.1.1 Resultados para Bin-packing.. 4.2.1.2 Resultados para Vehicle.. 4.2.1.3 Resultados para Glass. 4.2.1.5 Resultados para Heart. ............................ 4.2.1.6 Resultados para Wine.. 4.2.1.7 Resultados para Liver...... 36 36 36 37 38 38

4.2.1.4 Resultados para Diabetes 37

4.2.2 Anlisis comparativo de eficiencia 38 4.2.3 Resultados de eficacia 40 4.2.3.1 Resultados para Bin-packing.. 4.2.3.2 Resultados para Vehicle.. 40 40

4.2.3.3 Resultados para Glass..... 41 4.2.3.4 Resultados para Diabetes... 4.2.3.6 Resultados para Wine.. 4.2.3.7 Resultados para Liver...... 4.2.4 Anlisis comparativo de la eficacia.. 5 CONCLUSIONES Y TRABAJOS FUTUROS.............................................. 5.1 Conclusiones......................................................................................... 41 42 42 42 45 45 4.2.3.5 Resultados para Heart................ 41

5.2 Trabajos Futuros.................................................................................... 47 REFERENCIAS.................................................................................................. 48 Anexo A. Agrupamiento............. 51

vi

LISTA DE FIGURAS
2.1 Pseudocdigo del algoritmo K-means estndar..... 14 2.2 Primera iteracin de K-means estndar... 18 2.3 Segunda iteracin de K-means estndar..... 19 3.1 K-means pasa por un mnimo local y pierde su valor ptimo..... . 25 3.2 K-means converge en un mnimo local.... 26 3.3 Pseudocdigo del algoritmo K-means mejorado.... 31 A.1 Pseudocdigo del generador de bases de datos sintticas.. 53 A.2 Calculando el primer grupo.... 55 A.3 Se genera una copia espejo en una dimensin.. 55 A.4 Copia los objetos para la segunda dimensin.... 56 A.5 Grupos sintticos generados.. 56

vii

LISTA DE TABLAS
1.1 2.1 2.2 2.3 2.4 3.1 3.2 3.3 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 A.1 A.2 Trabajos relacionados..... 7 Trminos y notacin..... 10 Comprobacin de la implementacin del algoritmo K-means... 19 Corridas K-means estndar con la base de datos Bin-packing.... 21 Resultados de la comparacin K-means estndar usando Bin-packing Salida de un mnimo y convergencia en una calidad menor con Diabetes..... 24 Experimentacin de K-means estndar con Diabetes.... .. 27 Porcentaje de corridas que no paran en un ptimo local... 29 Detalle de las bases de datos usadas para experimentacin... 34 Resultados experimentales en eficiencia para Bin-packing.. 36 Resultados experimentales en eficiencia para Vehicle...... 36 Resultados experimentales en eficiencia para Glass........ Resultados experimentales en eficiencia para Diabetes... Resultados experimentales en eficiencia para Heart..... Resultados experimentales en eficiencia para Wine.. Resultados experimentales en eficiencia para Liver...... 37 37 37 38 38 22

Anlisis comparativo en eficiencia..... 39 Resultados experimentales en eficacia para Bin-packing..... 40 Resultados experimentales en eficacia para Vehicle..... 41 Resultados experimentales en eficacia para Glass.... 41 Resultados experimentales en eficacia para Diabetes.. Resultados experimentales en eficacia para Heart.... Resultados experimentales en eficacia para Wine........ Resultados experimentales en eficacia para Liver..... 41 42 42 42

Anlisis comparativo en eficacia.... 44 Notacin y definiciones.... 52 Valores de entrada al generador de casos de pruebas..... 54

viii

Captulo 1
INTRODUCCIN

En este trabajo se aborda el problema de agrupamiento de objetos con base a sus atributos, el cual ha sido ampliamente estudiado debido a su aplicacin en reas como: aprendizaje mquina [MacQueen 1967], minera de datos, descubrimiento del conocimiento, comprensin de datos, reconocimiento de patrones y clasificacin de patrones [Witten 1999, Mehmed 2003, Jain 1999]. El objetivo del agrupamiento es particionar un conjunto de objetos que tienen asociados vectores multidimencionales de atributos, en grupos homogneos, tales que los patrones dentro de cada grupo sean similares entre s [Berkhin 2002, Jain 1999, Halkidi 2001]. En las secciones de este captulo se presenta un panorama general de la tesis, el cual se inicia con la descripcin de los motivos que llevaron a esta investigacin y se contina con la definicin del problema de investigacin. En seguida se explican los objetivos que se plantearon alcanzar. Se explica tambin el contexto en el que se desarroll este trabajo, se abordan los principales trabajos relacionados a esta tesis, y finalmente se termina dando una descripcin del contenido de cada captulo.

Captulo 1 INTRODUCCIN

1.1 MOTIVACIONES

El agrupamiento de datos es la tarea de encontrar agrupamientos naturales en los datos. sta es una tarea importante en varias reas del conocimiento, tales como: aprendizaje mquina, minera de datos, estadstica y reconocimiento de patrones. Tpicamente en agrupamiento no hay una solucin perfecta para el problema, pero los algoritmos persiguen minimizar una funcin objetivo. Entre varios algoritmos de agrupamiento K-means es uno de los ms usados.

1.2 DESCRIPCIN DEL PROBLEMA DE INVESTIGACIN

En este trabajo se plantea el problema del mejoramiento la eficiencia y eficacia del algoritmo de agrupamiento K-means.

1.3 OBJETIVO DE LA TESIS

El objetivo principal de esta investigacin es estudiar a detalle el algoritmo de agrupamiento K-means con el propsito de mejora en su eficiencia y eficacia, ya que es un algoritmo de propsito general, ampliamente usado en reas como: aprendizaje mquina, estadstica, minera de datos y reconocimiento de patrones.

1.4 CONTEXTO DE LA INVESTIGACIN

En el Centro Nacional de Investigacin y Desarrollo Tecnolgico (CENIDET), se han venido desarrollando trabajos en el rea de diseo de la distribucin de bases de datos, y debido a su complejidad se present la necesidad de utilizar mtodos heursticos para su solucin.

En la tesis doctoral Caracterizacin de algoritmos heursticos aplicados al diseo de bases de datos distribuidas [Cruz 2004], se abord el problema de seleccin de algoritmos proponiendo una metodologa basada en el aprendizaje automtico y la estadstica, que permite identificar caractersticas crticas y sus 2

Captulo 1 INTRODUCCIN

interrelaciones, lo cual posibilita que para cada algoritmo se determine un patrn de agrupamiento de los casos que ha resuelto mejor. Para un nuevo caso se determina a qu patrn de agrupamiento es ms afn y se selecciona el algoritmo. La metodologa aborda el problema de agrupamiento para el problema de distribucin de objetos en contenedores (Bin-packing) y usa el algoritmo K-means.

Fraire, en su tesis doctoral Una metodologa para el diseo de la fragmentacin y ubicacin en grandes bases de datos distribuidas [Fraire 2005], aborda el problema de la automatizacin del diseo lgico de una base de datos distribuida. l propone un nuevo enfoque de solucin que considera que el desempeo del proceso de automatizacin es un requisito crtico de la solucin prctica del problema. Este enfoque consiste en seleccionar, para un ejemplar dado, una transformacin de compresin. La hiptesis que sustenta es que, se puede comprimir el ejemplar dado y usar la ejemplar resultante para obtener una solucin de buena calidad del ejemplar original. Para realizar esta transformacin se usaron tcnicas de agrupamiento; es decir, cuando un ejemplar del diseo de la distribucin tiene operaciones repetidas, es posible transformarla en una con menos operaciones.

En los dos trabajos anteriores se usaron tcnicas de agrupamiento, como parte de la solucin de un problema ms general. Tambin se hizo evidente que una contribucin al problema de agrupamiento podra incidir en el mejoramiento de los mtodos de solucin de los trabajos anteriores.

1.5 TRABAJOS RELACIONADOS

En la siguiente seccin se describen los trabajos relacionados ms relevantes: 1.5.1 [Su 2004] A Deterministic Method for Initializing K-means Clustering. En este trabajo proponen un mtodo para inicializar los parmetros del algoritmo K-means, en particular los centroides iniciales. Dicho mtodo es jerrquico divisible determinista y se denomina PCA-part. Se reportan resultados 3

Captulo 1 INTRODUCCIN

experimentales en donde el algoritmo obtiene calidad de solucin equivalente a haber corrido el algoritmo K-means estndar cientos de veces. 1.5.2 [Likas 2003] The Global K-means Clustering Algorithm. La idea principal subyacente en este trabajo es qu se puede calcular el agrupamiento para k grupos de manera incremental. El algoritmo inicia con k = 1 y obtiene su centroide C1 el cual quedar fijo. El siguiente centroide se obtiene calculando de manera exhaustiva el error al cuadrado del nuevo centroide en cada una de las posiciones de los objetos de la base de datos, esto es, se prueba el nuevo centroide en cada una de las posiciones de los objetos y se selecciona como nuevo centroide aquella posicin en la que se obtuvo el menor error al cuadrado. 1.5.3 [Hamerly 2002] Alternatives to the K-means Algorithm that Find Better Clustering. En este trabajo se investiga el comportamiento de los siguientes algoritmos: K-means, Gaussian Expectation-Maximization, Fuzzy K-means y dos variantes de K-harmonic Means. Se desarrollaron un conjunto de pruebas experimentales con bases de datos sintticas, las cuales mostraron que con baja dimensionalidad dichos algoritmos tienen un comportamiento muy diferente. Con base en los resultados se encontr que el algoritmo K-harmonic Means tiene un desempeo superior. En base al comportamiento de los algoritmos, los autores proponen dos nuevos algoritmos hbridos a los que denominan H1 y H2.

H1 usa la membresa dura de K-means, es decir, cada objeto pertenece al centroide ms cercano. Usa la funcin de peso del algoritmo K-harmonic Means, esto es, da ms peso a aquellos puntos que estn ms alejados del centroide. El hbrido H2 usa la funcin de membresa suave del K-harmonic Means y la funcin de peso constante de K-means. Las variantes hbridas no muestran una superioridad sobre K-harmonic means en bases de datos de baja dimensionalidad. Finalmente de manera general los autores sugieren que para bases de datos de mediana y alta dimensionalidad se use Fuzzy K-means, H2 y K-harmonic Means. 4

Captulo 1 INTRODUCCIN

1.5.4 [Su 2001] A Modified Version of the K-Means Algorithm with a Distance Based on Cluster Symmetry. En este trabajo se propone un nuevo algoritmo que es una variante del K-means. En particular se propone una nueva medida de distancia basada en simetra. El algoritmo fue probado con varias bases de datos que contenan figuras geomtricas y rostros humanos con resultados alentadores. Una desventaja importante del algoritmo es que incrementa la complejidad computacional. 1.5.5 [Pelleg 2000] X-means: Extending K-means with Efficient Estimation of the Number of Clusters. En este trabajo se extiende y se hace un mejoramiento del algoritmo K-means, en particular el algoritmo obtiene de manera automatizada el mejor nmero de grupos; es decir, se define de manera automatizada el valor de k. Resultados experimentales sobre bases de datos reales y sintticas muestran que el algoritmo es ms eficiente para obtener el valor de k comparado con ejecutar un gran nmero de veces el algoritmo K-means estndar con diferentes valores de k.

1.6 OTROS TRABAJOS

En esta seccin se muestran otros dos trabajos que estn marginalmente relacionados con esta tesis. La aportacin principal est relacionada con la implementacin computacional del algoritmo y no tanto con el algoritmo en s. 1.6.1 [Ordonez 2004] Programming the k-means Clustering Algorithm in SQL. En este trabajo se muestra que es factible implementar el algoritmo K-means estndar en el lenguaje SQL estndar. En el lenguaje SQL estndar se muestra la definicin de tablas ndices y consultas necesarias para la implementacin del algoritmo. Se implementan dos algoritmos: uno es el algoritmo K-means estndar y el otro es un algoritmo propuesto al que denominan K-means optimizado. El algoritmo optimizado emplea funciones estadsticas y almacena el modelo de agrupamiento en una tabla. Resultados experimentales con grandes bases de 5

Captulo 1 INTRODUCCIN

datos mostraron que el algoritmo K-means estndar tiene problemas de escalabilidad; sin embargo, el algoritmo K-means optimizado mostr una escalabilidad lineal y mayor eficiencia. 1.6.2 [Kanungo 2002] An Efficient k-Means Clustering Algorithm: Analysis and Implementation. En este trabajo se hace una implementacin eficiente de una variante de K-means denominada algoritmo Lloyds. ste define el conjunto de puntos vecinos a un centroide Ci, cambia el centroide a la posicin de cada punto evaluando el criterio de convergencia, y selecciona el punto donde se obtuvo el menor valor del criterio de convergencia para ser el nuevo centroide. Parte de la eficiencia de la implementacin se debe al uso de una estructura de datos kd-tree.

1.7 ANLISIS COMPARATIVO

Al algoritmo K-means estndar se le han hecho mejoramientos en varios aspectos asociados con cada uno de los pasos del algoritmo. De manera general el algoritmo consta de cuatro pasos:

1) Inicializacin. 2) Clasificacin. 3) Clculo de centroides. 4) Condicin de convergencia.

En cuanto a mejoramientos en los cuatro pasos, tal vez, el que ha recibido ms atencin es el de inicializacin; en este sentido se pueden mencionar los trabajos [Su 2004], [Likas 2003] y [Pelleg 2000]. Con relacin al paso dos del algoritmo, se han definido varias medidas de afinidad de los elementos de los grupos; en este sentido podemos mencionar las aportaciones de [Su 2001] y [Hamerly 2002]. En relacin a los pasos tres y cuatro del algoritmo y de acuerdo a la literatura especializada, no se reportan trabajos de mejora al algoritmo.

Captulo 1 INTRODUCCIN

En la Tabla 1.1, la primera columna muestra la referencia del trabajo, la segunda, tercera y cuarta muestran respectivamente la inicializacin, clasificacin y condicin de convergencia del algoritmo.

Tabla 1.1 Trabajos relacionados. Proyecto Inicializacin Clasificacin Condicin de convergencia [Su 2001] [Hamerly 2002] [Likas 2003] [Pelleg 2000] [Su 2004] K-means mejorado

Como podemos observar la mayora de los trabajos se centran en la inicializacin y la clasificacin. 1.8 ORGANIZACIN DEL DOCUMENTO

La tesis est organizada de la siguiente manera:

En el captulo 2 se aborda el algoritmo K-means estndar, y se expone la implementacin computacional y anlisis del algoritmo K-means estndar. En el captulo 3 se presenta un anlisis detallado del algoritmo K-means y finalmente se presenta el mejoramiento propuesto al algoritmo K-means. En el captulo 4 se describen las bases de datos que se usaron en la experimentacin y se muestran los resultados experimentales. Finalmente en el captulo 5 se presentan las conclusiones a las que se llegaron durante el desarrollo de esta investigacin y sugerencias de trabajos futuros.

Captulo 2
K-MEANS ESTNDAR E IMPLEMENTACIN

El agrupamiento se puede ver como un problema de optimizacin, de naturaleza combinatoria, lo cual justifica el uso de algoritmos heursticos para resolver casos de tamao grande. Dichos algoritmos no garantizan obtener el ptimo global, sin embargo, han mostrado obtener buenos resultados. K-means es uno de estos de algoritmos, y tal vez es uno de los ms usados debido a que es relativamente sencilla la implementacin del algoritmo estndar.

Este captulo est organizado de la siguiente manera: en la seccin 2.1 se presenta el algoritmo K-means estndar y en la 2.2 se presentan la implementacin y anlisis del algoritmo K-means estndar.

Captulo 2 K-MEANS ESTNDAR E IMPLEMENTACIN

2.1 K-MEANS ESTNDAR

El algoritmo de agrupamiento K-means es uno de los algoritmos de agrupamiento ms usado por su simplicidad computacional y eficiencia. Este algoritmo ha sido usado en varias reas del conocimiento [Pham 2004, Fraire 2005, Cruz 2004], siendo algunas de ellas las siguientes: a) Diseo de bases de datos distribuidas. b) Aprendizaje mquina. c) Reconocimiento de patrones. d) Compresin y segmentacin de imgenes. e) Minera de datos. f) Minera Web. g) En los negocios para descubrir grupos significativos dentro de bases de datos, por ejemplo, con base a parmetros de compras. h) En biologa para definir taxonomas, caracterizar genes con funcionalidad similar y aumentar la divisin dentro de estructuras inherentes en la poblacin. i) Agrupamiento de partes mecanizadas dentro de familias en diseo de sistemas de manufactura de celulares.

2.1.1 Definiciones y notacin

Debido a que K-means es usado en varios tipos de aplicaciones, es comn que dependiendo de la aplicacin se le den diferentes nombres a los elementos del algoritmo. En esta seccin se describir para cada elemento su funcin, y se mencionar el nombre con el que ser referenciado en este documento, y adems se mencionarn algunos nombres con los cuales tambin son referenciados en la literatura especializada.

Captulo 2 K-MEANS ESTNDAR E IMPLEMENTACIN

En la Tabla 2.1 muestra los trminos y notacin que sern usados en las siguientes partes de este documento. Tabla 2.1. Trminos y notacin. D Es el nmero de dimensiones de un espacio. El elemento que define cada una de las dimensiones en este documento Algunos ser referenciado nombres con como es dimensin. que

referenciado en la literatura son: atributo, variable, caracterstica, componente y campo. N K Es el nmero de objetos en un espacio. Es el nmero de regiones en que se divide un espacio, cada regin debe contener al menos un objeto. En este documento la regin ser referenciada como grupo, otros nombres con que es referenciado en la literatura son clase y particin. nj X = {X1, , Xn} Es el nmero de objetos del grupo j. Es un conjunto n objetos en un espacio de d dimensiones. En este documento ser referenciado como base de datos. Algunos nombres con que es referenciado en la literatura son: matriz de objetos, matriz de caractersticas, matriz de patrones, matriz de componentes, matriz de atributos, base de datos, conjunto de datos y datos de

entrenamiento. Xn = (xn1, , xnd) Es el n-simo objeto en X. Tiene estructura de vector con d elementos. Un elemento xnd contiene el valor de la coordenada del objeto Xn en la dimensin d. En este documento ser referenciado como objeto. Algunos nombres con que es 10

Captulo 2 K-MEANS ESTNDAR E IMPLEMENTACIN

referenciado en la literatura son: vector de caractersticas, observacin, punto de dato, patrn, ejemplar, caso, registro, transaccin, tupla y elementos. W = {W1, , Wk} Es un conjunto de k grupos, donde cada k grupo contiene los objetos ubicados en la regin k.
Wk = Wk 1, ..., Wknk Wkj =(wkj1, , wkjd) C = {C1, , Ck}

Es el k-simo grupo en W. Contiene nk objetos Wkj. Es el j-simo objeto del grupo k, tiene estructura de vector con d componentes. Es un conjunto de los centros geomtricos o centroides asociados a cada una de las k regiones o grupos.

Ck = (ck1, , ckd)

Es el k-simo centroide en C. Cada elemento ckd contiene el valor medio del grupo Wk en la dimensin d.

d(Xj, Ck)=

(X
l =1

jl

- ckl )2

Funcin de error al cuadrado. La funcin es un ndice de similaridad que cuantifica la distancia entre un objeto Xj del conjunto de datos X y el centroide Ck del grupo k.
Funcin de error al cuadrado. La funcin es un ndice de similaridad que cuantifica la distancia entre un objeto Wkj de un k grupo y el centroide Ck del grupo k. Funcin de error al cuadrado de un k grupo. Es un ndice de similaridad de los objetos del grupo k. Funcin de error al cuadrado de todos los k grupos. Esta funcin es un ndice de calidad de

d ( Wkj , Ck ) = (w kjl - ckl )2


l =1

g (Wk , Ck ) = d Wkj , Ck )
j=1 k

nk

h( W , C) = g Wi , Ci )
i=1

agrupamiento. aleatorio ( X ) Funcin que retorna un objeto aleatorio Xj del conjunto de objetos X.

11

Captulo 2 K-MEANS ESTNDAR E IMPLEMENTACIN

2.2 ALGORITMO K-MEANS ESTNDAR

El propsito de esta seccin es describir el algoritmo K-means estndar.

2.2.1 Parmetros del algoritmo Parmetros de entrada para el algoritmo K-means: a) Una base de datos X. Es el conjunto de objetos sobre los cuales trabajar el algoritmo. b) El nmero de grupos k. Es el nmero de grupos que formar el algoritmo.

Parmetros de salida para el algoritmo K-means: a) Un conjunto de k grupos formados W.

2.2.2 Pasos del algoritmo

De acuerdo a la literatura especializada [Su 2004, Su 2001, Pham 2004, Ordonez 2004, Kanungo 2000] se identifican cuatro pasos del algoritmo, los cuales se describen a continuacin: Paso 1. Inicializacin. Este paso consta de dos partes, en la primera parte se identifica la base de datos X sobre la cual trabajar el algoritmo. En la segunda se define para cada uno de los grupos un objeto que ser usado como referencia en la seleccin de los objetos que pertenecern a cada uno de los grupos. Usualmente a estas referencias se les llama centroides iniciales C. Dichos puntos de referencia pueden ser generados de manera aleatoria para cada grupo o bien pueden ser obtenidos en base a clculos. En el algoritmo K-means estndar

estos puntos se obtienen de manera aleatoria, como se muestra en el pseudocdigo de la Figura 2.1 de la lnea 1 a la 3.

12

Captulo 2 K-MEANS ESTNDAR E IMPLEMENTACIN

Paso 2. Clasificacin. En este paso se determina para cada objeto Xi el grupo Wi cuyo centroide Ci est ms cercano o ms afn al objeto Xi. Usualmente la medida de distancia o afinidad se determina con la funcin de error al cuadrado entre el objeto Xj y el centroide Ci de cada grupo Wi. Otras medidas de afinidad pueden ser tambin las distancias Euclidiana, Manhattan y Minkowski por mencionar algunas. En el algoritmo K-means estndar este paso se muestra en la Figura 2.1 entre las lneas 8 y 18. Paso 3. Clculo de los centroides. El centroide Ci de un grupo Wi es un vector cuyos elementos contienen los valores medios del grupo Wj en cada una de las dimensiones d. En el algoritmo K-means estndar este paso se realiza en la Figura 2.1 entre las lneas 20 y 28, donde nk es igual al nmero de elementos del conjunto Wj. Paso 4. Verificacin de convergencia. En este paso se verifica si se ha cumplido una o varias condiciones que indique que el algoritmo debe parar. A esta condicin se le ha llamado criterio de paro, condicin de convergencia y condicin de paro, nosotros le llamaremos condicin de convergencia. Las condiciones de convergencia ms usadas son las siguientes: a) El nmero de iteraciones. b) Cuando los centroides obtenidos en dos iteraciones sucesivas no cambian su valor. Esta es la condicin de convergencia del algoritmo K-means estndar, y su pseudocdigo se muestra en la figura 2.1 en la lnea 29. c) Cuando la diferencia entre los centroides de dos iteraciones sucesivas no supera cierto umbral. d) Cuando no hay transferencia de objetos entre grupos en dos iteraciones sucesivas.

13

Captulo 2 K-MEANS ESTNDAR E IMPLEMENTACIN Algoritmo K-means_estndar( X, k, W ) Entrada X, k Salida W 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Fin Si; Fin Para; Wm Wm U { Xj }; Fin Para; C C; Para ( i 1 hasta k ) hacer Para ( l 1 hasta d ) hacer media 0; Para ( j 1 hasta ni ) hacer media media + wijl; Fin Para; Cil ( media / ni ); Fin Para; Fin Para; Hasta ( C = C); Regresa ( W ); Para ( m 1 hasta k ) hacer Cm aleatorio ( X ); Fin Para; Repite Para ( i 1 hasta k ) hacer Wi ; Fin Para; Para ( j 1 hasta n ) hacer m 0; min + ; Para ( i 1 hasta k ) hacer Si (d( Xj, Ci ) < min ) hacer min d( Xj, Ci ); m i;

Figura 2.1. Pseudocdigo del algoritmo K-means estndar.

14

Captulo 2 K-MEANS ESTNDAR E IMPLEMENTACIN

2.2.3 Caractersticas del algoritmo K-means estndar

Las principales caractersticas del algoritmo son las siguientes [Su 2004, Kanungo 2002, Hamerly 2002]: a) El algoritmo est clasificado como un algoritmo glotn. b) Es un mtodo heurstico y, como tal, no garantiza el ptimo global. c) Puede quedar atrapado en ptimos locales. d) Un factor que incide directamente en el costo computacional del algoritmo K-means es el nmero de iteraciones que requiere efectuar, ya que por cada iteracin calcula para cada uno de los objetos de la base de datos la distancia a los centroides de los grupos.

Se han identificado las siguientes ventajas para el algoritmo: a) Algoritmo sencillo con clculos simples. b) Funciona bien para grupos con geometra globular.

Como desventajas se pueden mencionar las siguientes: a) Es necesario saber el nmero de k grupos. b) La agrupacin final depende de los centroides iniciales. c) No garantiza una convergencia en el ptimo global. d) En el caso de ejemplares grandes de problemas, puede requerir un gran nmero de iteraciones para convergir. e) Se usa slo con datos numricos. f) No funciona bien si hay ruido. g) No es adecuado para grupos con geometra no globular.

15

Captulo 2 K-MEANS ESTNDAR E IMPLEMENTACIN

2.3 IMPLEMENTACIN Y ANLISIS DEL ALGORITMO K-MEANS ESTNDAR

Para los fines de anlisis se implement computacionalmente el algoritmo K-means estndar sin lmites de dimensin, nmero de grupos y nmero de objetos, teniendo como restriccin nicamente la capacidad de la mquina. Las mtricas usadas para medir la eficiencia y eficacia son el nmero de iteraciones y el error al cuadrado respectivamente.

2.3.1 Implementacin del algoritmo K-means estndar

Se implement computacionalmente el algoritmo K-means estndar, y se le introdujo cdigo al programa para que en cada iteracin mostrara el error al cuadrado g(Wk, Ck) y la suma del error al cuadrado de cada grupo h(W, C), esto con la finalidad de monitorear la eficacia del agrupamiento en cada iteracin. El algoritmo estndar de K-means fue implementado en el lenguaje C++ Builder, y las pruebas se realizaron en una computadora Pentium 4 a 2.4 GHz con 512 MB de memoria RAM. El pseudocdigo del algoritmo se muestra en la Figura 2.1.

2.3.2 Software comercial SPSS

SPSS es una herramienta comercial usada en negocios e investigacin, la cual incluye mdulos para la identificacin de grupos, medidas de similaridad y clasificacin entre otras. Dentro del mdulo clasificacin tiene una implementacin del algoritmo K-means [SPSS]. Este algoritmo K-means realiza un

preprocesamiento de los datos y obtiene sus centroides iniciales de manera que siempre son los mismos, posteriormente realiza la clasificacin y el clculo de centroides, y finalmente proporciona dos condiciones de convergencia: cuando llega a un nmero de iteraciones y cuando la diferencia entre los centroides de dos iteraciones sucesivas no supera cierto umbral.

16

Captulo 2 K-MEANS ESTNDAR E IMPLEMENTACIN

2.3.3 Herramienta Weka

Weka es una coleccin de algoritmos para tareas de aprendizaje mquina y minera de datos. Weka es una biblioteca de Java y su cdigo es abierto bajo GNU. Entre los algoritmos de agrupamiento que contiene Weka se encuentra K-means [Witten 1999]. Este algoritmo K-means realiza un preprocesamiento de los datos y obtiene sus centroides iniciales de manera que siempre son los mismos, posteriormente realiza la clasificacin y el clculo de centroides, y finalmente converge cuando los centroides obtenidos en dos iteraciones sucesivas no cambian su valor.

2.3.4 Resultados experimentales del algoritmo implementado

Con el propsito de validar experimentalmente la implementacin del algoritmo K-means estndar, se disearon dos experimentos: uno con una base de datos generada artificialmente para la cual se conoca el nmero de grupos y sus centroides ptimos, y otra base de datos sinttica asociada con el problema de Bin-packing. Los resultados de ambos experimentos se contrastaron con el resultado del paquete comercial SPSS y la biblioteca Weka de Java. En las siguientes secciones se muestran a detalle dichos experimentos.

2.3.4.1 Validacin experimental de la implementacin del K-means estndar

Objetivo Comprobar la correcta implementacin computacional de K-means estndar y contrastar los resultados con SPSS y Weka.

Procedimiento Para esta experimentacin se us como datos de entrada una base de datos sinttica generada por el generador de bases de datos sintticas implementado en esta tesis. De esta base de datos se conoce el error al cuadrado h(W, C)= 77.46 de la agrupacin ptima. La base de datos consta de 40 objetos, dos grupos y dos 17

Captulo 2 K-MEANS ESTNDAR E IMPLEMENTACIN

dimensiones. El siguiente paso es ejecutar cada uno de los algoritmos de agrupamiento, obtener el error al cuadrado h(W, C) de los grupos generados por cada algoritmo, y comprobar su igualdad.

Se presenta en detalle el procedimiento que llev a cabo el algoritmo K-means estndar al ser ejecutado. Primero se calcularon los centroides iniciales C1 = (2.99, 2.42) y C2 = (-2.68, -0.09) de forma aleatoria, posteriormente reparti los objetos usando como medida de similaridad la funcin error al cuadrado d(Xj, Ck) y obteniendo el agrupamiento mostrado en la Figura 2.2. En el siguiente paso se recalcularon los centroides C1 = (3, 2) y C2 = (-4, 2), y nuevamente se repartieron los objetos obteniendo el agrupamiento mostrado en la Figura 3.3. Posteriormente se recalcularon los centroides y se contrastaron con los centroides obtenidos en la iteracin anterior, y como stos fueron iguales el algoritmo convergi en la segunda iteracin.

Iteracin 1 Grupo1 Z1 Grupo2 6 5 4 3 2 1 0 -8 -6 -4 -2 -1 0 -2 2 4 6 Z2

Figura 2.2. Primera iteracin de K-means estndar.

18

Captulo 2 K-MEANS ESTNDAR E IMPLEMENTACIN

Iteracin2 Grupo Z1 Grupo2 6 5 4 3 2 1 -8 -6 -4 -2 0 -1 0 -2 2 4 6 Z2

Figura 2.3. Segunda iteracin de K-means estndar.

Resultados En la Tabla 2.2 se muestran los resultados obtenidos por cada algoritmo durante esta experimentacin. En la primera columna se muestra el Error al cuadrado h(W, C) de K-means estndar; en la segunda columna se muestra el nmero de iteracin en la que converge K-means estndar, en la tercera columna se muestra el error al cuadrado h(W, C) de SPSS, en la cuarta columna se muestra el nmero de iteracin en la que converge SPSS, en la quinta columna se muestra el error al cuadrado h(W, C) de Weka, y en la sexta columna se muestra el nmero de iteracin en la que converge Weka. Tabla 2.2. Comprobacin de la implementacin del algoritmo K-means. K-means estndar Error al cuadrado h(W, C) 77.46 2 Iteracin Error al cuadrado h(W, C) 77.46 2 SPSS Iteracin Error al cuadrado h(W, C) 77.46 4 Weka Iteracin

Anlisis de resultados De acuerdo con los resultados obtenidos en la Tabla 2.1, todos los algoritmos convergen en la misma agrupacin, donde sus errores al cuadrado h(W, C) son 19

Captulo 2 K-MEANS ESTNDAR E IMPLEMENTACIN

iguales al conocido con antelacin. Por lo tanto, podemos concluir que el algoritmo K-means estndar est perfectamente implementado computacionalmente. Por otra parte analizando el nmero de iteraciones, podemos observar que K-means estndar y SPSS convergieron en el mismo nmero de iteraciones y Weka en un nmero mayor.

2.3.4.2 Experimentacin con una base de datos

Objetivo Conocer el error al cuadrado h(W, C) y la iteracin promedio en la que convergen cada uno de los algoritmos.

Procedimiento A cada algoritmo se le dio como datos de entraba la base de datos Bin-packing descrita en la seccin 4.1.1. Para el algoritmo K-means estndar se hicieron 30 corridas, ya que este algoritmo obtiene los centroides iniciales de manera aleatoria, siendo cada uno de stos un objeto de la base de datos. Para SPSS y Weka se realiz slo una corrida, ya que estos algoritmos hacen un preprocesamiento de los datos y sus centroides iniciales siempre son los mismos. Para comparar la calidad de los algoritmos se us la funcin error al cuadrado h(W, C). Cabe mencionar que, entre menor sea este error, mayor es la eficacia del agrupamiento.

Resultados En la Tabla 2.3 se muestran los resultados en eficacia y eficiencia correspondientes al punto de convergencia de cada una de las 30 corridas. En la primera columna se muestra el nmero de corrida; en la segunda, el nmero de iteracin; y en la tercera columna se muestra el error al cuadrado h(W, C) para cada corrida. En la Tabla 2.4, en el primer rengln se muestra el nmero de iteraciones en el que converge cada algoritmo, y en el ltimo rengln se muestra el error al 20

Captulo 2 K-MEANS ESTNDAR E IMPLEMENTACIN

cuadrado h(W, C) de los algoritmos de agrupamiento k-means estndar, SPSS y Weka. Tabla 2.3 Corridas K-means estndar con la base de datos Bin-packing.
No. Corrida 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Iteracin 19 27 23 22 32 23 35 32 16 26 31 39 28 17 18 22 18 15 34 25 31 21 18 17 16 25 23 26 11 14 Error al cuadrado h(W, C) 580.27 580.32 580.32 580.27 580.27 580.32 580.27 580.27 580.33 580.27 580.32 580.32 580.27 580.27 580.29 580.27 580.27 580.27 580.27 580.27 580.27 580.32 580.27 580.32 580.33 580.27 580.27 580.27 580.32 580.33

21

Captulo 2 K-MEANS ESTNDAR E IMPLEMENTACIN

Tabla 2.4 Resultados de la comparacin K-means estndar usando Bin-packing. k-means estndar promedio Iteracin Error al cuadrado h(W, C) 23 580.29 31 580.27 21 669.30 SPSS Weka

Anlisis de resultados

En promedio de iteraciones y calidad, K-means estndar converge en 23 iteraciones con un error al cuadrado h(W, C) de 580.29, SPSS converge en 31 iteraciones y un error al cuadrado h(W, C) de 580.27, y Weka converge en la iteracin 21 y con un error al cuadrado h(W, C) de 669.30, ver Tabla 2.4.

22

Captulo 3
MEJORAMIENTO K-MEANS PROPUESTO AL ALGORITMO

En este captulo se presenta una tcnica para mejorar la eficiencia y eficacia del algoritmo K-means estndar mediante una nueva condicin de convergencia. Durante experimentos realizados con una base de datos, observamos que el algoritmo K-means estndar no converga en el ptimo local en un 96% de las pruebas realizadas, ya que el algoritmo entraba a un mnimo local y sala de l convergiendo con un error mayor, lo cual mostr una posibilidad de hacer una mejora al algoritmo.

En este captulo se presenta una tcnica para mejorar el algoritmo K-means y est organizado como sigue: En la seccin 3.1 se describe el anlisis del algoritmo K-means estndar, y en la seccin 3.2 se presenta la tcnica para mejorar el algoritmo.

22

Captulo 3 MEJORAMIENTO PROPUESTO AL ALGORITMO K-MEANS

3.1 ANLISIS DETALLADO DEL ALGORITMO K-MEANS ESTNDAR

Con la finalidad de hacer una mejora al algoritmo K-means, se analiz detalladamente cada una de las corridas de K-means estndar en cada una de las iteraciones, comparando el error al cuadrado h(W, C) de cada una de las corridas en cada una de las iteraciones.

3.1.1 Anlisis del comportamiento para una corrida

Objetivo Realizar un anlisis detallado del algoritmo K-means estndar con la finalidad de encontrar una posible mejora.

Procedimiento Analizar el comportamiento del error al cuadrado h(W, C) de cada una de las iteraciones con la base de datos Diabetes descrita en la seccin 4.1.4.

Resultados En la Tabla 3.1 se muestran detalles de la corrida del algoritmo. En la primera columna se muestra el nmero de iteracin, en la dos y tres respectivamente se muestra el error al cuadrado g(Wk, Ck) de cada grupo. Finalmente la columna cuatro muestra el error al cuadrado h(W, C) de la agrupacin.

Anlisis de resultados Al analizar los resultados tabulares del error al cuadrado de cada iteracin, se observ que el algoritmo pasaba por un ptimo local y, sin embargo, continuaba realizando iteraciones incrementando el error al cuadrado h(W, C).

23

Captulo 3 MEJORAMIENTO PROPUESTO AL ALGORITMO K-MEANS

Tabla 3.1 Salida de un mnimo y convergencia en una calidad menor con Diabetes.
No. Iteracin Error al cuadrado g(Wk, Error al cuadrado g(Wk, Ck) del grupo 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 26891 24755 28106 30447 31710 32584 33447 33980 34392 34660 34917 35064 35195 35434 35464 Ck) del grupo 2 29712 23053 205972 19202 18688 18225 17649 17414 17175 17047 16879 16823 16739 16544 16607 Error al cuadrado h(W, C) 56603 47808 48703 49649 50399 50809 51097 51395 51568 51708 51797 51887 51935 51979 52072

3.1.2 Bsqueda de patrones en el comportamiento del algoritmo K-means estndar con la base de datos Diabetes

En el experimento de la seccin 3.1.1 nos dimos cuenta de que el algoritmo no converga en el ptimo local y continuaba realizando iteraciones perdiendo calidad y consumiendo recursos.

Objetivo Buscar patrones de comportamiento durante cada iteracin del algoritmo basados en el error al cuadrado h(W, C), y comprobar si el patrn encontrado en la seccin 3.1.1 se repite.

24

Captulo 3 MEJORAMIENTO PROPUESTO AL ALGORITMO K-MEANS

Procedimiento Se realizaron 30 corridas del algoritmo K-means estndar usando la base de datos Diabetes descrita en la seccin 4.1.4, obteniendo el error al cuadrado h(W, C) de cada una de las iteraciones.

Resultados Durante la experimentacin se obtuvo una secuencia de la corrida por iteracin igual que la presentada en la Tabla 3.1 y se observaron dos patrones:

a) Patrn donde el algoritmo pasa por un ptimo local y degrada su valor convergiendo en una calidad menor ver Figura 3.1. b) Patrn donde el algoritmo converge en el ptimo local ver Figura.3.2.

Como se puede apreciar en la Figura 3.1, en la iteracin nmero dos se encuentra un valor mnimo del error cuadrado h(W, C); sin embargo, el algoritmo K-means estndar converge en un valor final del error cuadrado h(W, C) y en una iteracin posterior.
15.5E+8

Error al cuadrado h(W, C)

15.0E+8 14.5E+8

Valor inicial
14.0E+8 13.5E+8 13.0E+8 12.5E+8 12.0E+8 1 2 3 4 5 6 7 8 9 10

Valor de convergencia

ptimo local

11

12

13 14

No. Iteracin

Figura 3.1. K-means pasa por un mnimo local y pierde su valor ptimo.

Por otra parte, en varios de los experimentos se observ que el algoritmo converga en un ptimo local como se muestra en la Figura 3.2. En estos casos el 25

Captulo 3 MEJORAMIENTO PROPUESTO AL ALGORITMO K-MEANS

error cuadrado h(W, C) segua un iteracin.


Error al cuadrado h(W,C)
40E+8

patrn de decremento con cada nueva

Valor inicial
30E+8

20E+8

Valor de convergencia

10E+8 1 2 3 4 5 6

ptimo local
7 8 9 10

No. Iteracin

Figura 3.2. K-means converge en un mnimo local.

En la Tabla 3.2 se muestran en forma sombreada las corridas que presentan el patrn donde pasa por un mnimo y converge en un error al cuadrado h(W, C) mayor. En las filas no sombreadas se presenta el patrn donde converge en un mnimo. En la columna uno se muestra el nmero de la corrida, en la dos y tres se muestra respectivamente el nmero de iteraciones y el error al cuadrado h(W, C) en el cual converge el algoritmo K-means estndar. En las columnas cuatro y cinco se muestran respectivamente el nmero de iteracin y el error al cuadrado h(W, C) cuando se encuentra el ptimo local.

Anlisis de resultados En el 96% de las corridas se repeta el comportamiento del algoritmo donde no paraba en el ptimo local y en el 4% de los casos el algoritmo s converga en el ptimo local.

26

Captulo 3 MEJORAMIENTO PROPUESTO AL ALGORITMO K-MEANS

Tabla 3.2 Experimentacin de K-means estndar con Diabetes.


K-means estndar Corrida 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Iteracin 17 14 13 16 15 14 14 15 15 15 14 14 16 16 15 15 14 13 15 15 16 16 10 13 15 14 15 16 14 16 Error al cuadrado W 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 52072 Iteracin 4 2 3 3 3 3 2 3 3 2 2 2 3 3 2 3 2 2 2 2 3 3 10 2 2 2 3 3 2 3 ptimo local Error al cuadrado W 47744 48966 50235 47830 48785 48282 48775 48149 47815 47826 48284 48228 48099 47965 47863 48089 48289 49221 47954 47808 47805 47780 52072 49363 48130 48212 48051 47918 48634 47810

27

Captulo 3 MEJORAMIENTO PROPUESTO AL ALGORITMO K-MEANS

3.1.3 Comportamiento del algoritmo K-means estndar con siete bases de datos

Objetivo Realizar por cada corrida un anlisis de cada iteracin de las siete bases de datos mostradas en la Tabla 4.1 usando el algoritmo K-means estndar, con el objetivo de detectar el nmero de corridas donde pasa por un mnimo y pierde su valor convergiendo en un error al cuadrado h(W, C) mayor y en consecuencia menor eficacia.

Procedimiento Se realizaron 30 corridas del algoritmo K-means estndar para cada una de las bases de datos de la Tabla 4.1.

Resultados Se obtuvieron 30 corridas de cada una de las bases de datos, donde para cada corrida se registr el error cuadrado h(W, C) de cada una de las iteraciones realizadas por el algoritmo.

Anlisis de resultados Durante esta experimentacin se observ que el algoritmo no converga en un ptimo local como se muestra en la Figura 3.1. En estos casos se llegaba a un mnimo local y el algoritmo continuaba haciendo operaciones incrementando su error cuadrado h(W, C) y, por consiguiente, decrementando su eficacia. Los resultados obtenidos en esta experimentacin son resumidos en la Tabla 3.3.

En la Tabla 3.3 se muestra el porcentaje de las corridas en las cuales se observo el patrn de la Figura 3.1 para cada base de datos. En la primera columna se muestra el nombre de la base de datos; y en la segunda y tercera columnas respectivamente, el nmero de corridas y el porcentaje de corridas en las cuales ocurre el patrn de la Figura 3.1. De las bases de datos analizadas, Diabetes fue en la que ms corridas se encontr este patrn (96%). Despus sigue Bin-Packing 28

Captulo 3 MEJORAMIENTO PROPUESTO AL ALGORITMO K-MEANS

con un 77%, Liver con 70%, Vehicle con 50%, Wine con 43%, Heart con 33% y Glass fue la que en menos corridas se observ este patrn (20%). Tabla 3.3. Porcentaje de corridas que no paran en un ptimo local. Base de datos Diabetes Bin-packing Liver Vehicle Wine Heart Glass Nmero de iteraciones con el patrn de la Figura 3.1 29 23 21 15 13 10 6 % de corridas que no paran en un ptimo local 96 77 70 50 43 33 20

Con base en los resultado anteriores, se determin que sera de utilidad el definir una nueva condicin de convergencia, para mejorar desempeo del algoritmo en aquellos casos en los cuales el algoritmo no para en el ptimo local. Una mejora de este tipo puede proporcionar dos beneficios: una reduccin en el nmero de iteraciones y una mejora en la calidad.

3.2 MEJORAMIENTO PROPUESTO AL ALGORITMO K-MEANS ESTNDAR

Tradicionalmente se ha considerado que el algoritmo K-means es un algoritmo goloso; es decir, que puede quedar atrapado en un ptimo local; sin embargo, analizando las condiciones de convergencia y la experimentacin realizada, se observ que no existe un criterio de convergencia asociado al valor de la funcin del error al cuadrado h(W, C), siendo sta la razn por la cual el algoritmo estndar no puede garantizar una convergencia a un ptimo local (ver Figura. 3.3). En este sentido, la principal aportacin de este trabajo consiste en asociar un criterio de convergencia con los valores de la funcin error al cuadrado h(W, C), de

29

Captulo 3 MEJORAMIENTO PROPUESTO AL ALGORITMO K-MEANS

manera que sea posible que el algoritmo pare cuando se identifique un ptimo local. La nueva condicin de convergencia est compuesta de dos condiciones: a) Cuando en dos iteraciones sucesivas el valor del error al cuadrado h(W, C) de la ltima iteracin es mayor que el valor del error al cuadrado h(W, C) de la iteracin anterior. b) Cuando los centroides en dos iteraciones sucesivas no cambian.

3.3 ALGORITMO DEL ALGORITMO K-MEANS MEJORADO

En la siguiente figura se muestra el pseudocodigo del algoritmo K-means mejorado, donde la condicin de convergencia propuesta se encuentra en la lnea 32 de la Figura 3.3.

Algoritmo K-means_mejorado( X, k, W ) Entrada X, k Salida W 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Para ( m 1 hasta k ) hacer Cm aleatorio ( X ); Fin Para; z + ; Repetir z' z; Para ( i 1 hasta k ) hacer W i ; Fin Para; Para ( j 1 hasta n ) hacer min + ; Para ( i 1 hata k ) hacer Si (d( Xj, Ci ) < min ) hacer min d( Xj, Ci ); 30

Captulo 3 MEJORAMIENTO PROPUESTO AL ALGORITMO K-MEANS

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

m i; Fin Si; Fin Para; Wm Wm U { Xj }; Fin Para; C C; Para ( i 1 hasta k ) hacer Para ( l 1 hasta d ) hacer media 0; Para ( j 1 hasta nk ) Hacer media media + wijl; Fin Para; Cil ( media / nk ); Fin Para; Fin Para; z h( W, C ); Hasta ( ( C = C ) o ( z < z ) ); Regresa ( W ); Figura 3.3 Pseudocdigo del algoritmo K-means mejorado.

31

Captulo 4
RESULTADOS EXPERIMENTALES

En este captulo se describe la experimentacin realizada para validar el nuevo criterio de convergencia del algoritmo K-means mejorado en este trabajo. El algoritmo K-means mejorado se contrasta con los algoritmos: K-means estndar, el paquete comercial SPSS y la herramienta Weka de Java.

En este captulo se muestra la experimentacin realizada para validar el algoritmo K-means mejorado en el captulo 3. En particular se muestran los experimentos realizados con seis bases de datos reales y una base de datos del problema Bin-packing. En la seccin 4.1 se describen las bases de datos que se usaron en la experimentacin, en la seccin 4.2 se muestra la experimentacin realizada y el anlisis de los resultados.

32

Captulo 4 RESULTADOS EXPERIMENTALES

4.1 DESCRIPCIN DE LAS BASES DE DATOS QUE SE USARON EN LA EXPERIMENTACIN

Para realizar la experimentacin se usaron seis bases de datos reales del repositorio aprendizaje mquina [Hettich 1998] y una base de datos de Bin-packing obtenida de la tesis doctoral [CRUZ 2004].

4.1.1 Base de datos Bin-packing

Bin-packing es una base de datos sinttica, la cual contiene un conjunto de 2,430 objetos aleatorios con cuatro grupos y cinco dimensiones.

4.1.2 Base de datos Vehicle

La base de datos Vehicle se usa para clasificar una silueta dada que pertenece a uno de cuatro tipos de vehculos, usando un conjunto de rangos extrados de la silueta. El vehculo puede verse desde muchos ngulos diferentes. Vehicle contiene 846 objetos, cuatro grupos y 18 dimensiones.

4.1.3 Base de datos Glass

La base de datos Glass se usa para la clasificacin de tipos de cristales. El acopio de estos datos fue motivado por la investigacin de criminologa. Glass contiene 214 objetos, siete grupos y nueve dimensiones.

4.1.4 Base de datos Diabetes

La base de datos Diabetes contiene el diagnstico de pacientes de diabetes segn la Organizacin Mundial de Salud. Diabetes contiene 768 objetos, dos grupos y ocho dimensiones.

33

Captulo 4 RESULTADOS EXPERIMENTALES

4.1.5 Base de datos Heart

Esta base de datos contiene el diagnstico de enfermedades del corazn. Heart contiene 270 objetos, dos grupos y 13 dimensiones.

4.1.6 Base de datos Wine

Estos datos son los resultados de un anlisis qumico de cepas cultivadas en una regin de Italia y deriv de tres cultivos diferentes. El anlisis determin las cantidades de 13 componentes encontrados en cada uno de los tres tipos de vinos. Wine contiene 178 objetos, tres grupos y 13 dimensiones.

4.1.7 Base de datos Liver

Estos datos son resultado de una investigacin mdica de pacientes que pueden ser sensibles a desrdenes del hgado, los cuales podran originarse por el consumo excesivo de alcohol. Liver contiene 345 objetos, dos grupos y 6 dimensiones.

Tabla 4.1. Detalle de las bases de datos usadas para experimentacin. Base de datos Nmero de grupos Bin-Packing Vehicle Glass Diabetes Heart Wine Liver 4 4 7 2 2 3 2 Nmero de dimensiones 5 18 9 8 13 13 6 Nmero de objetos 2430 846 214 768 270 178 345

34

Captulo 4 RESULTADOS EXPERIMENTALES

En la Tabla 4.1 se muestran los atributos generales de las bases de datos. En la primera columna se encuentran los nombres de las bases de datos; en la segunda, el nmero de grupos; en la tercera, el nmero de dimensiones; y en la cuarta, el nmero de objetos.

4.2 RESULTADOS EXPERIMENTALES

Con la finalidad

de comprobar la eficiencia y eficacia del algoritmo K-means

mejorado, se realizaron dos experimentos: uno para comprobar la eficiencia usando como mtrica el nmero de iteraciones y otro para comprobar la eficiencia usando como mtrica la suma del error al cuadrado h(W, C) de los grupos.

Objetivo El objetivo es comparar la eficiencia y eficacia del algoritmo K-means mejorado con K-means estndar, SPSS y Weka.

Procedimiento Se usaron las siete bases de datos mencionadas en la Tabla 4.1, y cada una se proces usando Weka, SPSS, K-means estndar y K-means mejorado. Las bases de datos se procesaron una vez con Weka y con SPSS, debido a que estas herramientas hacen un preprocesamiento de los datos y definen unos centroides iniciales, los cuales no varan para cada corrida. Para el caso K-means estndar y K-means mejorado, se efectuaron 30 corridas generando al azar los centroides iniciales para cada corrida. 4.2.1 Resultados de eficiencia

Se obtuvo el nmero de iteraciones en el que convergi cada algoritmo con las bases de datos. Los resultados son expresados en una tabla comparativa para cada una de las bases de datos, la cual expresa el nmero de iteracin en que converge cada algoritmo. Para los algoritmos K-means estndar y K-means mejorado, se muestran la iteracin mnima, promedio y mxima en la columna dos 35

Captulo 4 RESULTADOS EXPERIMENTALES

y tres respectivamente; y en la columna cuatro y cinco, el nmero de iteracin en la que converge SPSS y Weka respectivamente. 4.2.1.1 Resultados para Bin-packing. En la Tabla 4.2 se ve que en promedio el algoritmo mejorado converge en 17 iteraciones, siendo ste el ms rpido; despus Weka, en 21; K-means estndar, en 25; y por ltimo SPSS, en 31 iteraciones. Tabla 4.2 Resultados experimentales en eficiencia para Bin-packing. Bin-packing K-means mejorado K-means estndar SPSS Mnimo Promedio Mximo 10 17 36 11 23 39 31 21 Weka

4.2.1.2 Resultados para Vehicle. En la Tabla 4.3 se ve que en promedio el algoritmo mejorado converge en la misma iteracin que Weka con 10 iteraciones, despus le sigue K-means estndar con 13 iteraciones y por ltimo SPSS con 19 iteraciones. Tabla 4.3 Resultados experimentales en eficiencia para Vehicle. Vehicle K-means mejorado K-means estndar SPSS Mnimo Promedio Mximo 2 10 26 2 13 26 19 10 Weka

4.2.1.3 Resultados para Glass. En la Tabla

4.4 se ve que en promedio el

algoritmo mejorado converge en el menor nmero de iteraciones, en la 8; despus le sigue K-means estndar y SPSS con 9 iteraciones y finalmente Weka con 14 iteraciones. 36

Captulo 4 RESULTADOS EXPERIMENTALES

Tabla 4.4 Resultados experimentales en eficiencia para Glass. Glass K-means mejorado K-means estndar Mnimo Promedio Mximo 4 8 18 4 9 18 9 14 SPSS Weka

4.2.1.4 Resultados para Diabetes. En la Tabla 4.5 se ve que en promedio el algoritmo mejorado converge mucho ms rpido, en 3 iteraciones; despus le sigue Weka con 9, K-means estndar con 15 y finalmente SPSS con 17 iteraciones. Tabla 4.5 Resultados experimentales en eficiencia para Diabetes. Diabetes K-means mejorado K-means estndar SPSS Mnimo Promedio Mximo 2 3 10 10 15 17 17 9 Weka

4.2.1.5 Resultados para Heart. En la Tabla 4.6 se ve que Weka es el que obtuvo mejores resultados terminando en 6 iteraciones, despus le sigue el algoritmo K-means mejorado con 7, K-means estndar con 10 y finalmente SPSS con 13 iteraciones. Tabla 4.6 Resultados experimentales en eficiencia para Heart. Heart K-means mejorado K-means estndar Mnimo Promedio Mximo 2 7 14 2 10 14 13 6 SPSS Weka

37

Captulo 4 RESULTADOS EXPERIMENTALES

4.2.1.6 Resultados para Wine. En la Tabla

4.7 se ve que en promedio el

algoritmo mejorado converge ms rpido, con 5 iteraciones; despus le sigue K-means estndar con 6 y finalmente SPSS y Weka con 8 iteraciones. Tabla 4.7 Resultados experimentales en eficiencia para Wine. Wine K-means mejorado Mnimo Promedio Mximo 2 5 13 K-means estndar 2 6 13 8 8 SPSS Weka

4.2.1.7 Resultados para Liver. En la Tabla

4.8 se ve que en promedio el

algoritmo mejorado converge ms rpido, en 4 iteraciones; despus le sigue SPSS con 6, Weka con 7 y finalmente el algoritmo K-means estndar con 9 iteraciones. Tabla 4.8 Resultados experimentales en eficiencia para Liver. Liver K-means mejorado Mnimo Promedio Mximo 2 4 8 K-means estndar 3 9 14 6 7 SPSS Weka

4.2.2 Anlisis comparativo de eficiencia

En esta seccin se realiza un anlisis comparativo del nmero de iteraciones en el que convergen los algoritmos con las bases de datos que se estn manejando. En particular se contrastan los resultados obtenidos por el algoritmo K-means mejorado contra los resultados obtenidos por los dems algoritmos en porcentaje. En la Tabla 4.9 se muestra dicho anlisis comparativo. En la primera

columna se muestra el nombre de la base de datos; en la segunda y tercera, la 38

Captulo 4 RESULTADOS EXPERIMENTALES

iteracin promedio en que converge el algoritmo K-means mejorado y K-means estndar respectivamente. En la cuarta columna se muestra la superioridad del algoritmo K-means mejorado en porcentaje. En la columna cinco se indica el nmero de iteracin en la que converge el paquete comercial SPSS; y en la sexta, el porcentaje de mejora del algoritmo K-means mejorado. En la columna siete se muestra la iteracin en la que converge Weka; y en la octava columna, la superioridad del algoritmo K-means mejorado en porcentaje.

Tabla 4.9 Anlisis comparativo en eficiencia. Base de datos K-means mejorado Iteracin K-means estndar Iteracin % 26.09 23.08 0.00 78.57 30.00 16.67 55.56 Iteracin 31 19 9 17 13 8 6 % 45.16 47.37 11.11 82.35 46.15 37.50 33.33 Iteracin 21 10 14 9 6 8 7 % 19.05 0.00 42.86 66.70 -16.67 37.50 42.86 SPSS WEKA

promedio promedio Bin-packing Vehicle Glass Diabetes Heart Wine Liver 17 10 8 3 7 5 4 23 13 8 14 10 6 9

Como se observa en la Tabla 4.9, en el mejor de los casos el algoritmo mejorado vs. K-means estndar gan con 78% en la base de datos Bin-packing, el algoritmo mejorado vs. SPSS gan con 82% en la base de datos Diabetes y el algoritmo mejorado vs. Weka gan con 66% en la base de datos Diabetes. En el peor de los casos el algoritmo mejorado vs. K-means estndar obtuvo el mismo resultado con la base de datos Glass, el algoritmo mejorado vs. SPSS gan con 11% en la base de datos Glass y el algoritmo mejorado vs. Weka perdi con 16% en la base de datos Heart.

39

Captulo 4 RESULTADOS EXPERIMENTALES

4.2.3 Resultados de eficacia

Se obtuvo el error al cuadrado h(W, C) en el cual convergi cada algoritmo para cada una de las bases de datos. Los resultados son expresados en una tabla comparativa para cada una de las bases de datos. En dicha tabla se indica el error al cuadrado h(W, C) con el que convergi cada algoritmo. Adems, en la tabla se indica el error al cuadrado h(W, C) mnimo, promedio y mximo para los algoritmos K-means estndar y mejorado en las columnas dos y tres respectivamente. Es conveniente mencionar que estos resultados se obtuvieron con un conjunto de 30 corridas. Finalmente, en las columnas cuatro y cinco se indica el error al cuadrado h(W, C) con el que convergion SPSS y Weka respectivamente. 4.2.3.1 Resultados para Bin-packing. La Tabla 4.10 muestra que K-means

mejorado en promedio es mejor que K-means estndar, SPSS y Weka. Tabla 4.10 Resultados experimentales en eficacia para Bin-packing. Bin-packing K-means mejorado K-means estndar SPSS Mnimo Promedio Mximo 579.96 580.17 580.33 580.27 580.29 580.33 580.27 669.30 Weka

4.2.3.2 Resultados para Vehicle. En la Tabla 4.11, se ve que K-means mejorado en promedio es mejor que K-means estndar, SPSS y Weka.

40

Captulo 4 RESULTADOS EXPERIMENTALES

Tabla 4.11 Resultados experimentales en eficacia para Vehicle. Vehicle K-means mejorado K-means estndar SPSS Mnimo Promedio Mximo 45105.17 46989.71 56915.15 45144.24 47122.65 56915.15 50001.83 55949.20 Weka

4.2.3.3 Resultados para Glass. En la Tabla 4.12, se ve que K-means mejorado en promedio es mejor que el promedio de K-means estndar, SPSS y Weka. Tabla 4.12 Resultados experimentales en eficacia para Glass. Glass K-means mejorado K-means estndar SPSS Weka Mnimo Promedio Mximo 203.37 210.54 223.80 203.37 210.58 223.78 211.50 235.82

4.2.3.4 Resultados para Diabetes. En la Tabla

4.13, se ve que K-means

mejorado en promedio es mejor que el promedio de K-means estndar, SPSS y Weka. Tabla 4.13 Resultados experimentales en eficacia para Diabetes. Diabetes K-means mejorado K-means estndar SPSS Mnimo Promedio Mximo 47744.54 48399.88 52072.20 52072.20 52072.20 52072.20 52072.24 73193.07 Weka

4.2.3.5 Resultados para Heart. En la Tabla 4.14, se ve que K-means mejorado en promedio es mejor que el promedio de K-means estndar, SPSS y Weka.

41

Captulo 4 RESULTADOS EXPERIMENTALES

Tabla 4.14 Resultados experimentales en eficacia para Heart. Heart K-means mejorado K-means estndar SPSS Mnimo Promedio Mximo 10680.87 10692.55 10700.83 10695.79 10698.47 10700.83 10700.83 13692.84 Weka

4.2.3.6 Resultados para Wine. En la Tabla 4.15, se ve que K-means mejorado en promedio es mejor que el promedio de K-means estndar, SPSS y Weka. Tabla 4.15 Resultados experimentales en eficacia para Wine. Wine K-means mejorado K-means estndar SPSS Mnimo Promedio Mximo 16384.57 17776.31 24905.08 16529.84 17812.16 24905.08 18436.95 24590.53 Weka

4.2.3.7 Resultados para Liver. En la Tabla 4.16, se ve que K-means mejorado en promedio es mejor que el promedio de K-means estndar, SPSS y Weka. Tabla 4.16 Resultados experimentales en eficacia para Liver. Liver K-means mejorado K-means estndar SPSS Mnimo Promedio Mximo 9865.34 9961.43 10231.43 10212.54 10212.54 10212.54 10231.43 10921.56 Weka

4.2.4 Anlisis comparativo de la eficacia

En esta seccin se realiza un anlisis comparativo del error al cuadrado h(W, C) en la que convergen los algoritmos con las bases de datos que se estn 42

Captulo 4 RESULTADOS EXPERIMENTALES

manejando. En particular se contrastan los resultados obtenidos por el algoritmo K-means mejorado contra los resultados obtenidos por los dems algoritmos en porcentaje.

En la Tabla 4.17 se muestra dicho anlisis comparativo. En la primera columna se muestra el nombre de la base de datos; en la segunda y tercera, el error al cuadrado h(W, C) promedio en que converge el algoritmo K-means mejorado y K-means estndar respectivamente. En la cuarta columna se muestra la superioridad del algoritmo K-means mejorado en porcentaje. En la columna cinco se indica el error al cuadrado h(W, C) con el que converge el paquete comercial SPSS; y en la sexta, el porcentaje en el que es mejor el algoritmo K-means mejorado. En la columna siete se muestra el error al cuadrado h(W, C) con el que converge Weka; y en la octava columna, la superioridad del algoritmo K-means mejorado en porcentaje. Como se observa en la Tabla 4.17, en el mejor de los casos el algoritmo mejorado vs. K-means estndar gan con 7% en la base de datos Diabetes, el algoritmo mejorado vs. SPSS gan con 7% en la base de datos Diabetes y el algoritmo mejorado vs. Weka gan con 33% en la base de datos Diabetes. En el peor de los casos el algoritmo mejorado vs. K-means estndar obtuvo 0.02% en la base de datos Bin-packing, el algoritmo mejorado vs. SPSS gan con 0.02% en la base de datos Bin-packing y el algoritmo mejorado vs. Weka gan con 8.79% en la base de datos Liver.

43

Captulo 4 RESULTADOS EXPERIMENTALES

Tabla 4.17 Anlisis comparativo en eficacia. K-means mejorado Base de datos Error al cuadrado h(W, C) promedio Bin-packing Vehicle Glass Diabetes Heart Wine Liver 580.17 46989.72 210.54 48399.88 10692.66 17776.32 9961.43 K-means estndar Error al cuadrado h(W, C) promedio 580.29 47122.65 210.58 52072.20 10698.48 17812.16 10212.55 0.02 0.28 0.02 7.05 0.05 0.20 2.46 580.27 50001.83 211.51 52072.24 10700.84 18436.95 10231.44 0.02 6.02 0.46 7.05 0.08 3.58 2.64 669.30 13.32 55949.21 16.01 235.82 10.72 73193.07 33.87 13692.85 21.91 24590.54 27.71 10921.56 8.79 % SPSS Error al cuadrado h(W, C) % WEKA Error al cuadrado h(W, C) %

44

Captulo 5
CONCLUSIONES Y TRABAJOS FUTUROS

En este captulo se presentan las aportaciones de esta investigacin, y se sugieren direcciones para trabajos futuros.

5.1 CONCLUSIONES

Un buen nmero de mejoras del algoritmo K-means han estado enfocadas a la inicializacin del algoritmo [Su 2004, Pelleg 2000, Likas 2003]; sin embargo, uno de los factores que ms inciden en el costo computacional es el nmero de iteraciones que se realizan para que el algoritmo converja.

En este trabajo, se muestra que es factible mejorar el algoritmo K-means estndar mediante un nuevo criterio de convergencia. Durante el monitoreo de una implementacin del algoritmo estndar, y en particular observando el valor del error cuadrado para cada iteracin, se observ que el algoritmo no paraba en un ptimo local; es decir, a pesar de haber obtenido un mnimo local, el algoritmo continuaba realizando iteraciones. Este patrn de comportamiento en el algoritmo se repiti en aproximadamente el 96% de los casos en que se corri con la base de datos Diabetes. 45

Captulo 5 CONCLUSIONES Y TRABAJOS FUTUROS

Un anlisis detallado del algoritmo nos permiti identificar que el algoritmo no paraba debido a que su condicin de convergencia no incorporaba el error al cuadrado. En contraste, en este trabajo se aporta una nueva condicin de convergencia que incorpora el error al cuadrado, lo cual permite garantizar que el algoritmo pare en ptimos locales, reduciendo el nmero de iteraciones y mejorando la calidad en la solucin. Para validar la mejora propuesta se us un conjunto de bases datos reales obtenidas del repositorio de aprendizaje mquina [Hettich 1998], las cuales se procesaron con el algoritmo K-means mejorado, K-means estndar, la librera Weka de Java y el paquete comercial SPSS. Los resultados experimentales fueron alentadores; por ejemplo, en la base de datos Diabetes la solucin se obtuvo en 3 iteraciones con el algoritmo mejorado, mientras que con K-means estndar se obtuvo en 15; con SPSS, en 17; y con Weka, en 9. Con relacin a la calidad el algoritmo mejorado fue superior en 7.05% con respecto al K-means estndar, 7.05% con respecto a SPSS y 33.87% mejor que Weka. Finalmente consideramos que la mejora propuesta puede ser incorporada en algunas otras variantes del algoritmo K-means contribuyendo a mejorar su desempeo.

46

Captulo 5 CONCLUSIONES Y TRABAJOS FUTUROS

5.2 TRABAJOS FUTUROS

En el desarrollo de este trabajo de tesis surgieron varias propuestas de trabajos futuros:

Implementacin optimizada del algoritmo K-means con la condicin de convergencia propuesta en esta tesis, ya que en sta tesis se implement con propsito de estudio; es decir, se introdujo cdigo con la finalidad de monitorear su comportamiento.

Incorporacin de la condicin de convergencia propuesta en esta tesis en otras variantes del algoritmo K-means.

47

REFERENCIAS

[Berkhin 2002] Berkhin, P.: Survey of Clustering Data Mining Techniques. In Accrue . San Jose, CA. (2002)

[Cruz 2004] Cruz, L.: Clasificacin de Algoritmos Heursticos para la Solucin de Problemas de Bin Packing. Tesis doctoral. Centro Nacional de Investigacin y Desarrollo Tecnolgico (CENIDET) Cuernavaca, Mxico (2004)

[Fraire 2005] Fraire, H.: Una Metodologa para el Diseo de la Fragmentacin y Ubicacin en Grandes Bases de Datos Distribuidas. Tesis doctoral. Centro Nacional de Investigacin y Desarrollo Tecnolgico (CENIDET) Cuernavaca, Mxico (2005)

[Halkidi 2001] Halkidi, M., Batistakis, Y., Vazirgiannis, Michalis.: On Clustering Validation Techniques. In Journal of Intelligent Information Systems. Publishers Kluwer Academic. (2001) 107-145 [Hamerly 2002] Hamerly, G., Elkan, C.: Alternatives to the K-means Algorithm that Find Better Clusterings. In Proceedings of the Eleventh International Conference on Information and Knowledge Management. ACM Press. New York (2002) 600607 [Hettich 1998] Hettich, S., Blake, C.L., Merz, C.J: UCI Repository of Machine Learning Databases. Department of Information and Computer Science, University of California. Irvine, CA (1998) http://www.ics.uci.edu/~mlearn/MLRepository.html. [Jain 1999] Jain, A.K, Murty, M.N., Flynn, P.J.: Data Clustering: A Review. ACM Computing Survey. Vol. 31, No. 3 (1999) 264-323 48

[Kanungo 2000] Kanungo, T., Mount, D M., Netanyahu, N S., Piatko, C.: The Analysis of a Simple K-means Clustering Algorithm. Proceedings or the Sixteenth Annual Symposium on Computational Geometry, ACM Press, New York, 2000, 100-109

[Kanungo 2002] Kanungo, T., Mount, D.M., Netanyahu, N.S., Piatko, C.D., Silverman, R., Wu, A.Y.: An Efficient K-means Clustering Algorithm: Analysis and Implementation. Pattern Analysis and Machine Intelligence, IEEE

Transactions on Pattern Analysis and Machine Intelligence. Vol. 24, No. 7 (2002) 881-892

[Likas 2003] Likas, A., Vlassis, N., Verbeek, J.J.: The Global K-means Clustering Algorithm. Pattern Recognition. The Journal of the Pattern Recognition Society. Vol. 36, No. 2 (2003) 451-461

[MacQueen 1967] MacQueen, J.: Some Methods for Classification and Analysis of Multivariate Observations. In Proceedings Fifth Berkeley Symposium

Mathematics Statistics and Probability. Vol. 1. Berkeley, CA (1967) 281-297 [Mehmed 2003] Mehmed, K.: Data Mining: Concepts, Models, Methods, and Algorithms. John Wiley & Sons Inc. (2003)

[Ordonez 2004] Ordonez, C.: Programming the K-means Clustering Algorithm in SQL. Proceedings or the 2004 ACM SIGKDD International Conference on Knowledge Discovery and Data Mining., 2004, 823-828

[Pelleg 2000] Pelleg, D., Moore, A.: X-means: Extending K-means with Efficient Estimation of the Number of Clusters. In Proceedings 17 th. International Conference on Machine Learning. Morgan Kaufmann Publishers. San Francisco, CA (2000) 727-734

49

[Pham 2004] Pham, D T., Nguyen, C D.: An Incremental K-means Algorithm. In Journals ProQuest Science. Proceedings of the Institution of Mechanical Engineers., 2004, Vol. 218, Part. C7, 783-795

[SPSS] SPSS Inc. SPSS Ver. 10.0. On product Information. Chicago, Illinois.

[Su 2001] Su, M.C., Chou, C.H.: A Modified Version of the K-Means Algorithm with a Distance Based on Cluster Symmetry. Pattern Analysis and Machine Intelligence, IEEE Transactions on Pattern Analysis and Machine Intelligence. Vol. 23, No. 6 (2001) 674-680

[Su 2004] Su, T., Dy, J.: A Deterministic Method for Initializing K-means Clustering. Proceeding of the 16th IEEE International Conference on Tools with Artificial Intelligence (ICTAI 2004), 2004, 784-786 [Witten 1999] Witten, I.H., Frank, E.: Data Mining: Practical Machine Learning Tools and Techniques with Java Implementations. Morgan Kaufmann Publishers. San Diego, CA (1999)

50

Anexo A
GENERADOR DE BASES DE DATOS SINTTICAS

A.1 Implementacin del generador de bases de datos sintticas

Con la finalidad de validar el algoritmo K-means implementado, fue necesario saber con antelacin la agrupacin ptima para poder comparar el agrupamiento generado por dicho algoritmo. Para esto se desarroll un mdulo generador de bases de datos sintticas. Cabe hacer notar que en la literatura especializada no se menciona este tipo de herramientas.

La base de datos sinttica que se produce, tiene la propiedad de simetra entre los elementos de un grupo con respecto a los hiperplanos que cortan el centroide de cada grupo. Debido a que uno de los datos de entrada es el conjunto de centroides, es posible obtener los agrupamientos ptimos. En la Tabla A.1 y Tabla 2.1 se muestran las definiciones y notacin usada en el pseudocdigo.

51

Anexo A

Tabla A.1 Notacin y definiciones. d(Xij,


d

Ci)=

Funcin de error al cuadrado. La funcin es un ndice de similaridad que cuantifica la distancia entre un objeto Xij del conjunto de datos Xi y el centroide Ci del grupo k. Es el radio de un crculo imaginario dentro del cual estarn los objetos generados aleatoriamente para el k-simo grupo.

(x
l =1

ijl

- cil )2

rk

nk = (2 ) (mk) mk D

Con esta funcin se calcula el nmero de objetos. Es el nmero de objetos semilla. Es el nmero de dimensiones para todos los objetos.

Na

Es un nmero real generado aleatoriamente dentro del intervalo [0,1].

si

Es la cardinalidad del grupo Wk. Los parmetros de entrada para el generador de bases de datos sintticas

son: k, Ck, rk, mk, d. Los parmetros de salida para el generador de bases de datos sintticas son: la base de datos X, el conjunto de grupos W y la suma del error al cuadrado de cada grupo Wk. A.2 Algoritmo del generador de casos

Paso 1. Genera mk objetos semilla. En este paso se generan de forma aleatoria mk objetos dentro de un cuadrado imaginario cuya esquina superior derecha es el objeto centroide Ck. Tomando en cuenta que el algoritmo K-means descubre figuras globulares, se agreg una condicin que elimina los objetos Xij cuya distancia con respecto al centroide Ck se encuentra fuera del radio rk. Este

52

Anexo A

procedimiento se encuentra entre las lneas 1 a la 13 del pseudocdigo de la Figura A.1.


ALGORITMO Generador( X, k, rk, mk, d, Ck ) ENTRADA k, rk, mk, d, Ck SALIDA X 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Fin Si; Fin Para; Wi Wi U { X }; Fin Para; Fin Para; Fin Para; Para ( i 1 hasta k ) hacer X X U Wi ; Fin Para; Regresa ( X ); Fin Si; Fin Para; Fin Para; Para ( i 1 hasta k ) hacer Para ( l 1 hasta d ) hacer Para ( j 1 hasta si ) hacer Para ( h 1 hasta d ) hacer Si ( h = l ) hacer xh ( cih - xijh ) + cih; De lo contrario hacer xh xijh; Para ( i 1 hasta k ) hacer Wi ; Para ( j 1 hasta mk) hacer Para (l 1 hasta d ) hacer xijl ( cil - ri ) + ( Na - ri ) ; Fin Para; Si (d( Xij, Ci ) <= r i ) hacer Wi Wi U { Xij }; De lo contrario hacer j j 1;
2

Figura A.1 Pseudocdigo del generador de bases de datos sintticas. 53

Anexo A

Paso 2. Genera k grupos con nk elementos. Con la finalidad de conocer la agrupacin ptima, este paso realiza una copia espejo en cada una de las dimensiones y finalmente integra los k grupos dentro de la base de datos X. Este procedimiento se encuentra entre las lneas 14 a la 31.

A.3 Generacin de datos sintticos con el generador de bases de datos.

En esta seccin se muestra el procedimiento para generar una base de datos sinttica con el generador implementado. Los valores de entrada se muestran en la Tabla A.2. En la primera columna se muestra el parmetro; y en la segunda columna, el valor del mismo.

Tabla A.2 Valores de entrada al generador de casos de pruebas. Parmetro k C1 C2 r1 r2 m1 m2


d

Valor 2 (-4, 2) (3, 2) 3 3 5 5 2

Paso 1. Genera mk objetos semilla. En este paso se generan m1 objetos dentro de un radio r1 . En la Figura A.2 se muestran grficamente los objetos generados. De la misma forma se generan m2 objetos.

54

Anexo A

Centroide

Puntos aleatorios 2,5 2 1,5 1 0,5 0 -0,5 -1


0

Figura A.2. Calculando el primer grupo. Paso 2. Genera k grupos con nk elementos. En este paso se copian los objetos para cada una de las dimensiones. En la Figura A.3 se muestra cmo el algoritmo genera una copia en la primera dimensin, y en la Figura A.4 se muestra cmo el algoritmo copia los objetos para la siguiente dimensin. Finalmente integra los grupos generados como se muestra en a Figura A.5.

Centroide

Puntos aleatorios

Copia en x 2,5 2 1,5 1 0,5 0

-6

-4

-2

-0,5 -1

Figura A.3 Se genera una copia espejo en una dimensin.

55

Anexo A

Centroide

Puntos aleatorios

Copia en x

Copia en y 6 5 4 3 2 1 0

-6

-4

-2

-1 -2

Figura A.4 Copia los objetos para la segunda dimensin.

Centroide 1

Grupo1

Centroide 2 6 5 4 3 2 1 0

Grupo 2

-8

-6

-4

-2

-1 -2

Figura A.5 Grupos sintticos generados.

56

También podría gustarte