UN MODELO GENÉTICO PARA MINERÍA DE DATOS Por: Ana
Transcripción
UN MODELO GENÉTICO PARA MINERÍA DE DATOS Por: Ana
UN MODELO GENÉTICO PARA MINERÍA DE DATOS Por: Ana Clara Vélez Torres Director: Prof. Jesús Antonio Hernández R. Tesis de Grado UNIVERSIDAD NACIONAL DE COLOMBIA FACULTAD DE MINAS MAESTRÍA INGENIERÍA DE SISTEMAS 2001 0 Tabla de Contenido Página 1. Estado del Arte en Minería de Datos 6 2. Marco Teórico 14 2.1. Definición de KDD 14 2.2. El Proceso de KDD 15 2.3. Arquitectura Típica del KDD 18 2.4. Minería de Datos 19 2.4.1. Definiciones de Minería de Datos (MD) 19 2.4.2. Tareas de la Minería de Datos 20 2.5. Análisis de Datos 22 2.6. La Técnica de Agrupamiento 24 2.6.1. Fundamentación 24 2.6.2. Métodos de Agrupamiento 28 2.6.2.1. Métodos de Particionamiento (k- clustering) 30 2.6.2.2. Métodos de Agrupamiento Jerárquico 37 2.6.2.3. Métodos de Agrupamiento basados en Densidades 46 2.6.2.4. Métodos basados en Grid 54 2.7. 61 Algoritmos Genéticos 2.7.1. Fundamentación 61 2.7.2. Implementación de un AG 64 2.7.2.1. Codificación 64 2.7.2.2. Función de Aptitud 65 2.7.2.3. Selección 66 2.7.2.4. Operadores Genéticos 69 2.7.2.5. Parámetros para los AG 70 2.7.3. Problemas que pueden presentarse con los Algoritmos Genéticos tradicionales 71 2.7. 4. Comparación de los Algoritmos Genéticos con otras técnicas de Optimización 73 1 2.7. 5. Paralelismo de los Algoritmos Genéticos 74 3. Método Propuesto de Agrupamiento con Algoritmos Genéticos 77 3.1. Justificación 77 3.2. Descripción del Método 78 3.3. Análisis de la Complejidad del Algoritmo 84 3.4 Prueba del Algoritmo con la base de datos de Votación 84 3.5 Prueba del algoritmo genético con la base de datos IRIS 89 Conclusiones Trabajos Futuros Glosario de Términos Bibliografía Anexos 2 Un Modelo Genético para Minería de Datos Resumen Minería de Datos (Data Mining) y Descubrimiento de Conocimiento en Bases de Datos (Knowledge Discovery in Databases, KDD) son áreas de común interés para los investigadores de varios campos, tales como: bases de datos, aprendizaje automático, programación lógica inductiva, inteligencia artificial, estadística y visualización de información, entre otros. El rápido y continuo crecimiento de los datos disponibles ha creado la necesidad de la extracción del conocimiento desde las bases de datos. Respondiendo a esta necesidad, se han creado varias técnicas para el descubrimiento de conocimiento en áreas de las ciencias y de los negocios, y existen algunas aplicaciones exitosas. Una de las principales tareas de la Minería de Datos es el Agrupamiento, la cual consiste en particionar un conjunto de objetos en grupos, de tal forma que se maximice la similitud dentro de los grupos y se minimice la similitud entre dos grupos diferentes. En este trabajo se propone un método de Agrupamiento para Minería de Datos, empleando Algoritmos Genéticos. Se aporta conocimiento en los temas relacionados con la Minería de Datos y en especial en los métodos de Agrupamiento, pues el método propuesto puede aplicarse a cualquier clase de datos. Los resultados de este trabajo apoyan a las entidades del sector público y privado en la extracción de información adicional a partir de los datos que se encuentran almacenados en sus bases de datos, que podría ser empleada en la toma de decisiones y en el desarrollo organizacional. Palabras Claves: Agrupamiento (Clustering), Minería de Datos (Datamining), Descubrimiento de Conocimiento en Bases de Datos (KDD), Algoritmos Genéticos. 3 A Genetic Model for Data Mining Abstract Data Mining and Knowledge Discovery in Databases (KDD) are areas of common interest for the investigators of several fields, such as: databases, automatic learning, inductive logical programming, artificial intelligence, statistical and visualization of information, among others. The rapid and continuous growth of the data available, have created the necessity of the extraction of the knowledge from the databases. Responding to this necessity, several techniques for the discovery of knowledge in any areas of sciences and the businesses have been created, and exist some successful applications. One of the main tasks of the Mining of Data is the Clustering, that consists in to break a object set into k clusters in away that maximizes the similarity within clusters and minimizes the similarity between two different clusters. In this work we propose a method of Clustering for dataminig using Genetic Algorithms. Contribute knowledge in the fields related with the dataminig in special in the methods of Clustering. The results of this work support to the organizations of the public and private sector in the extraction of additional information from the data that are stored in their databases, which could be used in the decision making and the organizational development. Key Words: Clustering, Data mining, Knowledge Discovery in Databases(KDD), Genetic Algorithms. 4 1. Estado del Arte en Minería de Datos En la actualidad, debido a la gran cantidad de información que se posee en las organizaciones, se hace necesario desarrollar y adaptar métodos eficientes para extraer conocimiento desde las bases de datos. Más aún, cuando se reconoce que existen en los datos un valor oculto, describible y explotable, que se podría utilizar para mejorar los procesos en dichas organizaciones. Históricamente al concepto de encontrar patrones útiles (o "nuggets" del conocimiento) desde los datos, se le ha dado varios nombres, incluyendo el descubrimiento de conocimiento en bases de datos, minería de datos, extracción del conocimiento, descubrimiento de información, cosecha de información, arqueología de datos y procesamiento de patrones. El término Descubrimiento de Conocimiento en Bases de Datos o KDD, fue acuñado en 1989 para referirse al amplio proceso de encontrar conocimiento en los datos. El término Minería de Datos ha sido comúnmente usado por la comunidad estadística, los analistas de datos y por la comunidad de los MIS (Sistemas de Información Gerencial), mientras que el término KDD ha sido más usado por los investigadores en el área del Aprendizaje Automático. En los últimos años se adoptó que KDD se refiere a todo el proceso del descubrimiento de conocimiento útil desde los datos, mientras que Minería de Datos se refiere a la aplicación de algoritmos para extraer patrones desde los datos, como un paso dentro del proceso del KDD. KDD ha sido de interés para los investigadores en aprendizaje automático, reconocimiento de patrones, bases de datos, estadística, adquisición del conocimiento para la creación de sistemas expertos, entre otros. 5 Los primeros trabajos relacionados con el Descubrimiento de Conocimiento en Bases de Datos (KDD) se presentaron en Detroit en 1989[PS91]. Luego se hicieron algunos trabajos sobre predicción a partir de bases de datos en 1991, 1993 y 1994. En 1995 se llevó a cabo la Primera Conferencia sobre Descubrimiento de Conocimiento (KDD) y Minería de Datos [FU95]. Entre las publicaciones iniciales en esta área se encuentran: [IO91, PS92, PC93, CT93, PS94, PS95]. Uno de los grupos de investigación más importantes del KDD se encuentra conformado por Usama Fayyad, Gregory Piatetsky-Shapiro, Padharic Smyth y Ramasamy Uthurusamy quienes han realizado grandes aportes en esta área [FP96a, FPM91, PBK96, PS91, PS92]. El KDD es el resultado de un proceso de investigación y desarrollo de tecnologías. La evolución comienza en la década de 1960, cuando los datos en los negocios fueron primero almacenados en computadores, continuando en 1980 con herramientas como las bases de datos relacionales (RDBMS) y los lenguajes de consulta estructurados (SQL), que facilitaban acceder a los datos y más recientemente la generación de tecnologías que permiten al usuario navegar a través de sus datos en tiempo real. El KDD va más allá del acceso de datos y la navegación retrospectiva, para descubrir información en forma prospectiva y proactiva. El KDD puede ser aplicado en la actualidad debido a que existen tres elementos que ahora se encuentran lo suficientemente maduros, como son: herramientas que permiten la colección masiva de datos, computadores potentes con multiprocesadores y algoritmos para el KDD. Diversas herramientas y sistemas para descubrimiento de conocimiento se encuentran disponibles en la literatura. Algunas de ellas ofrecen soporte únicamente en la etapa de descubrimiento de patrones del proceso de KDD y requieren de un pre y un post procesamiento para los datos. Otras herramientas dan soporte a diferentes etapas del 6 descubrimiento y otras ofrecen una variedad de tareas, combinando como por ejemplo, clasificación, visualización y agrupamiento [PBK96]. Dentro de KDD existen varias herramientas tanto comerciales como académicas, entre las que se pueden mencionar: Darwin (Thinking Machines Corp) - www.think.com contiene las siguientes componentes: - StarTree: Construye árboles de decisión usando el criterio CART. - StarNet: Entrena una red neuronal feed-forward. El usuario especifica el número de capas y las neuronas por capa. La regla de entrenamiento puede ser: Backpropagation, modified Newton, steepest descent y conjugate gradient. - StarMatch: Encuentra los ejemplos prototípicos usando razonamiento basado en casos o instancias usando la medida de los vecinos más cercanos (k-nearest neighbours). La distancia es euclidiana y los pesos los puede asignar el usuario. - StarGene: Usa algoritmos genéticos para optimizar los parámetros asociados con otras técnicas (número de capas ocultas, pesos de los parámetros en StarMatch, etc.). - StarView: Diversas herramientas de visualización de datos. - StarData: Herramientas para manipular bases de datos. Sirve de interfaz entre Darwin y manejadores comerciales de bases de datos y deja una base de datos en un formato entendible por todas las herramientas de Darwin. MineSet 3.0 (Silicon Graphics) - www.sgi.com/software/mineset - Algoritmos para la Minería de Datos: como árboles de decisión, reglas de asociación, agrupamiento y el método de Naive Bayes el cual determina la probabilidad de un evento basado en un atributo dado. - Herramientas de Visualización: las cuales permiten visualización de mapas, árboles, reglas, scatter-plots. Clementine - ISL/SPSS (Intelligenza, S.A.) - www.isl.co.uk/www.spss.com Posee menús para la selección de: 7 - Datos: Ascii o tablas de bases de datos tomadas de Oracle, Ingres, Sybase, Informix, etc. - Registros: Selecciona, mezcla, muestrea y balancea. - Campos: Filtra, deriva nuevos campos, selecciona por tipo, llena información faltante. - Gráficas: Permite realizar gráficas como histogramas, grafos, etc. - Algoritmos de Minería de Datos: Redes Neuronales, Árboles de Decisión (C4.5) y generación de reglas. - Salidas: Tablas, análisis, matrices, estadísticas. DBMiner(Simon Fraser University, Canada) Es un sistema de KDD para la extracción interactiva de conocimiento en múltiples niveles de abstracción en grandes bases de datos relacionales [HF96, FU96]. La arquitectura de DBMiner consta de una interfaz gráfica de usuario (GUI), un motor del sistema y un módulo de comunicación de datos. El motor, que es el núcleo del sistema, contiene módulos para el análisis de consultas, para la generalización y para el descubrimiento de patrones. El módulo de comunicación maneja la transmisión de datos entre el motor y el servidor. Herramientas: - Caracterizador: Encuentra relaciones generales entre datos. - Discriminador: Encuentra reglas que distinguen clases. - Clasificador: Construye modelos de clases basados en reglas. - Reglas de Asociación: Del tipo X ⇒ Y , en donde X y Y son conjuntos. - Meta-reglas: Usa formato de lógica de segundo orden para buscar relaciones en los datos. - Predictor: Predice valores faltantes basándose en información relacionada. - Evaluador de evolución de datos: Encuentra tendencias en los datos. - Evaluador de desviaciones: Encuentra desviaciones de tendencias en los datos. 8 También utiliza Data- Cube (Una generalización de consultas en SQL) DataMine(Rutgers University) Encuentra reglas de asociación con medidas de soporte (cuantos ejemplos la satisfacen) y confianza (relación entre cuantos ejemplos satisfacen la reglas y cuantos sólo satisfacen la parte izquierda de la regla). Su objetivo es ofrecer a los desarrolladores de aplicaciones de KDD las ventajas que ofrecen SQL y las API's (Application Programming Interface) relacionales [IV96]. DataMine soporta M-SQL una extensión de SQL, por medio del operador MINE el cual genera y recupera conjuntos de reglas a partir de la base de datos dentro de una arquitectura, que de acuerdo con los autores, está débilmente acoplada al manejador de la base de datos. Quest Es un sistema de soporte en la toma de decisiones [AM96a] que ofrece algoritmos para el descubrimiento de reglas de asociación y clasificación, patrones secuenciales, patrones en series de tiempo y descubrimiento activo e incremental en grandes bases de datos. Los algoritmos que Quest utiliza se caracterizan por descubrir y verificar la existencia de patrones de asociación en grandes bases de datos, por identificar todos los patrones existentes y ocultos de cierto tipo y por ser eficientes y escalables en grandes bases de datos (varios gigabytes). Este tipo de herramienta requiere de un potente soporte físico (procesamiento en paralelo) para realizar el descubrimiento. Intelligent Miner for Data - www.software.ibm.com/data/iminer/fordata Es una herramienta propuesta por IBM [CH97] que ofrece una variedad de técnicas para realizar el descubrimiento, soporta grandes volúmenes de datos y ofrece al usuario una interfaz para programación de aplicaciones, pero no trabaja sobre ningún manejador de bases de datos relacional. Entre las técnicas que 9 maneja se tienen: reglas de asociación, agrupamiento, análisis de secuencias de tiempos, clasificación (árboles de decisión y redes neuronales), predicción (RBF y redes neuronales) y de visualización estadística. DBLearn En esta herramienta [HC92] se integra un paradigma de aprendizaje automático, a partir de ejemplos, con operaciones de bases de datos, bajo un modelo de inducción orientada por atributos. El método reúne el conjunto de datos de interés en una relación inicial, aplica generalización basada en jerarquías conceptuales, atributo por atributo, para construir una relación generalizada, extrae reglas generalizadas y descubre regularidades a alto nivel. DBLearn utiliza SQL en la tarea inicial para extraer los datos relevantes de la base de datos. En éste sentido está débilmente acoplado a un manejador de bases de datos relacional. Una vez se ha encontrado el conjunto de datos objetivo, se lleva a cabo un proceso de generalización orientado por atributos con base en una jerarquía de conceptos de cada atributo. Finalmente, se extraen las reglas a partir de la generalización. La mayoría de las herramientas existentes de KDD tienen un conjunto predefinido de algoritmos para realizar el proceso de descubrimiento, siendo esto una desventaja, ya que no existe un método o un conjunto de métodos que sirvan para todas las tareas, por lo que a veces es necesario probar para una determinada tarea, varios métodos. Por éste motivo, una de las líneas de investigación actual, consiste en crear Sistemas Extensibles. En donde Extensible significa que se puedan incluir nuevas herramientas sin exceso de programación. En la tabla 1 se encuentran algunas empresas que ofrecen soluciones comerciales a la Minería de Datos [TC97]. En general, se han desarrollado numerosas aplicaciones en las áreas de: Finanzas, Telecomunicaciones, Ingeniería, Medicina, Farmacología, Ciencias Ambientales, 10 Biología Molecular, Química, Física, análisis de riesgos, segmentación de consumidores de un producto, clasificación de consumidores, detección de fraudes, pronósticos de ventas, control de la producción, desempeño de redes en telecomunicaciones, reconocimiento de patrones en textos, diagnóstico de enfermedades, etc. Para el soporte a la toma de decisiones se han desarrollado aplicaciones para el análisis de la canasta de mercados, en donde el proceso consiste en examinar las ventas para identificar afinidades entre productos y los servicios de compra ofrecidos a un consumidor. Después del análisis se puede examinar en cuánto incrementaron las ventas de un determinado producto, dado que las ventas de otros disminuyeron. Los resultados obtenidos en el análisis de mercados, se pueden utilizar en la planeación y organización del negocio, en operaciones de manufactura y distribución, lanzamiento de promociones, entre otros. Tabla 1. Algunas Empresas que ofrecen soluciones al KDD Compañía Producto Tareas Dirección Angoss Knowledge SEEKER Clasificación www.angoss.com Visualización Business Business Miner Objects Clasificación www.businessobjects.com Agrupamiento Visualización DataMind DataMind Proffesional Clasificación Edition Data Cruncher Visualización HNC Database Mining Análisis, Agrupamiento Software Marksman Clasificación www.datamindcorp.com/ http://www.hnc.com/ Visualización SAS Enterprise Miner Agrupamiento www.sas.com Árboles de decisión, Regresión Redes Neuronales 11 En el área bancaria y de tarjetas de crédito: • Detección de fraudes: Encontrar los patrones y tendencias de compra para detectar comportamientos fraudulentos en el momento de compras con tarjetas de crédito. • Análisis de morosidad o incumplimiento de pagos en los créditos: Identificar los patrones específicos para predecir cuándo y por qué los clientes no cumplen sus pagos. • Segmentación del mercado: Segmentar correctamente a los clientes en grupos con motivos promocionales o de evaluación. En el área de telecomunicaciones: • Control de fuga de clientes: Predecir qué clientes probablemente cambien a otro proveedor en el futuro, basado en el uso y el perfil de clientes que ya se han cambiado. De esta manera se pueden realizar esfuerzos de mercadeo para mantener estos clientes. • Control de redes: Identificar patrones de usos que permitan predecir usos futuros y determinen configuraciones óptimas de las redes. • Detección de fraudes: Descubre los patrones asociados con comportamientos fraudulentos pasados para así identificar las razones de los fraudes presentes y futuros. • Ventas cruzadas: Predecir qué clientes se pueden suscribir a productos y servicios (internet, video, larga distancia) basados en el uso y perfiles de clientes que ya utilizan estos servicios. En el ámbito nacional, en la universidad del Valle se han realizado varios trabajos, entre ellos “El Descubrimiento de Conocimiento en Bases de Datos Médicas”, en el cual se utilizó la técnica de rough sets, que consiste en una teoría matemática para descubrir patrones de comportamiento a partir de una base de datos[BS98]. También 12 en la misma institución se desarrolló una arquitectura relacional para el descubrimiento de conocimiento en bases de datos voluminosas [MM98]. 2. Marco Teórico 2.1. Definición de KDD El descubrimiento de conocimiento en bases de datos (KDD - Knowledge Discovery in Databases) se define formalmente como: "el proceso no trivial de identificar patrones en una forma válida, novedosa, potencialmente útiles y comprensibles a partir de los datos" [FP96a]. Los datos son un conjunto de hechos (registros en una base de datos) y los patrones son expresiones que describen un subconjunto de datos o un modelo aplicable a éstos. El término proceso implica varias etapas, las cuales involucran la preparación de los datos, la búsqueda de patrones (data mining) y la evaluación de los patrones descubiertos. El proceso es no trivial puesto que involucra la búsqueda de estructuras, modelos y parámetros. Los patrones se caracterizan por ser válidos, en el sentido de que éstos posiblemente se deben aplicar a nuevos datos con algún grado de certeza, novedosos, ya que de ellos se obtiene un conocimiento nuevo tanto para el sistema como para el usuario, potencialmente útiles, produciendo algún beneficio para el usuario, o para los procesos que se estén realizando y comprensibles, lo que implica en algunos casos, realizar algún tipo de postprocesamiento. Por último, es necesario combinar estas características para tratar de evaluar qué tan interesantes son los patrones descubiertos. Aunque existen muchos enfoques sobre KDD, existen seis elementos comunes y esenciales que califican al descubrimiento del conocimiento como una sola técnica. Las siguientes son las características básicas que comparten dichos enfoques[FP96a]: Todos los enfoques tratan con grandes cantidades de datos. Se requiere eficiencia en el método empleado en el descubrimiento de conocimiento, debido al volumen de datos. La exactitud de los resultados que se obtienen es un elemento esencial. Todos requieren el uso de un lenguaje de alto nivel. 13 Todos los enfoques usan alguna forma de aprendizaje automatizado. Todos producen algunos resultados interesantes. Se requiere de grandes cantidades de datos que proporcionen información suficiente para derivar un conocimiento adicional. La exactitud es necesaria, para asegurar que el descubrimiento sea válido con un grado de certeza. Los resultados deberán ser presentados en una forma entendible para el ser humano. Una de las premisas mayores del KDD, es que el conocimiento es descubierto usando técnicas de aprendizaje inteligente, que van examinando los datos a través de un proceso automatizado. 2.2. El Proceso de KDD El proceso de KDD es interactivo e iterativo, el cual involucra numerosos pasos y con muchas decisiones que deben ser tomadas por el usuario. El proceso comprende los siguientes pasos: [FP96b] Comprensión del dominio de la aplicación: en este paso se identifica: - El conocimiento relevante y prioritario, y se define el objetivo del proceso desde el punto de vista del usuario final. - Se define qué proceso se realiza en forma automática y qué parte hace el usuario. - Cuáles criterios de desempeño son importantes. - El producto final del proceso será usado para clasificación, visualización, exploración, compactación u otra cosa. - Establecer la importancia entre la precisión y la simplicidad del conocimiento extraído. En este paso se deben de tener en cuenta: el diccionario de datos, información de las estructuras de los datos, restricciones entre campos, metas o preferencias del usuario, campos relevantes, listas de clases, jerarquías de generalización, 14 modelos causales o funcionales, etc. El objetivo del conocimiento del dominio es orientar y ayudar en la búsqueda de patrones interesantes. Se tiene que hacer un balance entre eficiencia y completitud del conocimiento. Creación del conjunto de datos objetivo: consiste en la selección del conjunto de datos, o del subconjunto de variables o muestra de datos, sobre los cuales se va a realizar el descubrimiento. También se debe definir la estrategia del muestreo, tamaño de la muestra, etc. Los tipos de datos seleccionados pueden ser organizados en tablas. Bajo ciertas condiciones y para ciertas operaciones de la Minería de Datos, tales como la creación de un modelo de clasificación, o de regresión, se puede utilizar solamente una muestra de datos, ya que un muestreo resulta menos costoso que un censo. Se deben especificar qué tablas, campos y registros acceder. Se deben poseer mecanismos de selección aleatoria de registros, tomando muestras estadísticamente significativas. Se pueden usar predicados para seleccionar un subconjunto de los registros que comparten cierta característica, etc. Algunas técnicas para enfocar la atención en un subconjunto de datos incluyen: - Agregación: une valores. Por ejemplo, los más bajos con los más altos. - Partición de datos: con base en los valores de los atributos, se pueden filtrar o clasificar. Por ejemplo, sólo aquellos datos que tengan ciertos valores. - Proyección: consiste en seleccionar un subconjunto de los atributos. Limpieza y Preprocesamiento de los datos: se compone de operaciones tales como: recolección de la información necesaria sobre la cual se va a realizar el proceso, decidir las estrategias sobre la forma en que se van a manejar los campos de los datos nulos, estimación de la antigüedad de la información y sus posibles cambios, remoción de valores errados en atributos, entre otras. 15 Reducción de dimensiones y Proyección de los datos: en este paso se buscan las características más significativas para representar los datos, dependiendo del objetivo del proceso con el fin de reducir la dimensionalidad de los datos. En este paso se pueden utilizar métodos de transformación para reducir el número efectivo de variables a ser consideradas o para encontrar otras representaciones invariantes de los datos. Escogencia de la tarea de Minería de Datos: dependiendo del objetivo del proceso de KDD, del tipo de conocimiento que se desea obtener y del nivel de detalle, se decide qué tarea se debe enfrentar. Escogencia del algoritmo(s) de Minería de Datos: selección del método(s) a ser utilizado para buscar los patrones en los datos. Incluye además la decisión sobre cuáles modelos y parámetros pueden ser los más apropiados. Por ejemplo, los modelos para datos categóricos son diferentes a los modelos que utilizan vectores sobre valores reales. Definición Problema Selección de Datos Limpieza y Preprocesamto. de Datos Reducción y Proyección Minería Datos Interpretación, Validación y Consolidación Datos Resultados Figura 1. Proceso del KDD Minería de Datos: consiste en la consecución de los patrones de interés en una determinada forma de representación o sobre un conjunto de representaciones, 16 utilizando para ello métodos de clasificación, reglas o árboles, regresión, agrupación, etc. Interpretación de los patrones minados: un patrón de datos es interesante en la medida en que sea confiable, novedoso y útil con respecto al conocimiento y los objetivos del usuario. La evaluación, normalmente se le deja a los algoritmos de extracción de patrones que generalmente están basados en la significancia estadística. Consolidación del conocimiento descubierto: consiste en la incorporación de este conocimiento al desempeño de la organización o del sistema, o simplemente de documentación y reporte a las partes interesadas. El proceso de KDD puede involucrar varias iteraciones y puede contener ciclos entre dos de cualquiera de los pasos. La mayoría de los trabajos que se han realizado sobre KDD se centran en el paso de la Minería de Datos. Sin embargo, los otros pasos se consideran importantes para el éxito del KDD. Ver Figura 1. 2.3. Arquitectura Típica del KDD Una arquitectura típica de KDD, como se muestra en la figura 2, por lo general se compone de: Herramientas Minería Datos Herramientas Visualización Herramientas OLAP Depósitos de Datos 17 Figura 2. Arquitectura del KDD - Un conjunto de bases de datos o de un data warehouse, de donde se extraen los datos para la tarea de Minería de Datos. - Vistas de Datos Multidimensionales para el procesamiento analítico en línea (OLAP). - Herramientas para la tarea de Minería de Datos. - Interfaces gráficas para la construcción del data warehouse, la creación de bases de datos multidimensionales, la selección del conjunto de datos para la tarea de Minería y para la visualización y análisis de los resultados. 2.4. Minería de Datos 2.4.1. Definiciones de Minería de Datos (MD) "MD es el proceso de descubrimiento significativo de nuevas correlaciones, patrones y tendencias de grandes cantidades de datos almacenados en repositorios, utilizando tecnologías de reconocimiento de patrones, así como también técnicas estadísticas y matemáticas" (Gartner Group)[M99]. "MD es la exploración y análisis, a través de medios automáticos y semiautomáticos, de grandes cantidades de datos con el fin de descubrir patrones y reglas significativos". (M.J.A. Berry, G. Linoff)[M99]. "MD es la combinación de métodos poderosos que ayudan a la reducción de costos y riesgos, así como también al incremento de las rentas por la extracción de la información estratégica desde los datos disponibles" (T. Fahmy)[M99]. En muchas aplicaciones, los sistemas son diseñados sobre una interacción entre ellas. Basados en la sinergia entre las tecnologías, se han encontrado en el área de la Inteligencia Computacional (IC), varias categorías importantes como son: los Sistemas Neurofuzzy, las Redes Neuronales Evolucionarias, la Computación Granular (conjuntos difusos y rugosos), etc [HP99, PW97]. 18 2.4.2. Tareas de la Minería de Datos Los dos principales objetivos a alto nivel, de la Minería de Datos, en la práctica son: la Predicción y la Descripción [FP96c]. La Predicción consiste en utilizar alguna información histórica para predecir valores futuros o desconocidos de otras variables de interés. La Descripción se centra en encontrar patrones interpretables por el ser humano, a partir de los datos. Los objetivos de la Predicción y de la Descripción son alcanzados con el uso de algunas de las siguientes técnicas: Clasificación: Esta tarea también es conocida como aprendizaje supervisado, debido a que es necesario definir previamente un conjunto de clases a las cuales pertenecen los objetos de la base de datos. Las descripciones de estas clases pueden ser encontradas después. La tarea de clasificación involucra la inducción de un modelo desde los datos, que puede ser aplicado para caracterizar nuevos datos. Sin embargo, para la minería de datos, no se necesita crear una clasificación completa, que cubra cada una de las instancias de la base de datos. Puede ser suficiente extraer algún conocimiento que pueda ser usado para describir con precisión alguna parte de la base de datos. En algunos casos también puede resultar interesante aplicar un patrón en específico a una clase en particular. La Clasificación se define como la habilidad para adquirir una función que haga corresponder (mapea o clasifica) un elemento de dato a una de las varias clases predefinidas. En los ejemplos de métodos de Clasificación usados como parte de las aplicaciones de KDD se encuentran, la clasificación de tendencias en los mercados financieros [AH96] y la identificación automática de objetos de interés en grandes bases de datos de imágenes. Existe una gran variedad de técnicas las cuales pueden ser usadas para llevar a cabo esta tarea, entre ellas se encuentran: - Redes Neuronales Artificiales - Inducción de reglas 19 - Árboles de Inducción - Técnicas heurísticas - Técnicas estadísticas. Estas técnicas se usan para extraer reglas simples desde una base de datos, las cuales pueden ser aplicables a un gran porcentaje de los registros en dicha base de datos, con una buena precisión. Agrupamiento (Clustering): Es el proceso de particionar un conjunto de datos en un conjunto de subconjuntos significativos llamamadas grupos (clusters). Un grupo es una colección de objetos con características similares. La técnica de agrupamiento se conoce también como aprendizaje no supervisado. Se emplea en el reconocimiento de patrones, en el descubrimiento de perfiles de clientes, en el procesamiento de imágenes para la identificación de objetos, clasificación de documentos, entre otros. Regresión: Consiste en conseguir una función que haga corresponder un elemento de dato a una variable de predicción de valor real. Existen muchas aplicaciones, como por ejemplo, predecir la cantidad de biomasa presente en un bosque dado, sensado en forma remota por vía microondas, estimar la probabilidad de que un paciente no muera, dados los resultados de un conjunto de pruebas de diagnósticos, predecir la demanda de un consumidor por un nuevo producto como una función del gasto publicitario. Compactación: Consiste en encontrar un método que permita obtener una descripción compacta de un subconjunto de datos. Los métodos más sofisticados involucran la derivación de reglas de compactación [AM96], técnicas de visualización multivariada y descubrimiento de relaciones funcionales entre las variables [ZZ93]. Estas técnicas son a menudo aplicadas en el análisis de datos en forma interactiva y en la generación de reportes automáticos. Una de las técnicas de éste tipo son las reglas de asociación. 20 Modelamiento de Dependencias: Consiste en encontrar un modelo el cual describa las dependencias significantes entre las variables. Los modelos de dependencia existen a dos niveles: A nivel estructural del modelo especifica, a menudo en forma gráfica, cuáles variables son localmente dependientes sobre cada una de las otras, mientras que a nivel cuantitativo especifica la robustez de las dependencias, usando una escala numérica. Por ejemplo, las redes de dependencia probabilística usan una independencia condicional para especificar el aspecto estructural del modelo y probabilidades y correlaciones para especificar la solidez de las dependencias[HD96,GS87]. Las redes de dependencia probabilística se encuentran en aplicaciones, tales como: los sistemas expertos probabilísticos para bases de datos médicas, recuperación de información y en el modelamiento de los fenómenos humanos. Los Sistemas Difusos pueden ser empleados en esta tarea. Detección de cambios y desviaciones: se centran en el descubrimiento de los cambios más significantes en los datos, con respecto a los valores pasados o normales. Se utiliza para filtrar grandes volúmenes de datos que son menos probables de ser interesantes. El problema está en determinar cuándo una desviación es significativa para ser de interés. Para llevar a cabo esta tarea se pueden emplear los conjuntos rugosos. 2.5. Análisis de Datos La mayoría de los sistemas de KDD reportados en la literatura han sido motivados por una o más técnicas de minería de datos, en donde el analista de datos se encuentra involucrado en todo el proceso. El analista de datos, a muy alto nivel, de acuerdo a un objetivo, consulta una base de datos para extraer los datos relevantes. Luego analiza los datos utilizando herramientas para dicho análisis y/o para la visualización. Este análisis conlleva a que el analista se forme una idea sobre las características de los datos. El analista luego utiliza herramientas de presentación para mostrar los resultados al usuario final. 21 Por ejemplo, el objetivo de una empresa consiste en determinar "¿Cuáles son los factores que conducen al éxito en una promoción en el Día del Padre?. En respuesta a este objetivo, el analista extraerá datos como: volumen de las ventas de los productos vendidos en una determinada semana anterior a la promoción y a la semana de la promoción del Día del Padre, características de los productos, tales como, categoría, marca, manufactura, etc. y las características de la promoción en si, tales como, descuento en el precio, cantidad en almacén, cantidad de avisos soportados en los medios como el periódico y la televisión. El analista puede entonces emprender un análisis formal, definiendo primero la medida que deberá ser usada para cuantificar el logro del obtener una promoción exitosa, como por ejemplo: "el incremento en el porcentaje de ventas". El analista puede luego decidir segmentar los productos con base en la medida del porcentaje de incremento en las ventas. Esto le permitirá investigar sobre las características de los productos con incremento relativamente alto en las ventas, para contrastar con los productos de ventas bajas. Visualizando los datos en cada uno de los segmentos, el analista podrá analizar qué productos fueron eventualmente distribuidos entre los segmentos y que características de los productos variaron significativamente dentro de cada segmento. Este análisis a su vez, podrá conducir a conjeturas relacionadas con algunas propiedades externas a los productos que contribuyeron al incremento en las ventas. Un análisis de la correlación entre algunos atributos en específico con el porcentaje en el incremento en las ventas podrían conducir al descubrimiento de que el descuento en el precio, la cantidad del producto en el almacén y la cantidad de anuncios fueron todos altos en los segmentos con alto porcentaje en el incremento en las ventas. 22 Con estos resultados, el analista puede decidir preparar un reporte que describa lo que se ha encontrado, utilizando herramientas de presentación tales como un procesador de palabras o un programa de presentación gráfica. En el reporte el analista puede incluir una tabla describiendo el análisis de la segmentación, un gráfico de líneas mostrando las relaciones entre el porcentaje de incremento en las ventas y características de la promoción y una descripción de lo que se encontró. Como se muestra en el ejemplo, el analista participa en tres tareas principales: - Selección del modelo y evaluación - Análisis de datos propiamente dicho - Generación de resultados. Las primeras dos tareas por lo general son cubiertas por métodos de análisis y visualización y soportadas por herramientas de consulta en bases de datos. La generación de resultados puede ser soportada por una variedad de herramientas de presentación y de transformación de los datos Como se mencionó antes, el analista tiene una hipótesis sobre los datos y utilizando una herramienta para el análisis de dichos datos, construye un modelo. En general, se pretende entender por qué ciertos grupos de entidades presentan cierto comportamiento, es decir, se debe determinar qué reglas gobiernan el comportamiento de un segmento seleccionado previamente de una población, como por ejemplo, "los productos que salieron a promoción en el Día del Padre". Se comienza entonces, por etiquetar la población de acuerdo a los objetivos definidos. 2.6. La Técnica de Agrupamiento 2.6.1. Fundamentación El método que se propone consiste en desarrollar una técnica de agrupamiento por medio de algoritmos genéticos. El agrupamiento (clustering), puede ser definido como el proceso de organizar un conjunto de objetos en grupos, o clusters, en donde 23 la similitud de los objetos que se encuentran dentro de un mismo grupo es alta y la similitud entre grupos es baja. Los algoritmos de agrupamiento tienen dos componentes comunes: una función objetivo, la cual es utilizada para evaluar la calidad del agrupamiento y una estrategia de búsqueda utilizada para explorar el espacio de todos los posibles agrupamientos. Idealmente, la estrategia de búsqueda deberá construir grupos consistentes de alta calidad, pero que computacionalmente no resulten costosos. Por lo general, la función objetivo se ha definido en términos de medidas de distancia o de similitud entre los objetos del conjunto de datos, asignando a un mismo grupo aquellos elementos que se encuentren más cercanos. Sea el conjunto de objetos {X1 ,X2,..,Xn} de n elementos a ser agrupados. Cada Xi es un vector de atributos que describe las p características del objeto. Para realizar el agrupamiento, se han empleado varias medidas de distancia [EB93, JW92], siendo la más utilizada, la distancia Euclidiana: 1 d ( xi , xj ) = p 2 ∑ ( xil − xjl ) 2 l = 1 Esta medida de distancia es un caso especial de la distancia de Minkowski: 1 d ( xi , xj ) = p m m ∑ ( xil − xjl ) l = 1 Para el método que se propone se utiliza una medida de similitud, denominada el Coeficiente de Jaccard[JA88], definido de la siguiente manera: Si una base de datos consiste de un conjunto de tuplas, cada una de las cuales consiste de un conjunto de atributos, la similitud entre dos tuplas T1 y T2, es la siguiente: 24 sim( T1 ,T2 ) = T ∩T 1 2 T1 ∪ T2 En donde, |Ti |es el número de atributos en Ti. El valor de sim se encuentra entre 0 y 1. La ventaja de esta medida, diferente a las medidas de distancia como la euclidiana, es que ella puede ser utilizada en atributos no numéricos. La tarea de agrupamiento busca identificar categorías (clases) o conjuntos para describir los datos[JD88]. Las categorías pueden ser exhaustivas y mutuamente exclusivas, o consistir de una representación jerárquica, o permitir solapamientos. Esta técnica es usada para segmentar un conjunto de datos en subconjuntos, o clusters, en donde los miembros de cada subconjunto comparten un número de propiedades "interesantes". El resultado de una operación de agrupamiento, deberá cumplir una de las siguientes funciones: - Resumir el contenido del conjunto de datos considerando las características de cada subconjunto, en vez de cada uno de los registros de la base de datos. - Los subconjuntos pueden ser relevantes en sí, o pueden servir como entrada a otros métodos, tal como el de inducción supervisado. Un cluster es mucho más pequeño y más manejable que un conjunto de datos, para una técnica de aprendizaje inductivo supervisado. Un buen método de agrupamiento produce grupos de alta calidad en los cuales: - La similitud intra-clase (esto, dentro del grupo) es alta. - La similitud interclase (entre clases) es baja. - La calidad del método de agrupamiento también depende de la medida de similitud usada por el método y su implementación, de la habilidad para descubrir algunos a todos los patrones ocultos y de la definición y representación del grupo escogido. 25 A través de la historia y en las diferentes disciplinas, al proceso de agrupar objetos se le ha dado diferentes nombres, entre los cuales se tienen los siguientes: - Organización: es definido en [SG61] como el estudio científico de las clases y diversidad de organismos, y sus relaciones entre ellos. - Clasificación: definido en [SG61] como el ordenamiento de los organismos en grupos sobre la base de sus relaciones. La relación puede ser expresada en una medida tal como la distancia o similitud entre ellos. Esta definición menos biológica se ha considerado como la forma más general, al cambiar los términos "organismos" y "grupos", por los términos "objetos" y "conjuntos". - Taxonomía: es definida en [ME69] como la teoría y la práctica de la clasificación de los objetos, mientras que [SG61] la define como el estudio teórico de la clasificación. - Agrupamiento: es un tipo de clasificación impuesta sobre un conjunto finito de objetos [JD88, KE66]. Las técnicas de agrupamiento han sido usadas en varias disciplinas desde hace varias décadas. En psiquiatría, Pilowski, Levine y Boulton [PLB69] utilizaron agrupamiento para desarrollar una clasificación de la depresión. En investigación de mercados, Green, Frank y Robinson [GFR67] usaron un algoritmo de agrupamiento en la identificación de grupos de mercados. En reconocimiento de patrones, Levrat et al. [LVL92] aplicaron agrupamiento para segmentar una imagen y Funk et. al.[FA87] usaron el agrupamiento como un método de adquisición de conocimiento en un sistema experto para diagnóstico. Entre los principales algoritmos que se han desarrollado para agrupamiento se tienen los siguientes: • Isodata[BG65]: el cual comienza con escoger aleatoriamente la media de los vectores de características, para representar los centros de los clusters y asignando los objetos de datos a la clase que contenga la media más cercana a cada uno de ellos. Luego recalcula la media de los vectores de características con 26 los objetos contenidos en cada clase y se repite el proceso hasta que los vectores convergen. • Cluster/2 [MS83]: se basa en funciones de medida para encontrar: un valor de atributo común para una clase, valores de atributos que no se intersecten entre clases y la forma más simple de describir una clase. • Unimem [LM87]: construye un árbol de decisión basado en la medida de distancia Hamming, la cual se centra principalmente en encontrar la similitud entre clusters. La distancia Hamming es la misma métrica de Manhattan cuando todos los valores de características son considerados como binarios. • AutoClass[CHP88]: define las clases como una distribución probabilística sobre los atributos de los objetos. Un esquema paramétrico de AutoClass adopta un método de clasificación Bayesiana. • Cobweb[FD87] Utiliza una medida de utilidad categórica desarrollada por Gluck y Corter[GC85] para predecir el nivel de categorización preferido de un grupo de objetos. 2.6.2. Métodos de Agrupamiento Los métodos de agrupamiento pueden ser divididos en varias categorías, las cuales se pueden mostrar en la figura 3, de acuerdo a [WI71]. Exclusivo: En un proceso de agrupamiento, un punto de dato debe pertenecer solamente a un cluster específico. Si el punto de dato pertenece a dos clusters, el algoritmo tiene que determinar a cuál grupo deberá pertenecer. No-Exclusivo: Un punto de dato puede ser asignado a varios clusters, permitiendo un solapamiento de clusters. Intrínseco: Cuando los clusters son determinados usando solamente la información del dato. Los clusters resultantes están basados en las relaciones entre los atributos. Extrínseco: Usan el conjunto de datos y etiquetas de categorías sobre los puntos de datos para ejecutar un pre-agrupamiento. Por ejemplo, en un diagnóstico 27 para una enfermedad, se puede usar la información de los fumadores y de los no fumadores para encontrar una forma de discriminarlos. Agrupamiento No- Exclusivo Exclusivo Extrínseco Intrínseco Jerárquico Aglomerativo Monotético Divisivo Particional Serial Simultáneo Politético Figura 3. Métodos de Agrupamiento Jerárquico: El resultado de un agrupamiento jerárquico es una serie de clusters, que comienza con todos los puntos de datos en un solo cluster. Particional: Consiste en agrupar un conjunto de datos en un número de clusters dado. Divisivo/Aglomerativo: Describe la forma del agrupamiento jerárquico. El agrupamiento puede comenzar con cada punto perteneciendo a un cluster para luego unir dos clusters en uno nuevo en cada paso (aglomerativo) o, iniciar con el conjunto de datos en un cluster para luego dividirlo en cada paso en dos nuevos (divisivo). Monotético/Politético: Si el agrupamiento esta dado usando solamente un atributo de los objetos, es llamado monotético. El agrupamiento politético debe usar todos los atributos al mismo tiempo. En el agrupamiento jerárquico, un 28 agrupamiento monotético puede ser usado cambiando un atributo después de cada paso. Serial/Simultáneo: Un agrupamiento serial asigna un objeto después de otro, mientras que el agrupamiento simultáneo asigna todos los objetos al mismo tiempo. También, los métodos de Agrupamiento han sido clasificados en: - Algoritmos de particionamiento: se construyen varias particiones y luego se evalúan de acuerdo a algún criterio. - Algoritmos jerárquicos: Crean una descomposición jerárquica del conjunto de datos u objetos usando algún criterio. - Métodos basados en densidad: basados en funciones de conectividad y densidad. - Métodos basados en Grid: basados en estructuras de múltiples niveles de granularidad. - Métodos basados en modelos: Un modelo es definido para cada uno de los clusters con la idea de encontrar la mejor aptitud para cada uno de los modelos. 2.6.2.1. Métodos de Particionamiento (k- clustering) En general, los algoritmos de particionamiento toman como entrada un conjunto de objetos S y un entero k y dan como resultado una partición de S en k subconjuntos S1, S2, ..., Sk. A los algoritmos de particionamiento, también se les conoce como algoritmos de optimización. Ellos producen un único agrupamiento el cual optimiza un criterio predefinido o función objetivo. Típicamente asumen que los elementos de S están representados en un espacio métrico d-dimensional Rd, y definen una función de costo c : {X :X ⊆ S} → R+ la cual asocia un costo a cada uno de los clusters. El objetivo del algoritmo es minimizar la suma de los costos de los clusters, es decir: Min( k ∑ i =1 c ( Si ) ) 29 Los métodos de optimización comienzan con una partición inicial de los objetos en un número especificado de clusters. Luego los objetos son reasignados a los clusters de acuerdo a la función objetivo hasta que sea alcanzado algún criterio de terminación. Los métodos difieren con respecto a la forma de partición inicial, la función objetivo, el proceso de reasignación y el criterio de terminación. Los métodos pueden utilizar particiones iniciales aleatorias o pueden ser seleccionadas usando un método que intente abarcar todos los datos. El criterio de optimización más conocido es el de la suma de los cuadrados. Sea xir el r- ésimo de Si, Si el número de elementos en Si y d(xir , xis) la distancia entre xir y xis. El criterio de la suma de los cuadrados es entonces definido con la siguiente función de costo [GJ79]: Si Si c ( S i ) = ∑ ∑ ( d ( x ri , x si ))2 r =1 s =1 El algoritmo k-mean de MacQueen [MJ67], es un algoritmo de agrupamiento muy utilizado el cual se basa en el criterio de la suma de los cuadrados. Este algoritmo calcula el centroide de cada uno de los clusters Si, denotado por x̂ i. Técnicamente al algoritmo realiza la optimización usando la función de costo: Si i i c ( s i ) = ∑ d ( x̂ , x r ) r =1 con la cual se ha demostrado que se pueden obtener los mismos resultados que con la ecuación anterior. Los pasos del algoritmo para el método de k-mean son los siguientes: 1. Comenzar con una partición arbitraria en k clusters. 2. Tomar cada uno de los objetos en secuencia y asignarlo al cluster que reduzca más el criterio definido. 30 3. Calcular los nuevos centroides. 4. Repetir el paso 2 y 3 hasta que no se pueda reducir el valor del criterio. Debido a que muchos tipos de datos no pertenecen a espacios en los cuales la media puede ser definida, Kaufman y Rousseeuw [KR90], han desarrollado un algoritmo similar denominado PAM (Partitioning Around Medoids), el cual encuentra el elemento que representará a todos los elementos de cada uno de los clusters Si. El elemento seleccionado deberá minimizar: Si c(Si ) = ∑ d( x̂ i , xri ) r =1 Asumiendo que existen n objetos, PAM encuentra k clusters identificando primero un objeto representativo de cada uno de los clusters. Este objeto será el que se encuentre localizado en el punto más central del cluster, denominado medoide x̂ . Después de seleccionar los k medoides el algoritmo trata en forma iterativa de hacer una mejor escogencia de medoides, analizando todas las posibles parejas de objetos de tal forma que uno de ellos sea el medoide y los otros no. La medida de calidad del agrupamiento es calculada para cada una de estas combinaciones. Los puntos seleccionados como mejores en una iteración, serán los medoides para la próxima iteración. El costo de una iteración es de O(k*(n - k)2). Siendo computacionalmente ineficiente para valores grandes de n y k. Otro algoritmo propuesto también por Kaufman y Rousseeuw es el CLARA (Clustering Large Applications). Este método se diferencia del PAM en que solamente una porción de los datos reales es seleccionada como representativa del conjunto de datos y los medoides son seleccionados desde la muestra usando PAM. La idea es que si la muestra es seleccionada en una forma lo suficientemente aleatoria, se está representando en forma correcta el conjunto de datos. CLARA toma múltiples muestras y obtiene como resultado el mejor agrupamiento de dichas muestras. Por lo tanto, CLARA puede manejar grandes conjuntos de datos. La complejidad de cada iteración será entonces O(kS2 + k(n - k)), siendo S el tamaño de 31 la muestra. Los autores muestran a través de resultados experimentales que para muestras de tamaño 40 + 2k, se obtienen buenos resultados. En el PAM es más fácil que en CLARA, realizar la búsqueda del mejor k medoide. Supóngase que el objeto Oi es uno de los medoides en el conjunto de los mejores k medoides. Luego si durante el muestreo en el algoritmo CLARA, Oi no es seleccionado, entonces CLARA nunca encontrará el mejor agrupamiento. Por esta razón, Ng y Han [NH94] propusieron los algoritmos CLARANS, SD(CLARANS) y NSD(CLARANS). Mientras que CLARA toma una muestra fija en cada etapa de la búsqueda, CLARANS toma una muestra con alguna aleatoriedad en cada paso de la búsqueda. El proceso de agrupamiento puede ser presentado como la búsqueda en un grafo en donde cada nodo es una solución potencial, esto es, un conjunto de k medoides. El agrupamiento obtenido después de remplazar un medoide es denominado el vecino del agrupamiento actual. El número de vecinos ha ser probados aleatoriamente, está restringido por el parámetro max-vecinos. Si un mejor vecino es encontrado, CLARANS lo mueve al nodo de vecinos y el proceso comienza otra vez, de lo contrario, el agrupamiento actual produce un óptimo local. Si un óptimo local es encontrado, CLARANS comienza con un nodo seleccionado aleatoriamente, para buscar un nuevo óptimo local. El número de óptimos locales a ser buscados está también limitado por el parámetro numlocal. CLARANS ha sido experimentalmente mostrado ser más eficiente que el PAM y el CLARA. Los autores afirman que la complejidad computacional de cada iteración es básicamente proporcionalmente lineal al número de objetos. CLARANS también permite la detección de puntos que no pertenecen a ningún cluster. Basados en CLARANS se desarrollaron los algoritmos SD y NSD. Ambos algoritmos asumen que el usuario especifica el tipo de regla a ser minada y los datos relevantes. Algoritmo SD(CLARANS) (Spatial dominant approach): En este método la(s) componente(s) espacial(es) de los elementos de datos relevantes son coleccionadas y agrupadas usando CLARANS. Luego el algoritmo ejecuta una inducción orientada en los atributos sobre la descripción de los objetos no espaciales en cada uno de los clusters. Por ejemplo, se puede encontrar que en Vancouver las casas 32 costosas son agrupadas en tres clusters. Un cluster en donde existen principalmente los condominios costosos del centro de la ciudad, un segundo cluster con mansiones y casas sencillas localizadas en terrenos ribereños y un tercer cluster que consiste principalmente de casas sencillas. Algoritmo NSD(CLARANS) (No Spatial dominant approach): Primero aplica generalizaciones no espaciales. Una generalización orientada en los atributos es ejecutada sobre los atributos no espaciales para producir un número de tuplas generalizadas. Por ejemplo, las descripciones de las casas costosas pueden ser generalizadas a las casas sencillas, a las mansiones y a los condominios. Luego, para cada una de las tuplas generalizadas, todas las componentes espaciales son coleccionadas y agrupadas usando CLARANS para encontrar Knat clusters. En el último paso, los clusters obtenidos son evaluados para chequear si ellos se solapan con cluster que describen otros tipos de objetos. Si esto ocurre, los clusters son mezclados y las correspondientes descripciones no espaciales generalizadas de las tuplas son mezcladas también. Usualmente, SD(CLARANS) es más eficiente que NSD(CLARANS). Pero cuando la distribución de los puntos está principalmente determinada por sus atributos no espaciales, el NSD pueden tomar ventaja. CLARANS en Bases de Datos Espaciales: Ester et. al.[EK95] muestran algunas de las desventajas del algoritmo de CLARANS. Primero, se asume que los objetos a ser agrupados se encuentran todos almacenados en memoria principal. Esta suposición puede no ser válida para grandes bases de datos. Segundo, la eficiencia del algoritmo puede ser mejorada sustancialmente realizando algunas modificaciones al algoritmo. La primera desventaja puede ser solucionada al integrar CLARANS con un método eficiente de acceso espacial, tal como el árbol R*. En cuanto a la eficiencia del algoritmo, se ha mostrado que el paso más costoso del algoritmo es el cálculo de las distancias entre dos agrupamientos. Por esta razón los autores proponen dos formas de reducir el costo en este paso. 33 La primera, consiste en reducir el número de objetos a considerar. Esto se puede dar usando una muestra. Sin embargo, una mala muestra puede conducir a una baja calidad en el agrupamiento. Una consulta del centroide retornará el objeto más central de un nodo hoja del árbol R* en donde sus puntos vecinos se encuentran almacenados. Solamente estos objetos son usados para calcular el medoide del cluster. Por lo tanto, el número de objetos tomados en consideración es reducido. Esta técnica es denominada Enfoque sobre objetos representativos. La desventaja, es que pueden existir algunos objetos mejores que el medoide, que no han sido considerados. Por lo tanto, se debe asegurar que la muestra que se tome garantice una buena calidad en el agrupamiento. La otra técnica para reducir la complejidad computacional consiste en restringir el acceso a ciertos objetos que no contribuyen realmente a la computación. Para esto, los autores han sugerido dos aproximaciones: Enfoque en clusters relevantes y Enfoque sobre un cluster. Usando una estructura R* los autores proponen una forma de ejecutar el calculo solamente sobre parejas de objetos en lugar de todas las parejas, como se da en el algoritmo de CLARANS. Ester et. al. han aplicado el enfoque basado en objetos representativos a una gran base de datos de proteínas para encontrar la segmentación de las superficies de las proteínas. Ellos reportan que con esta técnica la efectividad decrementó de 1.5% a 3.2%, mientras que la eficiencia se incremento en un factor de 50, el cual fue el número de puntos almacenados en una página de disco. La medida de efectividad usada es la distancia promedio del agrupamiento resultante y la medida de eficiencia usada fue el tiempo de CPU. Otro criterio de optimización fue propuesto por González [GT85], en donde en vez de minimizar: ∑k i = 1 c ( Si ) 34 González minimiza el max 1≤ i≤ k c(Si), en donde c(Si) está dado por: c( Si ) = max d ( x ri , x si ) x ri x si ∈S i En cuanto a la forma de realizar la reasignación, por lo general se han definido dos tipos. En la primera, se toman cada uno de los objetos y los reasigna al cluster cuyo centroide sea el más cercano. La segunda, busca uno de los clusters más cercanos por medio del cual mejore el valor de la función objetivo. Aunque la mayoría de los métodos de optimización requieren del número de clusters en forma a priori, algunos procesos de reasignación han sido diseñados para permitir que el número de clusters cambie durante el proceso de agrupamiento [AM73]. Los algoritmos de optimización terminan cuando no existen más reasignaciones que reduzcan el valor del criterio. Esto ocurre cuando todos los objetos están en el cluster en donde los centroides se encuentren más cercanos a cada uno de ellos, o el agrupamiento actual es un mínimo local. Otra técnica de optimización utilizada es la de la escalda por la pendiente (hillclimbing), la cual comienza con un agrupamiento aleatorio y busca un vecino local el cual reduzca más el valor de la función objetivo, para el agrupamiento, si tal agrupamiento es encontrado, actualizar el actual y luego el algoritmo busca los vecinos para este agrupamiento, de lo contrario, el algoritmo termina. El éxito o fracaso de este algoritmo está determinado por la partición inicial dada para el agrupamiento y por la cantidad de óptimos locales que puedan presentarse para un agrupamiento en particular. Otro método de optimización que también ha sido utilizado para agrupamiento es el del temple simulado[KD89]. Entre las debilidades de estos métodos se han mostrado las siguientes: 35 - No se comportan adecuadamente frente a objetos que no se agrupan en forma natural en cualquiera de los clusters, o cuando se presentan objetos con valores por fuera de los rangos establecidos. - Para la mayoría de estos métodos se necesita definir previamente el número de clusters. - Ciertos criterios de agrupamiento están dirigidos a formas de agrupamiento particulares, lo que obliga a imponer estas formas a los datos. - El desempeño de las técnicas de optimización es altamente dependiente de las particiones iniciales. Como una de las ventajas que poseen, es que son relativamente eficientes O(tkn), en donde n es el número de objetos, k es el número de clusters y t el número de iteraciones. Por lo general, k y t << n. 2.6.2.2. Métodos de Agrupamiento Jerárquico El objetivo de un algoritmo de Agrupamiento Jerárquico es producir un árbol T(S) (siendo S el conjunto de entrada), en el cual los nodos representan subconjuntos de S. En particular el mismo S es la raíz del árbol, las hojas comprenden los objetos de datos en forma individual, y los nodos internos son la unión de sus hijos. Este árbol puede ser desplegado como un diagrama conocido como un dendograma (figura 4). Existen dos tipos de algoritmos de agrupamiento jerárquico. En los algoritmos Divisivos, un cluster inicial que contiene todos los elementos de S es dividido en forma recursiva en subgrupos, de acuerdo a su disimilitud, hasta que cada objeto tenga su propio grupo. 36 Paso 0 1 2 3 4 Aglomerativo a ab b abcde c cde d de e Paso 4 3 2 1 0 Divisivo Figura 4. Dendograma del Agrupamiento Jerárquico Los algoritmos Aglomerativos comienzan con cada objeto en un cluster. Luego los clusters son mezclados de acuerdo a su similitud (los clusters más similares son mezclados en cada paso), hasta que se obtenga un único cluster con todos los objetos de S. En cada paso, la mezcla o la división, se realiza de acuerdo a un criterio de optimización. La mayoría de los métodos aglomerativos siguen el siguiente procedimiento: 1. Crear n clusters, cada uno conteniendo un punto de dato del conjunto S. 2. Calcular la distancia entre cada par de clusters. Estas distancias son usualmente almacenadas en una matriz de distancias simétrica Dnxn = {dij}. 3. Buscar los clusters i y j que tengan la distancia más pequeña (los más similares) en la matriz D. 4. Mezclar los dos clusters i y j en un cluster (ij). 5. Actualizar la matriz de distancias, eliminando las filas y las columnas i y j, y adicionando una fila y una columna correspondiente al cluster resultante de la 37 mezcla. El número de clusters y la dimensión de la matriz D, se disminuye en uno en cada paso. 6. Repetir los pasos del 2 al 5 hasta que el número de clusters sea igual a 1. Entre los métodos de agrupamiento aglomerativos se encuentran los siguientes: Encadenamiento simple(vecino más cercano): la distancia entre dos clusters es la distancia entre los dos objetos más cercanos en esos clusters: C(Si,Sj) = min d(xi, xj) xi∈Si, xj∈Sj Se presentan inconvenientes cuando los clusters están poco delimitados, resultando al final grandes cadenas con objetos diferentes. Un algoritmo que utiliza este método es el SLINK [SR73]. Encadenamiento completo (vecino más lejano): une los clusters con la distancia mínima entre los dos objetos más lejanos: C(Si, Sj) = max xi ∈Si, xj ∈Sj d(xi , xj) Con este método se elimina el problema de encadenamiento presentando en el método anterior[DD77]. Encadenamiento Promedio(Promedio del grupo): define la distancia entre dos clusters como la distancia promedio de todos los objetos en un cluster a todos los objetos en el otro cluster. Este método tiende a combinar clusters con pequeñas varianzas y se encuentra dirigido a producir clusters con varianzas aproximadamente iguales: C(Si, Sj) = 1 ∑ ∑ d ( xi , xj ) Si Sj xi∈Si , xj∈Sj Un ejemplo de este tipo de agrupamiento es el método de Voorhess[VE86]. 38 Diferente a los métodos anteriores, el método de la varianza mínima de Ward[WJ63] optimiza una función objetivo estadística -la suma de las distancias al cuadrado entre cada uno de los objetos y el centro del cluster-. En cada paso, el algoritmo mezcla los clusters que deberán minimizar el incremento de esta estadística. Este método tiende a unir los cluster con pequeño número de objetos, y está dirigido a producir cluster de aproximadamente el mismo tamaño. Estudios comparativos muestran que el desempeño de los métodos jerárquicos varía de acuerdo al tipo de datos - no existe un método que sea mejor en todas las circunstancias [EB93, FD83]. Sin embargo, el método de Ward y el método de Encadenamiento Promedio son relativamente seguros sobre un amplio rango de tipos de datos. Entre las desventajas de los métodos de agrupamiento jerárquico se tienen: - Ellos están restringidos a pequeños conjuntos de datos debido a la necesidad de almacenar las matrices de similitud. - No se provee de mecanismos que permitan reagrupar objetos que han sido agrupados incorrectamente en pasos anteriores. - Los métodos de encadenamiento promedio, encadenamiento completo y de Ward tienden a favorecer clusters esféricos, mientras que el método de encadenamiento simple, similar a los métodos basados en densidad, pueden producir cluster "alargados". CURE(Clustering Using Representatives)[GR98a]: En este método un cluster es representado por un número constante de puntos, por seleccionar de un conjunto de puntos que se encuentran bien dispersos y condensarlos en el centroide del cluster de acuerdo a un factor de condensación. CURE mide la similitud entre dos clusters por la similaridad de las parejas de puntos más cercanos pertenecientes a diferentes clusters. 39 Diferente a los métodos basados en centroides/medoides, CURE puede encontrar clusters de formas arbitrarias y tamaños y puede representar cada uno de los clusters por medio de puntos representativos. Condensando los puntos representativos en el centroide, CURE permite evitar algunos de los problemas asociados con ruido y las inconsistencias. Sin embargo, posee la desventaja de contar con las características especiales de los cluster individuales, debido a que se pueden tomar decisiones incorrectas debido a la inconsistencia misma de los datos. En algunos algoritmos la similitud entre dos clusters es tomada por la agregación de las similitudes (interconectividad) entre parejas de elementos pertenecientes a diferentes clusters. La bondad de estos métodos es que los subclusters pertenecientes a un mismo cluster tienden a tener alta interconectividad. Pero la interconectividad agregada entre dos clusters depende del tamaño de los clusters, en general parejas de clusters grandes deben tener alta interconectividad. Muchos de estos algoritmos normalizan la similaridad agregada entre una pareja de clusters con respecto a la interconectividad esperada de los clusters involucrados. Por ejemplo, el método del promedio del grupo asume clusters completamente conectados y luego escala la similitud agregada entre dos clusters a n x m, en donde n y m son el número de miembros en los dos clusters. CHAMALEON (Hierarchical Clustering using Dynamic Modeling)[KH99]: Es un reciente algoritmo de agrupamiento jerárquico aglomerativo. Su característica más importante es que maneja los conceptos de interconectividad y de cercanía para la identificación de las parejas más similares de los clusters. El algoritmo modela el grado de interconectividad y de cercanía. Considera las características internas de los clusters mismos. Por lo tanto no depende sólo de un modelo suministrado por el usuario y puede automáticamente adaptarse a las características internas de clusters mezclados. 40 Chamaleon opera sobre un grafo disperso en el cual los nodos representan elementos de datos y los arcos pesados representan las similitudes entre los elementos de datos. Esta representación en un grafo disperso permite a Chamaleon escalar a grandes conjuntos de datos y usar en forma exitosa conjuntos de datos que se encuentran disponibles solamente en el espacio de similitud en vez de espacios métricos. Los conjuntos de datos en un espacio métrico tienen un número fijo de atributos para cada uno de los elementos de datos, mientras que en los espacios de similitud solamente se proporcionan las similitudes entre los elementos de datos. Chamaleon encuentra los clusters en el conjunto de datos usando un algoritmo de dos pasos. En el primer paso, se utiliza un algoritmo de particionamiento de grafos para agrupar los elementos de datos en varios subclusters relativamente pequeños. En el segundo paso, utiliza un algoritmo para encontrar los clusters genuinos al combinar en forma repetida los subclusters. Modelamiento de los Datos: Se parte de una matriz en donde las entradas representan la similitud entre los elementos de datos. En Chamaleon la representación del grafo disperso de los elementos se basa en un método de los kvecinos más cercanos. Cada vértice del grafo representa un elemento de dato. Un arco existe entre dos vértices v, y u si v es uno de los k puntos más similares de u. Existen varias ventajas en la representación de los elementos a ser agrupados usando un grafo de los k-vecinos más cercanos, una de ellas es que se permiten modelar tanto las regiones densas como las dispersas. En Chamaleon cada cluster no es más que un subgrafo de la representación de grafos dispersos del conjunto de datos original. Modelamiento de la similitud de clusters: Chamaleon usa un esquema de modelamiento dinámico para determinar la similitud entre parejas de clusters analizando su interconectividad relativa (RI) y su cercanía relativa (RC). 41 Selecciona las parejas para mezclarlas si tanto RI como RC son altas. Es decir, selecciona los clusters que se encuentran bien interconectados y más cercanos. Los algoritmos de agrupamiento por lo general miden la interconectividad absoluta entre los clusters Ci y Cj en términos del cruce de arcos - la suma de los pesos de los arcos que se encuentran entre los dos clusters, la cual se denota por EC(Ci , Cj). La interconectividad relativa entre dos clusters es la interconectividad absoluta normalizada con respecto a su interconectividad interna. La RI entre una pareja de clusters Ci y Cj se define como: RI ( C i , C j ) = EC ( C i , C j ) EC ( C i ) + EC ( C j ) 2 Por centrarse en la RI, Chamaleon puede sobreponer las limitaciones que existen en los algoritmos que usan modelos de interconectividad estática. La RI puede manejar las diferencias entre formas de clusters como también las diferencias en el grado de interconectividad. La cercanía relativa involucra conceptos que son semejantes a los desarrollados con la interconectividad. La cercanía absoluta se define como el promedio de los pesos de los arcos que conectan los vértices de Ci a los de Cj. Debido a que estas conexiones provienen del grafo de los k-vecinos más cercanos, el promedio proporciona una buena medida de afinidad entre los elementos de datos, al mismo tiempo, esta medida es tolerante a las inconsistencias. Para calcular la cercanía interna de un cluster, se toma el promedio de los pesos de los arcos a través de una bisección de corte mínimo que divida el cluster aproximadamente en dos partes iguales. La cercanía relativa (RC) entre un par de clusters es la cercanía absoluta normalizada con respecto a la cercanía interna de los dos clusters. 42 r SEC ( C i , C j ) RC ( C i , C j ) = Ci Ci + C j r r SEC ( C i ) + Cj Ci + C j r SEC ( C j ) r en donde, SEC ( C i ) y SEC ( C j ) son los pesos promedio de los arcos que r pertenecen al corte mínimo de los clusters Ci y Cj y SEC ( C i , C j ) es el peso promedio de los arcos que conectan los vértices en Ci y Cj. Los términos Ci y Cj son el número de puntos de datos en cada cluster. En general, la cercanía relativa entre dos clusters es menor que uno, debido a que los arcos que conectan vértices en diferentes clusters tienen un peso menor. Proceso: El esquema dinámico para el modelamiento de clusters por similitud es aplicable solamente cuando cada uno de los cluster contienen un suficiente, gran número de vértices (elementos de datos). La razón es que para calcular la RI y la RC de los clusters, Chamaleon necesita calcular cada uno de los RI y RC internos de cada cluster. Por esta razón, Chamaleon ejecuta primero una fase para agrupar los elementos de datos en subclusters que contienen un suficiente número de elementos para permitir un modelamiento dinámico. En la segunda fase, se descubren los clusters genuinos usando un esquema de modelamiento dinámico mezclando los subclusters en forma jerárquica. Chamaleon encuentra los subclusters iniciales usando hMetis [KK98], un algoritmo de particionamiento de grafos de alta calidad y rápido. HMetis particiona el grafo de los k-vecinos más cercanos del conjunto de datos en varias particiones de tal forma que se minimice el corte de arcos. Debido a que cada uno de los arcos en el grafo de los k - vecinos más cercanos representan la similitud entre los puntos de datos, un particionamiento que minimice el corte del arco, efectivamente minimiza la relación (afinidad) entre los puntos de datos a través de las particiones. 43 Después de encontrar los subclusters, toma un algoritmo que combina repetidamente estos pequeños subclusters, usando RI y RC. Existen muchas formas de desarrollar un algoritmo para realizar este paso. Chamaleon usa dos diferentes esquemas: - Umbral especificado por el usuario: Este método mezcla solamente las parejas de clusters que exceden un umbral especificado por el usuario para RI y RC. En este algoritmo Chamaleon visita cada uno de los clusters Ci y chequea para los clusters adyacentes Cj con RI y RC que excedan el umbral. Si más de un cluster adyacente satisface estas condiciones, entonces mezcla Ci con el cluster que contenga la más alta interconectividad absoluta. Una vez que se selecciona una pareja para cada cluster, se repite de nuevo el proceso. El usuario puede controlar las características de los clusters deseados con la definición de estos umbrales. - Optimización de una función definida: Se utiliza una función para combinar RI y RC. Se seleccionan parejas de clusters que maximicen la función. Debido a que el objetivo es mezclar parejas de clusters para los cuales RI y RC son altos, una forma de definir tal función es tomando sus productos. Es decir, se seleccionan clusters que maximicen: RI(Ci, Cj) x RC(Ci, Cj). Esta fórmula asigna igual importancia a ambos parámetros. Pero a veces se puede preferir asignar una mayor preferencia a uno de ellos. Por esta razón, Chamaleon selecciona la pareja de clusters que maximice: RI(Ci, Cj) x RC(Ci, Cj)α. En donde α es un parámetro suministrado por el usuario. Si α > 1, se asigna una alta importancia a la RC y cuando α<1, se da mayor importancia a RI. 44 2.6.2.3. Métodos de Agrupamiento basados en Densidades DBSCAN (Density Based Spatial Clustering of Applications with Noise)[EK96]: Ester et al. Describen un método de agrupamiento basado en densidades, el cual puede ser usado cuando clusters con diámetros significantemente diferentes están localizados cerca uno del otro, cuando se manejan clusters de forma cóncava o en cluster con "ruido". DBScan define un cluster como un conjunto máximo de puntos conectados densamente, lo cual significa que cada punto del centro de un cluster deberá tener al menos un mínimo número de puntos MinPts dentro de un radio dado Eps(radio máximo de vecindad). DBScan asume que todos los puntos dentro de un cluster genuino pueden ser alcanzados desde otros por recorrer una trayectoria de puntos conectados densamente. DBScan puede encontrar cluster de formas arbitrarias si la densidad del cluster puede ser determinada de antemano y la densidad del cluster es uniforme. Este algoritmo usa la estructura de datos espacial R*-tree para localizar puntos comprendidos por la distancia Eps al interior de los clusters. La complejidad del algoritmo DBScan es O(nlogn). Durante experimentos realizados DBScan se desempeño mejor que CLARANS con un factor entre 250 y 1900 el cual crece con el incremento del tamaño de la base de datos. Para determinar MinPts y Eps los autores han propuesto algunas técnicas, como el CF - tree. BIRCH (Balanced Iterative Reducing and Clustering): Los árboles R no siempre se encuentran disponibles y su construcción puede consumir tiempo. Zhang et. al.[ZR96] presentaron el algoritmo BIRCH, para el agrupamiento de grandes conjuntos de puntos. Los autores usan los conceptos de Característica de Agrupamiento y el CF - tree. Una Característica de Agrupamiento CF es la información resumida de los subclusters de los puntos. Dados N puntos d-dimensionales en el subcluster {Xi}, CF es definido como: 45 r CF = ( N , LS , SS ) en donde N es el número de puntos en el subcluster, LS es la suma lineal sobre los N puntos, es decir: r ∑ iN= 1 X i y SS la suma de los puntos al cuadrado, esto es: r 2 ∑ iN= 1 X i Los CF son suficientes para encontrar los clusters y ellos constituyen un eficiente método de almacenamiento de información, ya que resumen la información de los subclusters en lugar de tener almacenados todos los puntos. Un CF es un árbol balanceado con dos parámetros. Un factor de bifurcación B y un umbral T. El factor de bifurcación especifica el máximo número de hijos. El parámetro T específica el máximo diámetro de los subclusters almacenados en los nodos hoja. Al cambiar el valor de T se puede cambiar el tamaño del árbol. Los nodos no hoja almacenan la suma de los CF de sus hijos y por la tanto ellos resumen la información de sus hijos. El árbol CF es construido dinámicamente cuando los puntos de datos son insertados. Un punto es insertado en la hoja que más lo cubra (subcluster). Si el diámetro del subcluster almacenado en el nodo hoja después de la inserción es mayor que T, entonces el nodo hoja y posiblemente otros nodos son divididos. Después de la inserción de un nuevo punto de dato, la información de él es pasada hasta la raíz del árbol. El tamaño del árbol CF puede ser cambiada al modificar T. Si el tamaño de la memoria que se necesita para almacenar el árbol es mayor que el tamaño de la memoria principal, entonces un mayor valor de T puede ser especificado y el árbol CF es reconstruido. El proceso de reconstrucción es desarrollado construyendo un nuevo árbol desde los nodos hoja del árbol anterior. Por lo tanto, para la 46 reconstrucción del árbol no se necesita leer todos los puntos de datos. Los autores presentan también algunas heurísticas para tratar con datos inconsistentes y métodos para mejorar la calidad del árbol. Zhang et al. Afirman que cualquier algoritmo de agrupamiento, incluyendo el CLARANS puede ser usado con el árbol CF. Los costos de CPU y de I/O del algoritmo BIRCH son O(N). Ellos también han desarrollado varios experimentos los cuales han demostrado la escalabilidad lineal del algoritmo con respecto al número de puntos, la insensibilidad frente al orden de entrada de los datos y buena calidad de agrupamiento de los datos. Como una desventaja del algoritmo BIRCH, es que maneja solamente datos numéricos. Modelos basados en distribuciones: Uno de los métodos propuestos por Banfield y Raftery [BR93], está basado en una mezcla de modelos estadísticos para agrupamiento. La idea de los modelos es que los vectores de entrada x1,x2,...,xn son observaciones de un conjunto de k distribuciones desconocidas E1,E2,..,Ek. Se supone que la densidad de una observación xr, con respecto a Ei está dada por fi(xr θ) para algún conjunto desconocido de parámetros θ. También se supone que para cada xr y distribución Ei, τir representa la probabilidad de que xr pertenezca a Ei. Cada entrada está restringida a pertenecer a alguna distribución. De este modo, i =1 ∑k i =1 τ r Dadas estas definiciones, el objetivo del modelo es encontrar los parámetros θ y τ (definido como el vector de todos los τir) que maximice la probabilidad: n k L( θ , τ ) = ∏ ∑ τ ri f i ( x r θ ) r =1 i =1 47 Banfield y Raftery restringieron su trabajo a un modelo más simple en el cual cada entrada deberá pertenecer exactamente a una distribución. En su trabajo se descarta el vector τ, y en lugar de él se utiliza el vector γ = (γ1,γ2,...,γn) para representar las etiquetas de identificación de las observaciones, por lo tanto γr = i si xr proviene de Ei. El objetivo entonces, es encontrar los parámetros θ y γ los cuales maximizan la probabilidad. n L( θ , γ ) = ∏ fγr ( x r θ ) r =1 Trabajos anteriores con modelos híbridos han modelado las distribuciones con funciones normales multivariadas, en estos casos, el parámetro desconocido θ, son el vector de la media y la matriz de covarianza de cada distribución. Sean µi y Σi el vector de la media y la matriz de covarianza respectivamente para Ei. Por ejemplo, si Σi = σ2I para todo i, entonces la maximización de la ecuación anterior, es equivalente a optimizar con el criterio de la suma de los cuadrados. Dada esta parametrización, un proceso estándar iterativo de MáximaExpectación (EM) puede ser usado para encontrar los valores de µi, Σi y γ [SS71, SM81]. El principal problema de este modelo es que si los parámetros µi y Σi pueden variar libremente para cada de las distribuciones, luego encontrar un óptimo global en problemas grandes, puede resultar costoso en espacio y tiempo. La principal contribución del trabajo de Banfield y Raftery consiste en la reparametrización de las distribuciones de tal forma que se permita una mayor flexibilidad en las características de cada una de las distribuciones. Específicamente, ellos asumen que cada distribución es normal multivariada, como antes, pero descompuesta de la siguiente manera: Σi = Di ∧i DiT en donde Di es la matriz de vectores propios normalizada y ∧i es la matriz diagonal de los valores propios de Σi . Debido a que la matriz de covarianza es definida positiva, la descomposición será siempre posible. Bajo esta 48 parametrización, la orientación de Ei está determinada por Di y los contornos de la forma y la densidad están determinados por ∧i. La matriz ∧i es parametrizada como λiAi, en donde λi s el principal valor propio de Σi. De este modo, λi determina el "volumen" de cada cluster y Ai determina la forma. Banfield y Raftery usaron esta parametrización para derivar varios modelos. Proponen un modelo en el cual Ai = I para Ai, bajo esta suposición, las distribuciones son todas esféricas, pero de diferente tamaño. Otro modelo propuesto consiste en restringir a que todos los Ai sean iguales, pero permitiendo que λi y Di varíen para cada distribución. De este modelo resultan clusters de la misma forma, pero de diferentes orientaciones y tamaños. Por último, ellos han demostrado la derivación de un modelo el cual no es puramente Gausiano el cual está dirigido a variar uniformemente los puntos en un determinado intervalo en un cluster. Mientras estos modelos no aplican a todos los tipos de datos, cuando se usan en forma apropiada, pueden aumentar en forma significativa el proceso de agrupamiento Banfield y Raftery también derivaron una estadística denominada Pesos de Evidencia Aproximados (aproximate weight of evidence - AWE) el cual estima la probabilidad posterior Bayesiana de una solución de agrupamiento producida por uno de los métodos anteriores. Esta estadística puede ser usada para comparar los resultados obtenidos con diferentes combinaciones de modelo y/o valores de k. Una modificación a esta aproximación fue propuesta por Fraley y Raftery [FR98]. Como una desventaja de estos modelos, es que ellos no manejan el problema de la inconsistencia de los datos de entrada, los cuales no van a pertenecer a ningún cluster. Banfield y Raftery definen este problema como un proceso de Poisson con intensidad ν el cual distribuye los puntos a través del espacio que contiene todos los puntos de entrada. Se supone que γr = 0 si xr es considerado 49 inconsistente y que E0 es el conjunto de todos los puntos inconsistentes. Luego la ecuación puede ser generalizada de la siguiente manera: L( θ , ν , γ ) = ( νV ) E 0 e − νV E ! n ∏ f (x θ) r = 1 γr r 0 En donde V denota el hipervolumen del espacio que contiene todos los puntos de entrada. A pesar de que Banfield y Raftery intentan realizar modelos más prácticos, ellos son relativamente desconocidos, comparados con los métodos tradicionales como el k-mean y el agrupamiento por simple encadenamiento. Esto se debe a que, primero, la técnica no se centra en la eficiencia, no se hace un análisis del espacio, y el tiempo requerido para el algoritmo como una función del tamaño de la entrada y los ejemplos con los que se ha probado el algoritmo son relativamente pequeños. Segundo, se requiere de un alto grado de intervención humana debida a la definición de los parámetros por parte del usuario, y por último, en el modelo se supone que los datos siguen una distribución normal. En muchos casos esto no es cierto, además de que los datos pueden no ser numéricos, haciendo que el método no pueda ser aplicable. Modelos basados en Sistemas Dinámicos: Este método fue propuesto por Gibson, Kleinberg y Raghavan [GKR97] y consta de un simple proceso el cual calcula en forma iterativa los pesos sobre los vértices de un grafo hasta que un punto sea alcanzado. El procedimiento es el siguiente: 1. Para cada nodo v actualizar wv así: Para cada tupla τ = (v, u1,u2,..ud-1) hacer xτ ← ⊕(wu1,.....,wud-1) wv ← Σr xτ 50 2. Normalizar la configuración, de tal forma que la suma de los cuadrados de los pesos en cada campo sea igual a l. En este método el conjunto de entrada de datos es T = {τ1,τ2,...,τn} de tuplas con d campos, cada uno de los cuales puede tomar un conjunto pequeño de valores. Una suposición clave de este modelo es que el conjunto no es métrico, por lo tanto se puede determinar si dos tuplas tienen el mismo valor para un campo en particular. Una forma de mirar la entrada es como un grafo en el cual los vértices son el conjunto de todos los valores que aparecen en las tuplas de la entrada. Desde el punto de vista de los datos, los valores se refieren a los nodos. El conjunto de nodos es denotado por V = {v1,v2,...,vm}. Cada tupla puede ser considerada como una trayectoria a través del grafo y el conjunto de arcos del grafo es simplemente la colección de arcos de la trayectoria. Asociado con cada uno de los nodos v en el grafo existe un peso wv y el vector w contiene los pesos de todos los nodos referidos a esa configuración del grafo. La esencia del método es una función f la cual transforma la configuración actual a la siguiente. La idea consiste en aplicar f en forma iterativa hasta que un punto fijo sea alcanzado, es decir que f(w) ≈ w. Con el fin de especificar completamente a f, se mostrará el significado del operador ⊕ (operador de combinación) en este método: El operador producto Π: ⊕(w1,...,wd) = w1w2...wd El operador Sp: ⊕ (w1,...,wd) = ((w1 )p + (w2 )p +... +(wd)p)1/p El operador S∞: ⊕(w1,...,wd) = max{w1 ,..., wd} Además de la escogencia del operador de combinación, el usuario debe seleccionar también una configuración inicial. Para esto los autores sugieren dos métodos. El primer método consiste en asignar pesos a los nodos en forma aleatoria u uniforme para la configuración inicial, con el fin de no introducir 51 sesgos. En el segundo método, con el fin de dirigir los resultados hacia un agrupamiento basado sobre un cierto conjunto de valores, se pueden asignar valores altos a los pesos iniciales. Estos autores sugieren también otro método denominado particionamiento del grafo espectral. En este método en lugar de operar sobre una configuración en un momento dado, el usuario puede mantener varias configuraciones w(1), w(2), ..., w(n) simultáneamente. El usuario entonces, puede ejecutar los siguientes dos pasos hasta que w(1) alcance un punto fijo: 1. Actualizar w(i) f(w(i) para i = 1,2,...,m. 2. Actualizar el conjunto de vectores {w(1), w(2),…w(m)} hasta que sean ortonormales. En el segundo paso en el cual los vectores se hacen ortonormales, se pueden introducir pesos negativos a las configuraciones. Los autores afirman que la separación de los nodos con pesos positivos de los nodos de pesos negativos en las diferentes configuraciones, puede resultar en una partición informativa de los datos. Ellos denominan a la configuración w(1), después de cada iteración, la "fuente principal" y a las otras "fuentes no principales". Según los autores, entre las ventajas que presenta este método se tienen: - Converge rápidamente, generalmente menos de 20 iteraciones son requeridas en la mayoría de las pruebas realizadas. - Se pueden identificar clusters aún en la presencia de campos irrelevantes y un gran número de entradas con valores "inconsistentes", generadas aleatoriamente. - También las "fuentes no principales" pueden aparentemente ser utilizadas para separar múltiples clusters en el mismo conjunto de entrada. 52 La principal debilidad del método es el poco entendimiento que se posee del comportamiento tanto del algoritmo teórico como del práctico. Teóricamente, la convergencia no se garantiza con la mayoría de los operadores de combinación y existen pocos resultados que muestren exactamente qué tipo de clusters pueden ser identificados con este método. Debido a la falta de entendimiento teórico, no existe claramente definida una metodología para usar este método sobre algoritmos de agrupamiento práctico. Adicionalmente, el hecho de que el método sólo funciona con datos categóricos puede ser otra debilidad. 2.6.2.4. Métodos basados en Grid Método Clique [AG98]: Primero, el método selecciona un conjunto de "subespacios" sobre el cual se van a agrupar los datos. Luego, se desarrolla el agrupamiento en forma independiente en cada subespacio y por último, se genera un resumen de cada uno de los clusters en una expresión en forma normal disjuntiva (DNF). Sea A = {A1,A2,...Ad} el conjunto de límites de los dominios totalmente ordenados y S = A1 x A2 x ...x Ad, un espacio d-dimensional numérico. En donde, A1, A2,...,Ad son las dimensiones (atributos) de S. La entrada consiste de un conjunto d-dimensional de puntos V = {v1,v2,..,vm} en donde, vi = {vi1,vi2,...,vid}. La j-ésima componente de vi es derivada del dominio Aj. El espacio de datos S es particionado en unidades rectangulares no solapadas. Las unidades son obtenidas por particionar cada dimensión en ξ subintervalos de igual longitud, en donde ξ es un parámetro suministrado por el usuario. Cada unidad u es la intersección de un intervalo desde cada uno de los atributos. Se tiene la forma {u1,u2,..,ud} en donde, ui=[li,hi) es un intervalo abierto a la derecha en la partición de Ai. 53 Se dice que un punto v = {v1,v2,..,vd} está contenido en una unidad u ={u1,u2,..,ud} si li ≤ vi < hi para todo ui. La selectividad de una unidad es definida como la fracción del total de puntos de datos contenida en una unidad. Se dice que una unidad u es densa si selectividad(u) excede a τ, otro parámetro suministrado por el usuario. En forma similar se definen unidades en todos los subespacios del espacio original d-dimensional. Considérese una proyección del conjunto de datos V en At1 x At2 x ... x Atk, en donde k < d y ti < tj si i < j. Una unidad en el subespacio, es la intersección de un intervalo desde cada uno de los k atributos. Un cluster es un conjunto máximo de unidades densas conectadas en kdimensiones. Dos unidades u1, u2 k- dimensionales están conectadas, si ellas tienen un lado en común, o si existe otra unidad u3 k-dimensional tal que u1 esté conectada a u3 y u2 esté conectada a u3. Las unidades u1={rt1,..,rtk} y u2={r't1,...,r'tk} tienen un lado en común si existen k-1 dimensiones, asumiendo como las dimensiones At1,...Atk-1, de tal forma que rtj = r'tj y que, htk = l'tk o h'tk = ltk. Una región en k- dimensiones es un conjunto rectangular k-dimensional paralelo a los ejes. Se está interesado solamente en las regiones que puedan ser expresadas como la unión de las unidades. Una región puede ser expresada como una expresión DNF sobre intervalos del dominio Ai. Se dice que una región R está contenida en un cluster C si R ∩ C = R. Una región R contenida en un cluster se dice a ser máxima, si un superconjunto no propio de R está contenido en C. Una descripción mínima de un cluster C es un conjunto R de regiones máximas de tal forma que su unión sean iguales a C . El problema consiste entonces en que dado un conjunto de puntos de datos y los parámetros de entrada ξ y τ, encontrar cluster en todos los subespacios 54 del espacio de datos original y presentar un descripción mínima de cada uno de los clusters en la forma de una expresión DNF. Por ejemplo, se muestra en la figura 5 el espacio en dos dimensiones (edad, salario) que ha sido dividido por una malla de 10 x 10. Una unidad es la intersección de intervalos, como la unidad u = (30 ≤ edad < 35) ∧ (1 ≤ salario < 2). Una región es una unión de unidades rectangulares. A y B son regiones: A= (30 ≤ edad < 50) ∧ (4 ≤ salario < 8 ) y B =(40 ≤ edad < 60) ∧ (2 ≤ salario < 6). Asumiendo que las unidades densas son las áreas sombreadas, A∪B es un cluster. A es una región máxima contenida en el cluster, mientras que A ∩ B no es una región máxima. La descripción mínima para este cluster es la expresión DNF: ((30 ≤ edad < 50) ∧ (4 ≤ salario < 8 ) ∨ (40 ≤ edad < 60) ∧ (2 ≤ salario < 6)). Salario x 100000 10 9 8 7 A 6 5 B 4 3 2 u 1 20 25 30 35 40 45 50 55 60 65 70 Edad Figura 5. Espacio en dos dimensiones para Clique En la figura 6, asumiendo un τ = 20%, no hay una unidad densa en dos dimensiones y no existen clusters en el espacio de datos original. Si los datos son proyectados a la dimensión del salario, sin embargo, existen tres unidades densas en una dimensión. Dos de éstas están conectadas, por lo tanto existen dos clusters en el subespacio del salario unidimensional. C' = 5 55 ≤ salario < 7 y D' = 2 ≤ salario < 3. No existen clusters en el subespacio de edad debido a que no existen unidades densas en ese subespacio. Salario x 100000 Salario x 100000 10 10 9 9 8 8 • 7 6 • • • C • • • • 7 6 5 5 4 4 3 3 2 C' • • D • • • 2 D' 1 1 20 25 30 35 40 45 50 55 60 65 70 Edad Figura 6. Identificación de clusters en subespacios (proyecciones) del espacio original La técnica de agrupamiento CLIQUE consiste de los siguientes pasos: 1. Identificación de los subespacios que contienen clusters. 2. Identificación de los clusters. 3. Generación de las descripciones mínimas para los clusters. La manera más simple de identificar unidades densas consiste en crear un histograma en todos los subespacios y contar los puntos contenidos en cada unidad. Debido a que este método no es factible para datos en altas dimensiones, se define un algoritmo que aprovecha el criterio de monotonicidad de un algoritmo de agrupamiento con respecto a la dimensionalidad para recortar el espacio de búsqueda. Lema 1(Monotonicidad): Si una colección de puntos S es un cluster en un espacio k-dimensional, entonces S es también parte de un cluster en cualquier proyección (k-1)- dimensional de este espacio. 56 Para decidir cuáles subespacios y sus correspondientes unidades densas son interesantes, se aplica el principio MDL (Longitud de Mínima Descripción). La idea básica del principio consiste en codificar los datos de entrada bajo un modelo dado y seleccionar la codificación que minimice la longitud del código [RJ89]. Se asume que se tienen los subespacios S1,S2,...,Sn. La técnica primero agrupa las unidades densas que se encuentran en el mismo subespacio. Luego, para cada subespacio, calcula la fracción de la base de datos que es abarcada por la unidad densa: xsj = Σui∈Sj cont(ui) en donde, cont(ui) es el número de puntos que caen en la unidad ui. El valor de xsj se define como el cubrimiento del espacio Sj. Los subespacios con cubrimiento grande son seleccionados y el resto se descartan. Esto se debe a que si un cluster existe en k dimensiones, luego para cada subespacio de estas k dimensiones existen unidades densas en este subespacio (la proyección de las unidades densas que comprenden el cluster en las k dimensiones originales) que cubren al menos los puntos en el cluster. Los subespacios se ordenan en forma descendiente a su cubrimiento. Luego se divide la lista ordenada de subespacios en dos conjuntos. El conjunto seleccionado I y el conjunto de los que se descartan P. El siguiente método es utilizado para obtener el punto de corte. Para cada conjunto se calcula la media de las fracciones de cubrimiento y para cada uno de los subespacios en ese conjunto, se calcula la diferencia con respecto a la media. La longitud del código es la suma de las longitudes de los bits de los números que han sido almacenados. Si se decide descartar los subespacios Si+1,...,Sn, los dos promedios son: uI(i ) = (Σ1 ≤ j ≤i xsj )/i y up(i ) = (Σi+1 ≤ j ≤ n xsj )/(n-i). Debido a que tanto uI(i ) como uP(i ) son enteros, el número de bits requeridos para almacenarlos es log2( uI(i )) y log2(uP(i )) respectivamente. 57 Para cada subespacio se debe almacenar la diferencia desde uI(i ) o uP(i ) que también es un entero. La longitud total del código será entonces: CL( i ) = log 2 ( u I ( i )) + ∑ i + 1≤ j ≤ n ∑ 1≤ j ≤ i log 2 ( xS j − u I ( i ) ) + log 2 ( uP ( i )) + log 2 ( xS j − uP ( i ) ) Esta longitud del código es minimizada para determinar el punto i de corte. El descarte de las unidades densas en los subespacios con baja convergencia hace el algoritmo más rápido, pero si un cluster existe en las k dimensiones, luego todas las proyecciones en un subconjunto de las k dimensiones son también agrupadas Para el segundo paso del método, que consiste en encontrar los clusters, la entrada consiste de un conjunto de unidades densas D, todas en el mismo espacio S k-dimensional y el resultado será una partición de D en D1,....Dq, de tal forma que todas las unidades en Di se encuentren conectadas y que dos unidades ui ∈ Di, uj∈ Dj con i ≠ j, no estén conectadas. Cada una de estas particiones es un cluster de acuerdo a la definición. El problema es equivalente a encontrar componentes conectadas en un grafo definido de la siguiente manera: Los vértices de los grafos corresponden a las unidades densas y existe un arco entre dos vértices, si y sólo si las correspondientes unidades densas tienen un lado en común. Se dice que las unidades correspondientes a los vértices en la misma componente conectada del grafo, están conectadas debido a que existe una trayectoria de unidades que tienen un lado en común entre ellas. Se utiliza un algoritmo de búsqueda de "Primero por Altura" para encontrar las 58 componentes conectadas del grafo. Se comienza con alguna unidad u en D, se le asigna al primer cluster y encuentra todas las unidades que están conectadas a él. Luego si existen todavía unidades en D que aún no ha sido visitadas, se escoge una y se repite el procedimiento. El algoritmo se define de la siguiente manera: Entrada: Unidades de Entrada u = {[l1,h1),...,[l k, h k)} Número de clusters n Procedimiento dfs(u,n) u, num = n Para (j =1; j < k; j++) hacer //examina los vecinos a la izquierda de u en la dimensión aj ul = {[l1, h1),..., [ljl), (hjl)),...,[lk, hk)} si (ul es densa) ∧ (ul.num esta indefinida) dfs(ul, num) //examina los vecinos a la derecha de u en la dimensión aj ur = {[l1, h1),..., [ljr), (hr )),...,[lk, hk)} si (ur es densa) ∧ (ur.num esta indefinida) dfs(ur, num) El número de unidades densas para un subespacio dado no puede ser muy grande, debido a que cada unidad densa deberá tener una selectividad al menos de τ. Se asume por lo tanto, que las unidades pueden entonces ser almacenadas en memoria. Por cada unidad densa visitada, el algoritmo chequea 2k vecinos para encontrar las unidades. Si el número total de unidades densas en el subespacio es n, el número total de accesos será entonces 2kn. Para el paso de generación de descripciones, la entrada consiste de conjuntos disjuntos de unidades conectadas k-dimensionales en el mismo subespacio. Cada conjunto es un cluster y el objetivo será entonces generar una descripción concisa de él. Para generar una descripción de cada uno de los 59 clusters, se pretende cubrir todas las unidades comprendidas en éste con un número mínimo de regiones de tal forma que todas las regiones contengan solamente unidades conectadas. Para un cluster C en un subespacio kdimensional S, un conjunto R de regiones en el mismo subespacio S, es una cobertura de C si cada región R ∈ R está contenida en C y cada unidad en C está contenida en al menos una de las regiones en R. En este paso, se comienza con una unidad densa arbitraria u1 ∈ C y se amplia a una región máxima R1 que cubra a u1. Se adiciona R1 a R. Luego se toma otra unidad densa u2 ∈ C que aún no haya sido cubierta por cualquiera de las regiones máximas de R y se repite el procedimiento hasta que todas las unidades se encuentren cubiertas por alguna región máxima en R. Evaluaciones empíricas muestran que el Clique escala linealmente de acuerdo al tamaño de la entrada. Es capaz de descubrir cluster embebidos en subespacios en bajas dimensiones, aunque no existan clusters en el espacio original. Si el usuario está interesado en agrupar en subespacios de alta dimensionalidad, los autores sugieren utilizar otros algoritmos para descubrimiento [BR97, LK98]. 2.7. Algoritmos Genéticos 2.7.1. Fundamentación Los Algoritmos Genéticos (AG) fueron propuestos por Holland [HJ75]. Aunque la intención inicial era emular la teoría de la selección natural de las especies, los AG se han usado mucho para resolver problemas de búsqueda y de optimización. Se basan en los mecanismos genéticos de los organismos biológicos. Luego de varias generaciones, la población inicial evoluciona de acuerdo a los principios de la selección natural o de la "supervivencia de los más aptos". 60 Los principios básicos de los AG provienen de la naturaleza, los individuos en una población compiten con cada uno de los otros por recursos. Los individuos que tienen mayor éxito para supervivir y para seleccionar una pareja, son aquellos que tendrán el mayor número de descendientes. Lo que significa que los individuos más "aptos" podrán propagar su material genético al incrementar el número de individuos de las próximas generaciones. La combinación de las buenas características, desde los diferentes ancestros, pueden producir descendientes "superaptos", en donde sus aptitudes serán mejores que la de sus padres. Los AG utilizan una analogía del comportamiento natural observado en la biología. Se trabaja con una población de "individuos", en donde cada uno representa una solución potencial a un problema dado. A cada uno de los individuos se les asigna un "valor de aptitud", de acuerdo a qué tan buena sea su solución al problema. Luego los individuos con aptitudes más altas son seleccionados para replicarse, mutarse o "cruzarse" con otros individuos de la población. Esto produce nuevos individuos, los cuales comparten algunas características de cada uno de sus padres. Una nueva población de posibles soluciones es producida seleccionando los mejores individuos de la actual generación. El proceso se repite hasta satisfacer unos criterios de terminación. La idea básica consiste en usar un conjunto de descripciones candidatas denominadas una población y gradualmente mejorar la calidad de esta población, construyendo nuevas descripciones originadas a partir de las partes de las mejores descripciones de la población actual, Go. Estas descripciones generadas forman la siguiente generación G1 y nuevamente las mejores descripciones son recombinadas para formar la próxima generación, G2, hasta que descripciones con suficiente calidad sean encontradas, o no se presente una mejora después de unos criterios dados, como tiempo o un número determinado de generaciones, Gn. 61 Las descripciones candidatas, también llamadas organismos, o individuos, usualmente son cadenas (strings) de símbolos de un alfabeto en particular, el alfabeto binario {0,1}. Por lo general, cada descripción es codificada como una cadena de bits de longitud fija. Esta cadena contiene una subcadena Si por cada atributo Ai y en esta subcadena cada posición representa un valor en el dominio del problema para este atributo. Si un valor pertenece al conjunto Si, su correspondiente bit es 1, de lo contrario 0. Los AG representan un método de búsqueda por medio de un proceso evolutivo artificial, en el cual una población de individuos se modifica en el tiempo, en relación con una función de aptitud, mediante la aplicación de un conjunto de operadores. Los AG se perfilan como una nueva herramienta de solución de problemas de difícil tratamiento por técnicas tradicionales, ya que poseen la capacidad para encontrar un balance entre la explotación y la exploración de soluciones a lo largo de su evolución, garantizando la búsqueda de una respuesta, óptima o cuasi-óptima, para las condiciones particulares del problema, a través de un procedimiento aleatorio masivamente paralelo. En la literatura de los AG [MM96] se describen un gran número de aplicaciones exitosas, pero existen también casos en las cuales se desempeñan pobremente. Si el espacio de búsqueda es bien entendido, los métodos de búsqueda que usan heurísticas bajo un determinado dominio, pueden desempeñarse mejor que un método general, como es un AG. Dada una aplicación en particular, ¿cómo saber si un AG es un buen método para utilizar? No existe una respuesta rigurosa, sin embargo, muchos investigadores comparten la intuición de que si el espacio de búsqueda es grande y se conoce que no es perfectamente plano o unimodal, o si la función de aptitud es ruidosa y si la tarea no requiere un óptimo global a ser encontrado, es decir que es suficiente hallar una buena solución, entonces un AG tiende a ser competitivo frente a otros métodos que usan conocimiento frente a un dominio específico en su 62 procedimiento de búsqueda. Si el espacio de búsqueda es plano o unimodal, un algoritmo de gradiente ascendiente, tal como el de la escalada por la pendiente, puede ser mucho más eficiente que un AG. 2.7.2. Implementación de un AG El desempeño de un AG depende mucho del método que se seleccione para codificar las soluciones candidatas, de los operadores y de la fijación de los parámetros. Como en cualquier método de búsqueda y aprendizaje la forma en la cual las soluciones candidatas son codificadas, es fundamental, debido a que la estructura de datos del cromosoma que representa al individuo define el espacio de soluciones del problema, sobre el cual el AG realiza la búsqueda. La mayoría de las aplicaciones usan cadenas de bits de longitud fija y ordenada. 2.7.2.1. Codificación La codificación binaria es la más utilizada debido a que los primeros trabajos se concentraron en este tipo de codificación [HJ75], y en la práctica se ha tendido a seguir en esta forma de codificación. Además, gran parte de la teoría existente se basa en la codificación de longitud fija y en binario. Aunque mucha de la teoría puede ser extendida para aplicarse a codificaciones no binarias, tales extensiones no han sido bien desarrolladas como la teoría original. Adicionalmente, las heurísticas sobre la fijación de los parámetros, como por ejemplo el porcentaje de cruce y de mutación han sido generalmente desarrollados en el contexto de la codificación binaria. Una de las extensiones de la codificación binaria son los códigos de Gray [BA80, CS88]. Holland [HJ75] ha dado una justificación teórica para usar la codificación binaria. Él ha comparado dos codificaciones con aproximadamente la misma información. La primera con un pequeño número de alelos (valor del bit) en una cadena grande, como por ejemplo una cadena de longitud 100, y la segunda con un gran número 63 de alelos en una cadena corta, como por ejemplo, una cadena decimal de longitud 30. Holland sostiene que la primera forma permite manejar un alto grado de paralelismo implícito, debido a que una instancia de la primera contiene más esquemas que una instancia de la segunda (2100 vs. 1030). Sin embargo, una de las desventajas de la codificación binaria es que puede resultar de difícil manejo en muchos problemas como por ejemplo, en la evolución de pesos en redes neuronales. Para muchas aplicaciones resulta más natural usar un alfabeto de muchos caracteres o de números reales para definir los cromosomas. Como por ejemplo, la representación de muchos caracteres de Kitano en gramáticas para la generación de grafos, la representación de valores reales de Meyer y Packard para un conjunto de condiciones, la representación de valores reales de Montana y Davis para pesos en redes neuronales y la representación de valores reales de Schultz-Kremer para ángulos de torsión en proteínas. Se han realizado varias comparaciones empíricas entre la codificación binaria y las codificaciones con múltiples caracteres o de valores reales en donde se ha mostrado un mejor desempeño de las últimas [JM91]. Pero el desempeño depende mucho del problema y de los detalles del AG a ser utilizado. Hasta el momento no existe una rigurosa guía para predecir cual codificación trabajará mejor. 2.7.2.2. Función de Aptitud Para cada problema que se va a resolver se debe definir una función de aptitud. Dado un cromosoma en particular, la función de aptitud, retornará un valor, el cual se supone que es proporcional a la "utilidad", o a la "habilidad" del individuo que el cromosoma representa. Los cromosomas con aptitudes altas son seleccionados para pasar a la siguiente generación. El cromosoma que representa la solución óptima debe tener el máximo valor de aptitud para el espacio de solución del problema. 64 Las funciones objetivo utilizadas en los algoritmos de agrupamiento tradicionales pueden actuar como la función de aptitud en los AG. Sin embargo, si el agrupamiento óptimo corresponde a un valor mínimo, se deberá transformar el valor de la función objetivo ya que los AG trabajan para maximizar sus valores de aptitud. Adicionalmente, los valores de aptitud en un AG necesitan ser positivos si se va a utilizar selección proporcional a la aptitud. 2.7.2.3. Selección Después de definir el tipo de codificación empleada, la segunda decisión que se debe tomar en un AG es cómo se va a llevar a cabo la selección, es decir, como escoger los individuos en la población para crear la descendencia para la próxima generación. El propósito de la selección es enfatizar en los mejores individuos de la población con el fin de que sus descendientes obtengan una aptitud aún más alta. La selección tiene que ser complementada con el cruce y la mutación, es decir, se realiza un balance entre la explotación y la exploración. Una selección demasiado fuerte lleva a que individuos aptos, altamente subóptimos, se tomen la población, reduciendo la diversidad necesaria para los cambios y progresos posteriores. De una selección demasiado lenta resultará también una evolución lenta. Entre los métodos de selección que se han empleado se encuentran: Selección Proporcional a la aptitud con el "Juego de la Ruleta": Este método fue usado originalmente por Holland, en el cual el valor esperado de reproducción de un individuo, es decir el número de veces que un individuo puede ser seleccionado para reproducirse, es la aptitud del individuo dividida por el promedio de las aptitudes de la población. En éste método se le asigna a cada individuo una proporción de un circulo, en donde el tamaño asignado es proporcional a la aptitud del individuo. La rueda se gira N veces, en donde N es el número de individuos de la población. En cada giro, el individuo marcado por la ruleta es seleccionado como uno de los padres para la próxima 65 generación. Con este método se hace demasiado énfasis a la explotación de cadenas altamente aptas a expensas de la exploración de otras regiones del espacio de búsqueda. Por lo tanto, la evolución depende de la varianza de la aptitud en la población [MM96a]. Después de un número de generaciones, los individuos en la población son muy similares, es decir que la varianza es baja y no existen diferencias entre las aptitudes para realizar la selección, por lo que no se puede hacer más explotación, frenando la evolución. Por lo tanto, la tasa de evolución depende de la varianza de las aptitudes de la población. Escalada Sigma: Para sobreponer los problemas presentados con el método anterior, los investigadores en AG han experimentado con varios métodos de "escalamiento", para que los AG resulten menos susceptibles a una convergencia prematura. Un ejemplo es el método de "Escalada Sigma" [FS85]. Al comenzar la ejecución, cuando la desviación estándar de las aptitudes es típicamente alta, los individuos más aptos no tendrán desviaciones estándar arriba de la media y por lo tanto no serán seleccionados. De igual manera, en la ejecución cuando la población es por lo general más convergente y la desviación estándar baja, los individuos más aptos permanecerán por fuera, permitiendo continuar la evolución. Elitismo: fue introducida por Kenneth De Jong [DJ75] como una adición a muchos métodos de selección que fuerza a los AG a mantener algún número de los mejores individuos en cada generación. Tales individuos podrían perderse si no son seleccionados para reproducirse, o si son destruidos por cruce o por mutación. Muchos investigadores han encontrado que el elitismo mejora significativamente el desempeño de los AG. Selección por Categoría: Es un método alternativo en donde el propósito es también prevenir una convergencia demasiada rápida. En la versión propuesta por Baker [BJ85], los individuos en la población son ordenados de acuerdo a la aptitud y el valor esperado de cada individuo depende de la categoría, más que 66 de su aptitud absoluta. El descarte de la aptitud absoluta tiene la ventaja de que puede evitar problemas de convergencia prematura y como desventaja es que en algunos casos puede ser importante conocer que un individuo está demasiado lejos en aptitud que su competidor más cercano. Una selección por categoría con elitismo fue usada por Meyer y Packard para evolucionar un conjunto de condiciones, Melanie Mitchell usó un esquema similar para la evolución de un autómata celular. Este método puede ser útil en casos en donde la función de aptitud contiene ruidos, es decir, es una variable aleatoria que posiblemente retorne diferentes valores en diferentes llamadas sobre el mismo individuo. Selección por Torneo: Los métodos proporcionales a la aptitud requieren de dos pasos para la generación de cada población: en un paso se calcula la aptitud media y en el otro se calcula el valor esperado de cada individuo. La selección por torneo es similar a la selección por categorías, pero computacionalmente más eficiente y más tratable para la implementación en paralelo. Se escogen dos individuos aleatoriamente de la población. Un número r es escogido entre 0 y 1. Si r < k, en donde k es un parámetro, por ejemplo, 0.75, se selecciona el individuo más apto de los dos para ser padre, de lo contrario se selecciona el inmediatamente menos apto. Luego los dos son retornados a la población original y pueden ser seleccionados nuevamente. Un análisis de este método fue presentada por Goldberg y Deb [GD91]. Selección de Estado Estacionario: La mayoría de los AG descritos en la literatura han sido "generacionales". En cada generación la nueva población consiste completamente de descendientes formados por los padres de las generaciones anteriores, aunque algunos de estos descendientes puedan ser iguales a sus padres. En algunos esquemas, tal como en el elitismo, varias generaciones se pueden solapar en algún grado, es decir que una porción de la generación anterior es retenida en la nueva población. La fracción de los nuevos individuos en cada generación se denomina "brecha generacional". En la selección de estado estacionario, solamente unos pocos individuos son 67 remplazados en cada generación: usualmente un pequeño número de los individuos menos aptos son remplazados por descendientes que resultan de cruce y mutación de los individuos más aptos. Este método es a menudo usado en la evolución de sistemas basados en reglas, como por ejemplo, en sistemas clasificadores. Este método ha sido analizado por De Jong y Sarma [DS93]. 2.7.2.4. Operadores Genéticos La tercera decisión que se debe tomar en la implementación de un AG es cuáles operadores genéticos se van a utilizar. Esta decisión depende principalmente de la estrategia de codificación y de la función de aptitud. Cruce: El cruce en un único punto es la forma más simple y consiste en escoger una posición del cromosoma en forma aleatoria para intercambiar las partes de los dos padres y formar sus dos descendientes. Sin embargo, el cruce en un único punto tiene algunos defectos como el llamado "sesgo posicional" en el que los segmentos que se intercambian entre los padres, siempre contienen los puntos extremos de las cadenas. Otro problema es que los esquemas con longitudes definidas largas tienen una probabilidad alta de destrucción. Para reducir este sesgo, se ha utilizado el cruce de dos puntos los cuales también se seleccionan aleatoriamente en los padres y se intercambian los segmentos entre ellas. El cruce de dos puntos daña con menor probabilidad esquemas con longitudes largas. También se ha experimentado con diferentes números de puntos de cruce, como por ejemplo en un método el número de puntos de cruce para cada par de padres es seleccionado desde una distribución Poisson, en donde la media es una función de la longitud del cromosoma. El éxito o fracaso de un operador de cruce depende de varios factores, en particular de la función objetivo y de la codificación. Mutación: Es aplicada a cada uno de los hijos después del cruce. Aleatoriamente se altera cada gen en una pequeña probabilidad. Opera sobre un 68 sólo individuo, se determina una posición y se invierte con cierta probabilidad. Permite salir de máximos locales para poder buscar una solución mejor. Un punto de vista común en la comunidad de los AG es que el cruce es el principal instrumento de variación e innovación en los AG y que la mutación garantiza que la búsqueda no se fije permanentemente sobre un punto en particular, jugando así un papel secundario. Sin embargo, la apreciación sobre el rol de la mutación en los AG ha crecido ya que se han realizado estudios comparativos sobre la potencia de la mutación frente al cruce, los que han demostrado que ambos presentan la habilidad para "quebrantar" esquemas existentes. Por lo tanto, el éxito de los AG depende de un balance correcto entre la selección de los operadores, la definición de la función de aptitud y de la codificación. 2.7.2.5. Parámetros para los AG La cuarta decisión que se debe tomar en la implementación de un AG consiste en fijar los valores de varios parámetros, tales como: tamaño de la población, rata de cruce y rata de mutación. De Jong [DJ75] realizó un estudio sistemático sobre cómo la variación de los parámetros afectaba un AG. Los experimentos mostraron que el mejor tamaño de la población fue entre 50 y 100 individuos, la mejor tasa de cruce, aproximadamente del 0.6 por parejas de padres y la mejor tasa de mutación, del 0.001 por bit. Estos valores han sido ampliamente usados por la comunidad de los AG. Posteriormente, Grefenstette[GJ86] observó que debido a que los AG pueden ser usados como métodos de optimización, luego los AG pueden utilizarse también para optimizar los valores de los parámetros de otro AG. Schaffer, Caruana, Eshelman y Das [SC89] probaron cerca de un año sobre un amplio rango de combinaciones de valores de parámetros y encontraron que ellos eran independientes del problema y similares a los encontrados por Grefenstette, 69 los cuales fueron: tamaño de la población 20-30, tasa de cruce 0.75 - 0,95 y tasa de mutación 0.005 - 0.01. Sin embargo, se ha observado que los valores de estos parámetros se van adaptando durante el proceso de búsqueda del AG. 2.7.3. Problemas que Tradicionales pueden presentarse con los Algoritmos Genéticos Al comenzar la ejecución, los valores para cada uno de los genes de los diferentes miembros de la población, están distribuidos aleatoriamente. A medida que se realiza la ejecución, ciertos valores para cada uno de los genes, comienzan a predominar. Por lo tanto, a medida que la población converge, el rango de la población más apta, se reduce. Esta reducción puede conducir, a menudo, a problemas de "convergencia prematura" o de "terminación lenta". Convergencia Prematura: Un problema clásico en los AG es que los genes de los individuos con aptitudes más altas, pueden rápidamente dominar la población, causando una convergencia a un óptimo local. Una vez la población ha convergido, con los AG no existe la posibilidad de buscar una solución mejor. Esto se muestra como una desventaja para aquellos problemas en donde una solución cercana a la óptima no es la más apropiada. Terminación Lenta: Después de muchas generaciones, la población en su mayor parte, deberá haber convergido, pero puede ocurrir de que no se haya localizado un óptimo global. El promedio de las aptitudes deberá ser alta, por lo tanto la diferencia entre las aptitudes de los mejores y el promedio es pequeña. Por consiguiente, existirá un gradiente insuficiente en la función de aptitud para llevar el GA hacia un óptimo. Inhabilidad para enfrentar soluciones no factibles: En los AG idealmente, la representación debe ser tal que solamente las soluciones 70 factibles puedan ser generadas. Pero se supone que la función de codificación de las soluciones candidatas del problema pueden generar cualquier valor y no siempre es sencillo "reparar" cromosomas malos. Métodos para Resolver estos Problemas Los Algoritmos Evolucionarios fueron diseñados para que convergieran en una forma natural, alrededor de un punto óptimo que se encuentra. Pero no siempre se garantiza que sea la solución óptima global del problema. Para evitar este problema, se han desarrollado varias técnicas, tales como: el incremento en la tasa de mutación, o una tasa de mutación adaptativa. Por lo general, la tasa de mutación debe ser alta al final de la ejecución. También un tamaño de población grande o una medida de selección baja, puede ayudar a evitar una convergencia prematura. Además, cuando un algoritmo toma mucho tiempo para converger hacia un óptimo (terminación lenta), este problema puede ser resuelto incrementando la medida de selección. Con respecto a la inhabilidad para enfrentar soluciones no factibles, se propone utilizar el método de Penalización el cual permite restringir las violaciones, dependiendo de la magnitud de la violación. Sin embargo, una penalización que es proporcional al grado de factibilidad, conlleva a la degradación de la función objetivo. Si la penalización es muy grande, existe la posibilidad de que un número muy grande de individuos no puedan ser seleccionados para reproducirse, y los AG se concentrarán en soluciones factibles o cercanas a las factibles. En conclusión, debe existir un compromiso entre la medida de selección, el tamaño de la población y la tasa de mutación para que un algoritmo pueda encontrar buenas soluciones en un tiempo relativamente corto. 71 2.7. 4. Comparación de los Algoritmos Genéticos con otras técnicas de Optimización Existen otras técnicas para resolver problemas de búsqueda y de optimización. Tanto los métodos que se describen a continuación, como los AG no requieren información relacionada con la estructura del espacio de búsqueda, ni con las propiedades de la función de evaluación. Estos métodos son generalmente estocásticos y necesitan utilizar generadores de números aleatorios. Su proceso se realiza haciendo suposiciones sobre en dónde las soluciones más óptimas tienen la probabilidad más alta de ser encontradas en el espacio de búsqueda. La mayoría de las veces estos métodos no garantizan que se encuentra una solución óptima global al problema a resolver. Ellos solamente son capaces de proveer buenas soluciones en una cantidad de tiempo razonable, sin verificar que es la mejor, siendo esto una de las desventajas de éstos métodos. Entre otras técnicas consideradas para la solución de problemas de búsqueda y optimización se tienen: Búsqueda aleatoria: Explora el espacio de búsqueda seleccionando soluciones y evaluando sus aptitudes. Se considera una estrategia no inteligente y se utiliza pocas veces. Sin embargo, cuando se obtiene una solución y no es la óptima, se puede mejorar continuando la ejecución del algoritmo por más tiempo. Teóricamente si el espacio de búsqueda es finito, este método garantiza encontrar la solución óptima, pero en la mayoría de los problemas, explorar todo el espacio de búsqueda toma gran cantidad de tiempo. Escalada por la Máxima Pendiente: Es el método más simple de los que utilizan una clase de gradiente para direccionar la búsqueda. En cada iteración se escoge aleatoriamente una solución, cercana a la solución actual y si la seleccionada mejora la función de aptitud, se guarda. Este método converge a una solución óptima si la función de aptitud del problema es continua y si tiene solamente un pico (unimodal). Si la función es multimodal, el algoritmo termina en el primer pico que encuentre, aún sin ser éste el más alto. Una forma 72 de evitar que termine en un óptimo local consiste en repetir varias veces el proceso, comenzando desde diferentes puntos seleccionados aleatoriamente. Temple Simulado: Este método se originó debido al proceso de formación de cristales en sólidos durante el proceso de enfriamiento. Este método se comporta similar al método de la Escalada por la Máxima Pendiente, pero con la posibilidad de descender, para evitar que se logre un óptimo local. Cuando la temperatura es alta, la probabilidad de modificar la solución es importante y por lo tanto es posible realizar varios movimientos para explorar el espacio de búsqueda. Cuando la temperatura decrece, existe mayor dificultad para descender y el algoritmo trata de escalar desde la última solución encontrada. Cuando la temperatura es baja, se toma la solución actual. Usualmente, el temple simulado comienza con una temperatura alta, la cual decrece exponencialmente. El punto más bajo de enfriamiento, es el mejor. La mayor dificultad de este método consiste en definir una tasa de decrecimiento, para que el comportamiento del algoritmo sea bueno. El método del Temple Simulado mezclado con algunas características de exploración del método de Búsqueda Aleatoria y del método de Máxima Pendiente, conlleva a buenos resultados. El Temple Simulado es uno de los competidores más fuertes de los AG. Ambos se derivan de una analogía con sistemas de evolución natural. Los AG difieren del Temple Simulado en dos principales características: Primero, los AG usan una población basada en selección, mientras el Temple Simulado solamente trabaja con un individuo en cada iteración, pero de otro lado, las iteraciones en el Temple Simulado son mucho más simples y a menudo se ejecutan mucho más rápido. La mayor ventaja de los AG consiste en la habilidad excepcional para ser paralelizado, mientras que el Temple Simulado no gana mucho. Segundo, los AG usan operadores de recombinación, capaces de mezclar buenas características desde diferentes soluciones. 73 De otro lado, el método del Temple Simulado es muy simple de implementar y genera buenos resultados. 2.7. 5. Paralelismo de los Algoritmos Genéticos Una de las principales ventajas de los AG es que permite que sus operaciones se puedan ejecutar en paralelo. Debido a que la evolución natural trata con una población entera y no con individuos particulares, excepto para la fase de selección, durante la cual existe una competencia entre los individuos y en la fase de reproducción, en donde se presentan iteraciones entre los miembros de la población, cualquier otra operación de la población, en particular la evaluación de cada uno de los miembros de la población, pueden hacerse separadamente. Por lo tanto, casi todas las operaciones en los AG son implícitamente paralelas. Los Algoritmos Genéticos Paralelos (AGP) simplemente consisten en distribuir las tareas de un AG en diferentes procesadores. Se ha establecido que la eficiencia de los AG para encontrar una solución óptima, está determinada por el tamaño de la población. Por lo tanto, una población grande requiere de más memoria para ser almacenada. También se ha probado que toma mayor cantidad de tiempo para converger. Si n es el tamaño de la población, la convergencia esperada es nlog(n). Al utilizar computadores en paralelo, no solamente se provee de más espacio de almacenamiento, sino también con el uso de ellos se podrán producir y evaluar más soluciones en una cantidad de tiempo más pequeño. Debido al paralelismo, es posible incrementar el tamaño de la población, reducir el costo computacional y mejorar el desempeño de los AG. Probablemente el primer intento que se hizo para implementar los AG en arquitecturas en paralelo fue en 1981, por John Grefenstette [GJ81]. Los primeros ensayos consistían en un paralelismo global. Esta aproximación trataba por paralelizar explícitamente las tareas paralelas implícitas de los AG secuenciales, por lo tanto la naturaleza de los problemas permanecía invariable. El algoritmo simplemente manejaba una sencilla población en donde cada individuo podía 74 combinarse con cualquiera de los otros, pero la generación de los nuevos hijos y/o su evaluación se hacía en paralelo. La idea básica es que los diferentes procesadores puedan crear nuevos individuos y computar sus aptitudes en paralelo, sin tener que comunicarse con los otros. La evaluación de la población en paralelo es simple de implementar. A cada procesador se le asigna un subconjunto de individuos para ser evaluados. Por ejemplo, en un computador de memoria compartida, los individuos pueden estar almacenados en la memoria, y cada uno de los procesadores puede leer los cromosomas asignados y puede grabar los resultados del cómputo de las aptitudes. Este método solamente supone que los AG trabajan con una generación actualizada de la población. Se necesita además, alguna sincronización entre las generaciones. Generalmente, la mayor parte del tiempo de cómputo en un AG se gasta en la función de evaluación. El tiempo que se gasta en el manejo de los cromosomas durante las fases de selección y recombinación es despreciable. En un computador de memoria distribuida se puede almacenar la población en un procesador "maestro", el cual es responsable de enviar los individuos a los otros procesadores "esclavos". El "maestro", también es responsable por guardar los resultados de la evaluación. Una desventaja de esta implementación es que se pueden presentar cuellos de botella, cuando los esclavos están desocupados y sólo el maestro está trabajando. Pero si se hace un buen uso del procesador maestro, se puede mejorar el factor de balance, distribuyendo dinámicamente los individuos a los procesadores esclavos, cuando ellos terminen sus trabajos. Una segunda clase de AGP consiste en dividir la población en subpoblaciones, y cada una de ellas ejecutarlas en un procesador. El intercambio entre subpoblaciones es posible por medio de un operador de "migración". 75 Se emplea el modelo de islas para mostrar como los AG se comportan como si el mundo fuera constituido por islas que se desarrollarán en forma independiente, unas de las otras. En cada una de las islas, la población es libre de converger hacia un óptimo diferente. El operador de migración permite extraer de las diferentes subpoblaciones las buenas características, para luego mezclarlas. 76 3. Método Propuesto de Agrupamiento con Algoritmos Genéticos 3.1. Justificación Los algoritmos de agrupamiento tienen dos componentes comunes: Una función objetivo, la cual es utilizada para determinar la calidad de un agrupamiento dado y una estrategia de búsqueda para explorar el espacio de todos los posibles agrupamientos. Algunos algoritmos tradicionales de agrupamiento presentan problemas cuando el espacio de búsqueda es grande con respecto al número de dimensiones, o no es métrico, o no es unimodal, o cuando la función objetivo es ruidosa. Muchos investigadores de la comunidad de los Algoritmos Genéticos han encontrado que si el espacio de búsqueda es grande y se conoce que no es perfectamente plano o unimodal, o si la función de aptitud es ruidosa y si la tarea requiere una solución cercana al óptimo global, o un óptimo global a ser encontrado, es decir que es suficiente hallar una buena solución, entonces un AG tiende a ser competitivo frente a otros métodos[MM96]. El objetivo del método que se propone utilizando AG consiste en encontrar un número dado, k, de centroides para realizar la tarea de agrupamiento en una base de datos que se desea particionar. Se utiliza como función de aptitud, el coeficiente de Jaccard [JA88]: sim( T1 ,T2 ) = T ∩T 1 2 T1 ∪ T2 77 La cual se utiliza para encontrar la similitud entre cada uno de los individuos de la población genética con respecto a cada uno de los centroides, y la diferencia entre los diferentes centroides a medida que van evolucionando. Dado que el número de atributos de las semillas y de los individuos es el mismo, la similitud es igual al número de atributos comunes dividida por el número de atributos. 3.2. Descripción del Método Propuesto Se seleccionan de la base de datos, los elementos de la muestra de datos y k registros denominados semillas (centroides potenciales) en forma aleatoria, los cuales evolucionarán por medio de los operadores genéticos, hasta encontrar los k centroides definitivos para la tarea de agrupamiento. Se define el número de iteraciones en cada generación, el número de generaciones, el porcentaje de la población a ser remplazada por cruce, el porcentaje de individuos que se van a mutar y el criterio de terminación. Se define el esquema de codificación para representar los individuos de la población genética y las semillas, y se convierten a sus respectivos cromosomas. De acuerdo al número de generaciones y al número de iteraciones definidas, en cada una de ellas, se evalúa la similitud entre cada uno de los individuos y las semillas, si el individuo es apto (similar), es decir, si el individuo se asemeja más a la semilla que se está analizando, entonces se adiciona su aptitud al acumulador de las aptitudes obtenidas. Luego se encuentra el promedio de las mejores aptitudes y se seleccionan como candidatos a centroides para la siguiente generación, los individuos que obtienen los valores de aptitud más cercanos al promedio y que sean diferentes (sí el individuo coincide como máximo en la mitad menos uno de los atributos) de los otros centroides. 78 A continuación se crean los individuos para la siguiente iteración por medio de los operadores genéticos: Selección: Se selecciona aleatoriamente un porcentaje de individuos que pasan de la población actual a la nueva población. Cruce: Se seleccionan aleatoriamente por el método del juego de la ruleta, un porcentaje de parejas de la población, que se van a cruzar en un punto también aleatorio, para formar los nuevos individuos. Mutar: Se seleccionan aleatoriamente un porcentaje de los individuos de la nueva población y en un punto también aleatorio, se modifica el individuo en un bit. Si Elitismo, el mejor individuo con respecto a cada uno de los centroides actuales, pasan a la nueva población. Al comienzo de cada generación se asigna a la población actual, la población original y al terminar cada iteración se remplazan los centroides actuales por los respectivos mejores individuos. El algoritmo termina cuando la diferencia entre los mejores individuos seleccionados para cada centroide y los centroides actuales, es menor que un umbral definido o cuando se llega al número generaciones definidas. 79 ALGORITMO GENÉTICO DE AGRUPAMIENTO Parámetros: Tampob: Tamaño de la población genética Tamcen: Nro. de centroides Ngen: Nro. de generaciones Niter: Nro. de iteraciones Tamcrom: Tamaño cromosoma Pcruce: Porcentaje de individuos remplazados por cruce Pmut: Porcentaje de individuos que se mutan de la población Nroatrib: Número de atributos Estructuras de Almacenamiento: Cromorig: arreglo de caracteres que contiene en cada posición el cromosoma de cada individuo de la población genética original. Cromopob: arreglo de caracteres que contiene la población genética que se está procesando. Cromonuevo: arreglo de caracteres que contiene la nueva población genética. Aptitud: arreglo numérico que contiene las aptitudes de los individuos de la población, de tamaño tampob. Mejorind: arreglo que contiene los mejores individuos con respecto a cada centroide, de tamaño tamcen. Pob: Datos de la Población genética Cent: Datos de las semillas Variables Numéricas: Máximo valor aptitud: total de atributos total: suma de las tampob aptitudes. promedio: Promedio de las mejores aptitudes nrosim: número de individuos con aptitudes altas. elitismo: Si es igual a 0, se ejecuta el algoritmo sin elitismo Si es igual a 1, se ejecuta con elitismo y el mejor individuo con respecto a cada uno de los centroides, pasa a la nueva población. ncruce: número de individuos que resultan por cruce. nmut: número de individuos que se mutan s: es igual a 0, si el individuo que se crea es legal, 1 de lo contrario. padre1: posición del primer padre seleccionado. padre2: posición del segundo padre seleccionado. r n : punto de cruce seleccionado aleatoriamente. ss: es igual a 1, si el mejorind[c] es diferente a los centroides anteriores. Variables String: nuevo: individuo que se genera. paini,pafin, pbini, pbfin: variables en donde se construyen los individuos que resultan por cruce. p1,p2:cromosomas de los padres seleccionados. 80 Ingresar Parámetros Generar Centroides(Cent, cromcent) Generar Población(Pob, crompob) Para g=1 a ngen haga Para i=1 a tampob haga cromorig[i] = crompob[i]; Para it=1 a niter haga Para c= 1 a tamcen haga mejor= -1, total= 0, mejorind[c]= " " Para i=1 a tampob haga{ aptitud[i]= evaluar_ aptitud(pob, cent, crompob, cromcent, i, c); if (aptitud[i] >mejor){ mejor=aptitud[i]; promedio = promedio + aptitud[i]; nrosim=nrosim + 1;} } promedio=promedio/nrosim; i=1; b=0; while ((i<=tampob) && (b==0)){ if(aptitud[i] < promedio) i=i+1; else{ ss= comparar(pob, cent, crompob, cromcent, i, c); if(ss=1) { mejorind[c]=crompob[i]; b=1;} else i =i +1; } } //fin while } // fin ciclo para c ncruce= pcruce * tampob nmut = pmut * tampob primerhijo = 1 ind =1 s=0 81 Mientras (ind < = tampob ) haga { nuevo= " ", s=0 if (primerhijo){ padre1 = seleccione_padre(aptitud, total) p1= crompob[padre1] padre2= seleccione _ padre(aptitud, total) p2 = crompob[padre2] } if(ncruce > 0){ if (primerhijo) { rn= rand()/(RAND_MAX +1) puntocruce= rn * tamcrom Para m1=1 a m1= puntocruce { paini[m1]= p1[m1] pbini[m1] = p2[m1] } longpaini=m1, longpbini= m1 m2 = 1 Para m1=puntocruce +1 a m1=tamcrom {pafin[m2] = p1[m1] pbfin[m2] = p2[m1] m2 = m2 + 1} nuevo = nuevo + paini (concatenar) nuevo = nuevo + pbfin } else { nuevo = nuevo + pbini nuevo = nuevo + pafin } } else { if (primerhijo) nuevo = crompob[padre1] else nuevo = crompob[padre2] } if(nmut > 0) { puntomut= (rand( ) + 1)% tamcrom mutar(nuevo[puntomut]) } s=evaluar(nuevo) //evalúa si nuevo es legal if (s = 0){ cromonuevo[ind] = nuevo ind = ind +1 nmut = nmut - 1 ncruce = ncruce - 1 primerhijo = !primerhijo } //fin ciclo mientras 82 Pa Para i=1 a tampob haga crompob[i] = cromnuevo[i] if (elitismo) { Para c= 1 a tamcen haga crompob[c] = mejorind[c] } // fin ciclo iteraciones Para c=1 a tamcen haga cromcen[c] = mejorind[c] } // fin ciclo generaciones Procedimiento evaluar_ aptitud(pob, cent, crompob, cromcent, i, c) { - Se convierte el cromosoma del individuo i a los valores correspondientes en cada uno de los atributos. - Se convierte el cromosma de cada uno de los centroides - Se compara la similitud entre el individuo i con respecto a cada uno de los centroides . - Retorna valor de aptitud } //Método de selección proporcional a la aptitud con el juego de la ruleta Procedimiento seleccione_padres(aptitud[tampob], total) { padre = 1 sel= rand( )/RAND_MAX * total Mientras (sel > aptitud[padre]) { sel = sel - aptitud[padre] padre= padre + 1 } retorne padre } Procedimiento comparar(pob, cent, crompob, cromcent, i, c) { - s=1 - Se convierte el cromosoma del individuo i a los valores correspondientes en cada uno de los atributos. - Para c1= 1 a c-1 haga{ . Convertir el cromosma del centroide c1 . Se compara la similitud entre cada atributo del individuo i con el atributo del centroide c1, si son iguales la aptitud se incrementa en 1. . Si la similitud entre el individuo i y el centroide c1 es mayor al total de atributos sobre 2 menos 1, asignar a s el valor de cero } Retornar } s Figura 7. Algoritmo Genético para Agrupamiento 83 3.3. Análisis de la Complejidad del Algoritmo El método aquí desarrollado, se diferencia de algunos otros métodos de agrupamiento, en que no requiere de matrices para almacenar las distancias o las similitudes entre los objetos de la base de datos, lo que hace que éste resulte ser más eficiente en el uso del espacio. En cuanto a la eficiencia del tiempo, se observa que los mejores centroides fueron encontrados con pocas generaciones, por lo tanto, se puede considerar que también es eficiente con respecto a este recurso computacional. El orden de magnitud del algoritmo es O(k x g x i x (n k)), en donde, k, es el número de centroides, g es el número de generaciones, e i es el número de iteraciones y n tamaño de la población genética. Como k, g e i son mucho menores que n, se puede deducir que el algoritmo desarrollado tiende a un orden de magnitud O(n), lo cual es una ganancia en comparación con otros métodos de agrupamiento, como los jerárquicos que son por lo general de órdenes de magnitud O(n2) [GR98b]. 3.4. Prueba del Algoritmo con la base de datos de Votación Esta base de datos fue obtenida de UCI Machine Learning Repository [UCI97]. La fuente de esta base de datos es el Almanaque Trimestral del Congreso de los Estados Unidos: "98th Congress 2nd session 1984" y es utilizada para probar nuevos métodos [CQA85]. La base de datos contiene 16 atributos categóricos y la clase (republicanos y demócratas). Estos atributos están relacionados con la opinión que tienen los congresistas sobre varios aspectos. Los atributos son: 1. Apoyo a los infantes y a los minusválidos 2. Proyectos hídricos de costo compartido 3. Presupuesto 4. Salud 84 5. Asistencia al Salvador 6. Grupos religiosos en las escuelas 7. Apoyo a pruebas satelitales 8. Asistencia a los contra nicaragüenses 9. Misiles MX 10. Inmigración 11. Reducción de empresas de combustible 12. Gastos en educación 13. Gastos en Justicia 14. Políticas ante el delito 15. Exportaciones Libres de impuestos 16. Exportaciones a Sur África 17. Clase del congresista (republicano, demócrata) Los valores de los atributos son: 'y', 'n', '?'. La '?' indica que la respuesta no es desconocida, sino que no es, ni 'y', ni 'n'. El tamaño de la muestra es de 435 registros. (168 republicanos y 267 demócratas) Definición del cromosoma: Se define un cromosoma de 16 bits de longitud, en donde 0 indica 'n', 1 indica `s`y 2 indica '?'. Semillas Iniciales: Seleccionadas de la base de datos en forma aleatoria. Nro. Datos Cromosoma 1. ynynnyyyyyynnyyy 1010011111100111 2. nynyyynnnynyyynn 0101110001011100 3. nyynnnnyyyynnnyy 0110000111100011 85 Ejecución del Algoritmo con tres de centroides Se conoce que la base de datos de los congresistas se particiona en dos grupos, el de los republicanos y el de los demócratas. Para probar el algoritmo, éste se ejecutó tomando inicialmente 3 semillas con el fin de encontrar 3 grupos. Se realizaron varias pruebas sobre una muestra de la población de tamaño 50 seleccionada aleatoriamente y sobre toda la base de datos, para diferentes números de generaciones, iteraciones y porcentajes de cruce. Resultados obtenidos para la Muestra Los centroides C1, C2 , C3 encontrados en diferentes ejecuciones del programa con elitismo, se muestran en la tabla 2, en donde Ng (número de generaciones), Ni (número de iteraciones), Pc (porcentaje de individuos que se cruzan de la población en cada iteración), Pm (porcentaje de individuos que se mutan en cada iteración). Tabla 2. Resultados con elitismo para la muestra de Votación 3 centroides Ng Ni Pc Pm 20 5 0.2 0.1 10 5 0.2 0.1 5 10 0.1 0.1 5 4 0.1 0.1 5 5 0.2 0.1 Centroides Encontrados C1= 1110001110100011 C2= 0101110001011202 C3= 0222222222222122 C1= 1110001110100011 C2= 0101110001011202 C3= C1= 1110001110100011 C2= 0101110001011202 C3= 0222222222222122 C1= 1110001110100011 C2= 0101110001011202 C3= 0222222222222122 C1= 1110001110100011 C2= 0101110001011202 C3= 0222222222222122 yyynnnyyynynnnyy nynyyynnnynyy?n? n????????????y?? yyynnnyyynynnnyy nynyyynnnynyy?n? yyynnnyyynynnnyy nynyyynnnynyy?n? n????????????y?? yyynnnyyynynnnyy nynyyynnnynyy?n? n????????????y?? yyynnnyyynynnnyy nynyyynnnynyy?n? n????????????y?? De acuerdo a los resultados, se puede observar que en algunos casos, sólo se encuentran dos centroides los cuales permiten particionar la base de datos en dos grupos, en donde C1 agruparía los demócratas, ya que éstos en la mayoría de sus atributos coinciden con los de C1. De la misma manera, los que se encuentran en la base de datos en el grupo de los republicanos coinciden con los atributos de C2.. Para el caso en donde se obtuvieron los tres centroides, la base de datos se 86 particionaría en tres grupos, el centroide C1 agruparía los demócratas, el centroide C2 los republicanos y el centroide C3 los que en la mayoría de sus respuestas no responden. La tabla 3 muestra los resultados de la ejecución del algoritmo con elitismo, para 2 centroides. En este caso de las ejecuciones con dos centroides y con elitismo, los centroides obtenidos fueron casi siempre los mismos. Dichos centroides permiten clasificar la base de datos en los dos grupos. Los centroides de mejor calidad, es decir, los que presentan mayor diferencia, se encontraron en 5 generaciones y 10 iteraciones, ya que de los 16 atributos, los dos centroides sólo tienen 1 atributo en común. Tabla 3. Resultados para la muestra de Votación con dos centroides Ng Ni Pc Pm Centroides Encontrados 20 10 0.2 0.1 10 5 0.2 0.1 5 10 0.1 0.1 5 5 0.2 0.1 C1= 1110001110100012 yyynnnyyynynnny? C2= 0101110001011102 nynyyynnnynyyyn? 5 4 0.1 0.1 C1= 1110001110000022 yyynnnyyynnnnn?? C2= 0101110000011102 nynyyynnnnnyyyn? C1= 1110001110000022 C2= 0101110000011102 C1= 1110001110000022 C2= 0101110000011102 C1= 1110001110100012 C2= 0101110001011110 yyynnnyyynnnnn?? nynyyynnnnnyyyn? yyynnnyyynnnnn?? nynyyynnnnnyyyn? yyynnnyyynynnny? nynyyynnnynyyyyn Resultados obtenidos para la base de datos Se ejecutó también el programa teniendo en cuenta los 435 registros de la base de datos y con dos centroides. La tabla 4 muestra los resultados de diferentes ejecuciones con elitismo. 87 Tabla 4. Resultados para la base de Votación con dos centroides Ng Ni Pc Pm Centroides Encontrados 20 5 0.2 0.1 10 5 0.4 0.1 10 5 0.2 0.1 5 10 0.1 0.1 C1= 0110001110001022 nyynnnyyynnnyn?? C2= 0101110000001121 nynyyynnnnnnyy?y 5 4 0.1 0.1 C1= 0110001110001022 nyynnnyyynnnyn?? C2= 0101110000001121 nynyyynnnnnnyy?y C1= 1010011111100111 C2= 0101110000011102 C1= 1110001110000022 C2= 0101110000011102 C1= 1110001110000022 C2= 0101110000011102 ynynnyyyyyynnyyy nynyyynnnnnyyyn? yyynnnyyynnnnn?? nynyyynnnnnyyyn? yyynnnyyynnnnn?? nynyyynnnnnyyyn? Resultados de las pruebas sin elitismo La tabla 5 muestra los resultados de diferentes ejecuciones sin elitismo. Como se observa en ellas, los centroides obtenidos no agrupan correctamente los elementos de la base de datos de votación. Tabla 5. Resultados para la base de Votación con tres centroides sin elitismo Ng Ni Pc Pm Centroides Encontrados 20 5 0.2 0.1 C1= 0222222222122022 n?????????y??n?? C2= 0101112200221222 ynyyy??nn??y??? C 3= 10 5 0..2 0.1 C1= 2022222212220222 ?n??????y???n??? C2= 1201111100012122 n?yyyyyynnny?y?? C3= 1010110220122211 ynynyyn??ny???yy 5 10 0.1 0.1 C1= 2222222202222222 ????????n??????? C 2= C 3= 5 4 0.1 0.1 C1= 2222222222222022 ?????????????n?? C2= 0210110100100002 n?ynyynynnynnnn? C3= 1210001010222222 y?ynnnynyn?????? 88 Análisis de Resultados A partir de los centroides C1 y C2 obtenidos cuando se ejecuta el algoritmo con elitismo para 5 generaciones y 10 iteraciones, se clasificaron los 435 elementos de la base de datos, en donde C1 es el centroide para el grupo de los demócratas y C2 para el grupo de los republicanos. De los 267 demócratas, 8 no clasificaron en este grupo, es decir que alrededor del 3% de los demócratas no clasifican en éste grupo y sólo 1 de los republicanos tampoco clasifica en el grupo correspondiente. En los métodos de agrupamiento tradicionales se identifican 2 grupos, uno que contiene un gran número de republicanos y el otro los demócratas. Sin embargo, en el grupo de los republicanos, en los métodos tradicionales de agrupamiento jerárquico, alrededor del 25% de los miembros son demócratas[GR98b]. También se pueden deducir ciertas características que presentan cada uno de los dos grupos. Como por ejemplo, la mayoría de los demócratas no están de acuerdo con apoyar al Salvador, o con los grupos religiosos en las escuelas, pero si con ayudar a los infantes y minusválidos, asistencia a los contra nicaragüenses, apoyar las exportaciones libres de impuestos, entre otros. Mientras que la mayoría de los republicanos no están de acuerdo como por ejemplo, en políticas de apoyo los infantes y minusválidos, con pruebas anti-mísiles mx, la inmigración o las exportaciones libres de impuestos, pero si apoyan como por ejemplo, las políticas para evitar el crimen y las exportaciones a Sur África. 3.5. Prueba del algoritmo genético con la base de datos IRIS Esta base de datos fue creada por R.A. Fisher en 1936 [FR50] se utiliza con frecuencia en el área de Aprendizaje de Máquina y de Reconocimiento de Patrones para validar nuevos métodos. Cada elemento de la base de datos consta de 4 atributos o características de una flor. También esta base de datos fue obtenida de [UCI97]. 89 El conjunto de datos se particiona en tres clases (setosa, versicolor, virginica) de 50 elementos cada uno, en donde cada clase se refiere a un tipo de planta Iris. Una clase es linealmente independiente de las otras dos y otra clase no es linealmente independiente de las otras. Los atributos son Valor Min Valor Max Longitud sépalo: 4.3 7.9 cms Ancho sépalo 2.0 4.4 cms. Longitud pétalo 1.0 6.9 cms. Ancho pétalo 0.1 2.5 cms. Definición del cromosoma: Para cada atributo se pretende encontrar el mj que satisfaga [GCH97]: 2mj -1 < (bj –aj)x10Precision < 2 mj –1 en donde, bj: es el valor máximo del dominio del atributo j aj: es el valor mínimo del domino del atributo j Precisión: número de cifras decimales. mj: longitud esperada de la cadena binaria que representará al atributo j. En esta base de datos los valores de los atributos sólo poseen una cifra decimal, lo que indica una precisión de 1, por lo tanto el número de bits requerido para cada atributo es: (7.9 - 4.3) *10 = 36 25 < 36 ≤ 26 por lo tanto m1= 6 (4.4. - 2.0)*10 = 24 24 < 24 ≤ 25 (6.9 - 1.0)*10 = 59 (2.5 - 0.1)*10 = 24 m2= 5 5 6 m3 =6 4 5 m4=5 2 < 59 ≤ 2 2 < 24 ≤ 2 Se define entonces, una longitud de 22 bits para el cromosoma total. 90 Semillas Iniciales Se definen inicialmente 3 semillas extraídas aleatoriamente de la base de datos original: Nro. Longitud Ancho sépalo sépalo Longitud Ancho pétalo pétalo Cromosoma de las Semillas 1. 5.2 3.4 1.4 0.2 010000 10010 000100 00001 2. 6.4 2.9 4.3 1.3 100100 01011 100011 10001 3. 7.7 2.8 6.7 2.0 111100 01010 111101 11001 Prueba del Algoritmo con la Base de Datos Iris En la tabla 6 se muestran los resultados de ejecutar el programa con toda la base de datos Iris (150 instancias). Tabla 6. Resultados para la BD Iris 3 centroides Ng Ni Pc Pm 20 5 0.1 0.1 10 5 0.1 0.1 5 10 0.1 5 10 5 3 Centroides Encontrados C1= 4.8 C2= 6.6 C3= 7.7 C1= 4.8 C2= 6.6 C3= 7.7 3.0 2.9 2.6 3.0 2.9 3.8 1.4 4.6 6.7 1.4 4.6 6.7 0.3 1.4 2.3 0.2 1.4 2.2 0.1 C1= 4.9 C2= 5.6 C3= 7.7 3.0 2.9 2.6 1.4 0.2 3.6 1.4 6.7 2.0 0.2 0.1 0.4 0.1 C1= 4.6 C2= 5.6 C3= 7.7 C1= 4.9 C2= 5.6 C3= 7.7 3.1 2.9 3.8 3.0 2.9 3.8 1.5 3.6 6.7 1.4 3.6 6.7 0.2 1.4 2.0 0.4 1.4 2.2 De acuerdo a cómo se encuentran clasificadas las plantas en la base de datos, el centroide C1 agrupa las plantas que pertenecen a Iris Setosa, el centroide C2 las plantas que pertenecen a Iris Versicolor y el centroide C3 a las plantas Iris Virginica. Los centroides obtenidos en 5 generaciones, 10 iteraciones, porcentaje 91 de cruce de 0.2 y porcentaje de mutación de 0.1 son los que presentan más diferencia. Clasificación por la función lineal discriminante En [MD76] se presenta la forma de clasificar una nueva observación x de acuerdo a un conjunto de reglas de clasificación obtenidas por la función lineal discriminante.. Para el caso de la base de datos Iris, se muestra cómo para tres especies y cuatro variables, las dos funciones linealmente independientes son: W12 = -3.2456x1 - 3.3907x2 + 7.5530x3 + 14.6358x4 - 31.5226 W13 = -11.0759x1 - 19.9161x2 + 29.1874 x3 + 38.4608x4 - 18.0933 En donde, x1 es la longitud del sépalo, x2 el ancho del sépalo, x3 la longitud del pétalo y x4 el ancho del pétalo. Además, se obtienen las siguientes reglas de clasificación: Virginica: Si W12 >0 y W13 >0 Versicolor: Si W12 < 0 y W23 =W13 - W12 >0 Setosa: Si W13 < 0 y W23 <0 También se muestra en [MD76] cómo las tres clases de plantas son diferentes en todos sus atributos, a excepción del ancho del sépalo, el cual no se diferencia entre las clases virginica y versicolor. 92 Conclusiones - El método evolutivo que se propuso puede ser utilizado en espacios métricos y no métricos, es decir, en problemas con cualquier tipo de atributos, a diferencia de la mayoría de los métodos conocidos, los cuales están restringidos a atributos numéricos o a atributos categóricos, pero no a ambos. - Este método es Particional y podría implementarse en forma serial o en forma simultánea, obteniéndose centroides de mejor calidad. Cuando se ejecuta el algoritmo en forma serial, o sea, tratándose las semillas en forma independiente, hay que realizar varias ejecuciones para seleccionar los centroides con promedios de aptitud más altos. - Es Intrínseco, es decir, los grupos son determinados usando solamente la información del dato, lo que indica un mínimo requerimiento de conocimiento del dominio para determinar parámetros de entrada. - Los centroides son posibles de estimar, cuando se ejecuta el algoritmo con elitismo. Cuando se ejecuta sin elitismo, no converge el algoritmo. - Aunque se debe especificar como parámetro de entrada, el número de centroides a encontrar, el algoritmo puede determinar el número apropiado de dichos centroides, como se mostró en la base de datos de votación para el caso de 3 centroides, en el cual se encontraron dos centroides, el de los republicanos y el de los demócratas. - Debido a que no existe un método para determinar cuáles valores más apropiados, para los parámetros que se definen en un algoritmo genético, se hace necesario realizar varias ejecuciones para encontrar como en este caso, los centroides más representativos del conjunto de datos. En las pruebas que se realizaron en las bases de datos de votación y de las plantas iris, se 93 encontró que los mejores valores corresponden a 5 generaciones, 10 iteraciones, porcentaje de cruce de 0.2 y 0.1, y porcentaje de mutación de 0.1. 94 Trabajos futuros: Los trabajos futuros están orientados a: La extensión del algoritmo para que sea él mismo el que determine el número de centroides que se necesitan, esto es, que no se predetermine el número de semillas. Descubrimiento de conocimiento en diferentes clases de bases de datos: Minería de Textos (TextMining) y Minería en la Web (Web Mining). Evaluación del desempeño del método frente a grupos de diferentes formas. 95 Glosario de Términos Adaptación: Cualquier cambio en la estructura o función de un organismo que le permite a éste sobrevivir y reproducirse más efectivamente en su entorno. Alelos: Posibles valores de los genes. Cromosoma: Un vector, cadena o solución en un AG. Cruce: Operador genético que se utiliza para crear ciertos individuos de la nueva población, a partir de la mezcla de los cromosomas de dos parientes de la población actual. Elitismo: En AG, es un método de selección de la población genética, en donde los mejores individuos se van conservando a través de todas las generaciones. Genes: Variables de un individuo en un AG Genotipo: Cromosomas codificados. GUI: Interfaz gráfica de usuario KDD: Descubrimiento de conocimiento en bases de datos (Knowledge Discovery in databases) Minería de Datos: Se define también como extracción del conocimiento, descubrimiento de información, cosecha de información o arqueología de datos. Mutación: Modificación aleatoria del cromosoma en un bit. OLAP (On-Line Analytical Processing): Procesamiento analítico en línea. 96 BIBLIOGRAFÍA [AG98] Agrawal, R., Gehrke, J., Gunopulos, D., Raghavan, P. 1998. Automatic subspace clustering of high dimensional data for data mining applications. In Proc. Of the ACM SIGMOD Conference on Management of Data (SIGMOD 98) pages 94-104. [AH96] Apte, Ch., Hong, J. 1996 Predicting Equity Returns from Securities Data. In Fayyad, U., Piatetsky-Shapiro, G.,Smyth, P., Uthurusamy, R. Editors, Advances in Knowledge Discovery and Data Mining, page 541- 560 AAAI Press, Menlo Park, CA. [AM73] Anderberg, M. R. 1973. Cluster Analysis for Applications. Academic Press, new York. [AM96] Agrawal, R., Mannila, H., Srikant, R., Verkamo A. I. 1996. In Fayyad, U., Piatetsky-Shapiro, G.,Smyth, P., Uthurusamy, R. Editors, Advances in Knowledge Discovery and Data Mining, page 307-328. AAAI Press, Menlo Park, CA. [AM96a] Agrawal, R., Mehta, M., Shafer, J., Srikant, R. 1996. The Quest Data Mining System. In Proc. 2th International Conference on Knowledge Discovery & Data Mining DCBD96, Portland Oregon, August. [BA80] Bethke, A. D. 1980. Genetic Algorithms as Function Optimizers. Ph. D. thesis University of Michigan, Ann Arbor. [BB93] Basley, D., Martin B. R. 1993 An Overview of Genetic Algorithms: Part 1, Fundamentals. U. Computing 15(2) [BG65] Ball, G.H. 1965. "Data Analysis in the Social Sciences: What about the details?". Proc. Of the AFIPS Fall Joint Computer Conference, pp 533-560. [BJ85] Baker, J. E. 1985. Adaptive selection methods for genetic algorithm. In J. J. Grefenstette, ed. Proc. of the first International Conference on Genetic Algorithm and Their Applications, Erlbaum. [BR93] Banfield, J.D., Raftery, A.E. 1993. Model-based Gaussian and non-Gaussian clustering. Biometrics, 49:803-821 September. [BR97] Bayardo, R. 1997. Efficiently mining long patterns from databases. In Proc. Of the ACM SIGMOD Conference on Management of Data. Seattle, Washington. [BS98] Bautista, R., Sanclemente, H. 1998. Descubrimiento de Conocimiento en Bases de Datos Médicas. CLEI 98. Quito. pages 1037-1048. [CH97] Cabena, P., Hadjinian, P., Standler, R., Verhees, J., Zanasi, A. 1997. Discovering Data Mining From Concept to Implementation. Prentice Hall. [CHP88] Cheesman, P. et. al. 1988. "AutoClass: A Bayesian Classification System". Proc fifth International Conference on Machine Learning. Ann Arbor, MI. Pages 54-64. 97 [CQA85] Congressional Quarterly Almanac, 98th Congress, 2nd session 1984, vol. XL: Congressional Quarterly Washington, D.C. 1985 [CS88] Caruana, R. A., Schaffer, J. D. 1988. Representation and hidden bias: Gray vs. binary coding for genetic algorithms. In Proc. Of the 5th International Conference on Machine Learning. Morgan Kaufmann. [CT93] Cercone, N., Tsuchiya, M. 1993. Special Issue on Learning and Discovery in Databases, IEEE Transactions on Knowledge and Data Engineering 5(6), Dec. [CZ74] Calinski, T., Harabasz, J. 1974 A dendrite method for cluster análisis. Communications in statistics, 3(1):1-27. [DB79] Davies, D. L., Bouldin, D. W. 1979. A cluster separation measure. IEEE transactions on pattern analysis and machine intelligence, PAMI-1(2):224-7. [DD77] Defays, D. 1977. An efficient algorithm for a complete link method. The Computer Journal 20:364-366. [DJ75] De Jong, K. A.1975. An Analysis of the behavior of a class of Genetic Adaptive Systems. Ph.D. thesis, University of Michigan, Ann Arbor [DS93] De Jong, K. A., Sarma, J. 1993. Generation gap revisited. In L. D. Whitley, ed. Foundations of Genetic Algorithms 2, Morgan Kaufmann [EB93] Everitt, B. S. 1993. Cluster Analysis. Halsted Press. 3ªed. [EK95] Ester, M., Kriegel, H. P., Xu, X. 1995 Knowledge discovery in Large Spatial Databases: Focusing Techniques for Efficient Class Identification. In Proc 4th Int Symp. on Large Spatial Databases (SSD'95) pages 67-82. Portland, Maine. August [EK96] Ester, M., Kriegel, H. P., Sander, J., Xu, X. 1996. A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases. In Proc. of the 2th Int. Conference on Data Mining KDD'96. pages 226-231. Portland Oregon. August. [FA87] Funk, M., Appel, R.D., Roch, CH., Hochstraser, D., Pellegrini, Ch., Müller, A.F. 1987. Knowledge acquisition in expert system assisted diagnosis: a machine learning approach. In Proc. AIME-87, pages 99-103. Springer Verlag, 1987. [FD83] Funj, G., Stewart, D. W. 1983. Cluster analysis in marketing research: Review and suggestions for application. Journal of Marketing Research, XX:134-148 [FD87] Fisher, D.H. 1987. "Knowledge acquisition via incremental conceptual clustering". Machine Learning 2. pages 139-172. [FP96a] Fayyad, U., Piatetsky-Shapiro, G.,Smyth, P., Uthurusamy, R. Editors, 1996-. Advances in Knowledge Discovery and Data Mining, page 6 AAAI Press, Menlo Park, CA. 98 [FP96b] Fayyad, U., Piatetsky-Shapiro, G.,Smyth, P., Uthurusamy, R. Editors, 1996. Advances in Knowledge Discovery and Data Mining, page 9 AAAI Press, Menlo Park, CA. [FP96c] Fayyad, U., Piatetsky-Shapiro, G.,Smyth, P., Uthurusamy, R. Editors, 1996. Advances in Knowledge Discovery and Data Mining, pages 12-16 AAAI Press, Menlo Park, CA [FPM91] Frawley, W. J.,Piatetsky-Shapiro, G., Matheus, C.J. 1991. Knowledge Discovery in Databases: An Overview. In Knowledge Discovery in Databases, ed. G. Piatetsky-Shapiro and B. Frawley. Cambridge, Mass: AAAi/MIT , Press, 1-27. [FR50] FISHER R.A. 1950. "The uso of multiple measurements in taxonomic problems". Annual Eugenics, 7, part II, 179-188. 136 y en "Contributions to mathematical statistics" Jhon Wiley, New York. [FR98] Fraley, C., Raftery, A.E. 1998. How many clusters? Which cluster method? Answers via model-bases cluster analysis. Technical Report 329, Department of Statistics University of Washington. February. [FS85] Forrest, S. 1985. Scaling Fitnesses in the genetic algorithm. In Documentation for PRISONERS DILEMMA and NORMS Programs. That Use the Genetic Algorithm. Unpublished manuscript [FU95] Fayyad, U.,Uthurusamy, R. (Eds.) 1995. In Proc. of the First International Conference on Knowledge Discovery and Data Mining (KDD'95), AAAI Press. [FU96] Fu, Y. 1996 Discovery of Multiple-level Rules fron Large Databases. Thesis for the degree of Doctor of Philosophy in the School of Computing Science, Simon Fraser University, Canada. [GC85] Gluck M., Corter, J. 1985. Information, uncertainty and the utility of categories. Proc. Of the Seventh Annual Conf. Of the Cognitive Science Society. Pages 283-287. Irvine, CA, 1985. [GCH97] Gen, M., Cheng, R. 1997. Genetic Algorithms and Engineering Design. Ed. John Wiley & Sons, Inc. [GD91] Goldberg, D. E., Deb, K. 1991. A comparative analysis of selection schemes used in genetic algorithms. In G. Rawlins, ed. Foundations of Genetic Algorithm, Morgan Kaufmann. [GFR67] Green, P.E., Frank, R. E., Robinson, P. J. 1967 Cluster analysis in test market selection. Management Science, 13(8). Pages 387-400 serie B. [GJ79] Garey, M. R., Jonson, D. S. 1979. Computers and Intractability: A Guide to Theory of NP-Completeness. W. H. Freeman and Company. 99 [GJ81] Grefenstette, J. J. 1981. Parallel adaptive algorithms for function optimization. Technical Report CS-81-19. Vanderbilt University. Nashville. T.N. [GJ86] Grefenstette, J. J. 1986. Optimization of control parameters for genetic algorithms. IEEE Transactions on Systems, Man and Cybernetics 16, no. 1:122-128 [GKR97] Gibson, D., Kleiberg, J., Raghavan, P. 1997. Two algorithms for nearest-neighbor search in high dimensions. In Proc. Of the 29th ACM Symposium on Theory of Computing (STOC 97) [GR98a] Guha, S., Rastogi, R., SMI, . 1998. CURE: An efficient clustering algorithm for large databases. In Proc. ACM SIGMOD Int. Conference Management of Data. ACM Press. New York pages 73-84. [GR98b] Guha, S., Rastogi, R., SMI K. 1998. ROCK: An Robust Clustering Algorithm for Categorical Attributes. University Stanford, CA 94305. [GS87] Glymour, C., Scheines, R., Spirtes, P., Kelly, K. 1987. Discovering Causal Structure. New York: Academic Press. [GT85] Gonzalez, T. F. 1985. Clustering to minimize the maximum intercluster distance. Theorical Computer Science, 38:293-306. [HC92] Han, J., Cai, Y., Cercone N. 1992. Knowledge Discovery in Databases: An Attribute-Oriented Approach. In Proc, 18th International Conference on Very Large Databases, Vancouver, Canada, August. [HD96] Heckerman, D. 1996. Bayesian Networks for Knowledge Discovery. In Fayyad, U., Piatetsky-Shapiro, G.,Smyth, P., Uthurusamy, R. Editors, Advances in Knowledge Discovery and Data Mining, page 273-305. AAAI Press, Menlo Park, CA. [HF71] Hodson, F. R. 1971. Numerical topology and prehistoric archaeology. In F. R. Hodson, D. G. Kendall and P. A. Tautu, editors, Mathematics in the Archaeological and Historical Sciences. University Press, Edinburgh. [HF96] Han, J., Fu, Y. Wang, W., Chiang, J., Gong, W., Koperski, K., Li, D., Lu, Y., Rajan, A. Stefanovic, N., Xia, B., Zaiane, O. 1996. DBMiner: A System for Mining Knowledge in Large Relational Databases. In Proc, 2th International Conference on Knowledge Discovery & Data Mining DCBD96, Portland Oregon, August. [HJ75] Holland, J. H. 1975. Adaptation in natural artificial systems. University of Michigan Press, Ann Arbor [HP99] Hirota, K., Pedrycz, W. 1999. Fuzzy Computing for Data Mining. In Proc. of the IEEE. Vol. 87 Nro. 9 September 1999 pages 1575 100 [HV00] Hernández, Jesús A., Vélez T. Ana C. 2000. Solución de Problemas de Clustering con Algoritmos Genéticos. Revista DYNA. Facultad de Minas Universidad Nacional de Colombia sede Medellín (en evaluación). Diciembre 2000 [IO91] Inmon, W. H.,Osterfelt, S. 1991. Understanding Data Pattern Processing: The Key to Competitive Advantage. Wellesley, mass: QED Technical publishing Group. [IV96] Imielinski, T., Virmani, A., Abdulghani, A. DataMine: Application Programming Interface and Query Language for Database Mining. In Proc, 2th International Conference on Knowledge Discovery & Data Mining DCBD96, Portland Oregon, August. [JA88] Jain, A. K., et al. 1988. Algorithms for Clustering Data. Englewood Cliffs, NJ: Prentice-Hall . [JD88] Jain, A. K., Dubes, R. C. 1988. Algorithms for Clustering Data. Englewood Cliffs, NJ: Prentice-Hall. [JM91] Janikouw, C. Z., Michalewwicz, Z. 1991. An experimental comp ration of binary and floating point representation in genetic algorithms. In R. K. Belew and L. B. Booker, eds. Roc. of the 4th Conference on Genetic Algorithm , Morgan Kaufmann [JW92] Johnson, R.A., Wichern, D.W. 1992. Applied Multivariate Statistical Analysis. Prentice Hall. New Jersey. 3ª ed. [KE66] Kendall, M.G. Discrimination and Classification. In P.R. Krishnaiah, editor. Multivariate Analysis. Pages 165-185. Academic Press New York. [KD89] Kleni, R. W., Dubes, R. C. 1989. Experiments in projection and clustering by simulated annealing. Pattern Recognition, 22(2):213-220. [KH99] Karypis, G., Han, E., Kumar, V. 1999. Chamaleon: Hierarchical Clustering Using Dynamic Modeling. IEEE Computer. Pages 68-75. August [KK98] Karypis, G., Kumar, V. 1998. hMetis 1.5: A Hipergraph Partitioning Package. Tech. Report Depto. Of Computer Science. U. of Minnesota. http://winter.cs.umn.edu/~karypis/metis [KR90] Kaufman, L., Rousseeuw, P. J. 1990. Finding Groups in Data: An Introduction to Cluster Analysis. John Wiley & Sons, Inc. [LK98] Lin, D. I., Kedem, Z. M., Pincer . 1998. search: A new algorithm for discovering the maximum frequent sets. In Proc of the 6th Int. Conference on Extending Database. Technology (EDBT), Valencia, Spain [LM87]Lebowitz, M. 1987. "Experiments with incremental concept formation: UNIMEM". Machine Learning, 2. pages 103-138. 101 [LVL92] Levrat, E., Bombardier, V., Lamotte, M., Bremont, J. 1992. Multi-level image segmentation using fuzzy clustering and local membership variations detection. In IEEE International Conference on Fuzzy Systems, pages 221-228. IEEE, New York. [M99] Conference Data Mining Technology M99. 1999. SAS Institute, Inc. Cary North Carolina. Septiembre. [MD76] Morrison, D. 1976. Multivariate Statistical Methods. McGraw Hill [ME69] Mayr, E. 1969. Principles of Systematic Zoology. McGraw Hill, New York. [MJ67] MacQueen J. 1967. Some methods for classification and analysis of multivariate observations. Proc. 5th Berkeley Symposium, 1: 281-297 [MM96] Mitchell Melanie. 1996. An Introduction to Genetic Algorithm. Mit Press. Cambridge, Massachusetts. [MM96a] Mitchell Melanie. 1996. An Introduction to Genetic Algorithm. Mit Press. Cambridge, Massachusetts, page 167. [MM98] Millán, M. E., Machuca, F. 1998. Una eficiente arquitectura relacional para el descubrimiento de conocimiento en Bases de Datos voluminosas. CLEI 98. Quito. pages. 1049-1059. [MS83] Michalski R., Stepp, R.E. 1983. "Learning from observation: conceptual clustering", In Machine Learning: An Artificial Intelligence Approach, R. Michalski, J. Carbonell and T. Michelln. Ed. Pages 331-364, Tioga Press, Palo Alto, CA. [NH94] Ng, R., Han, J. 1994. Efficient and effective clustering method for spatial data mining. In Proc 1994 Int. Conference Very Large Databases. Pages 144-155. Santiago, Chile. September. [PBK96] Piatetsky-Shapiro G., Brachman R., Khabaza T., Kloesgen W. And Simoudis E., An Overview of Issues in Developing Industrial Data Mining and Knowledge Discovery Applications. In Proceedings Second International Conference on Knowledge Discovery & Data Mining DCBD96, Portland, Oregon, Agosto 1996. [PC93] Parsaye, K., Chignell, M. 1993. Intelligent Database Tools & Applications. New York: John Wiley. [PLB69] Pilowski, I., Levine, S., Boulton D.M. 1969. The classification of depression by numerical taxonomy. The British Journal of Psychiatry 115. pages 937-945. [PN90] Packard, N. H. 1990. A genetic learning algorithm for the analysis of complex data. Complex Systems 4, no. 5 pages 543-572. Citado en [MM96] [PS91] Piatetsky - Shapiro, G., Frawley, W. (Eds.) 1991. Knowledge Discovery in Databases. MIT Press. 102 [PS92] Piatetsky - Shapiro, G. (Ed.) 1992. Special issue on Knowledge Discovery in Databases and Knowledge databases. International Journal of Intelligent Systems 7:7, September [PS94] Piatetsky - Shapiro, G., Matheus, C., Smyth, P., Uthurusamy, R.1994. KDD-93: Progress and Challenges in Knowledge Discovery in Databases. AI Magazine, 15(3): 77-87. [PS95] Piatetsky - Shapiro, G. 1995. Knowledge Discovery in Personal Data versus Privacy: A Mini-Symposium IEEE Expert. Forthcoming. [PW97]Pedryecs, W. 1997. Computational Intelligence: An Introduction. Boca Raton, FL:CRC Press, 1997. [RE92] ReMind 1992. ReMind Developer's Reference Manual. Boston, Mass.:Cognitive Systems, Inc. [RJ89] Rissanen, J. 1989. Stochastic Complexity in Statistical Inquiry. World Scientific Publ. Co. [SC89] Schaffer, J. D., Caruana, R. A., Eshelman, L. J., Das, R. 1989. An study of control parameters, affecting online performance of genetic algorithms for function optimization. In J. D. Shaffer, ed. Proc. Of the 3th International Conference on Genetic Algorithm, Morgan Kaufmann. [SE96] Simoudis Evangelos. 1996. Reality Check for Data Mining. In Intelligent Systems & Their Applications. IEEE Expert. October pages 30 - 33. [SG61] Simpson, G.G. 1961. principles of Animal Taxonomy. Columbia University Press, New York [SM81] Symons, M. J. 1981. Clustering criteria and multivariate normal mixtures. Biometrics 37:35-43. [SR73] Sibson, R. 1973. Slink: an optimally efficient algorithm for a complete link method. The Computer Journal, 16: pages 30-34. [SS71] Scott, A.J., Symons, M.J. 1971. Clustering methods based on likelihood ratio criteria. Biometrics, 27:387-397. [TC97] Two Crows Corporation. 1997. Data Mining: Products & Markets. A Multi- Client Study [UCI97]UCI Machine Learning Repository. http://www.ics.uci.edu/ mlearn/MLRepository.html. [VE86] Voorhees, E. M. 1986. Implementing agglomerative hierarchic clustering algorithms for use in document retrieval. Information Processing Management, 22(6):465-476. 103 [WI71] Williams, W. T. 1971. Principles of Clustering. Annual Review of Ecology and Systematic, 2.pages 303-326. [WJ63] Ward, J. H. 1963. Hierarchical grouping to optimize an objective function. Journal of the American Statistical Association, 58:236-244. [ZR96] Zhang, T., Ramakrishnan, R.,Livny, M. 1996. BIRCH: an Efficient Data Clustering Method for Very Large Databases. In Proc. 1996 ACM-SIGMOD Int. Conf. Management of Data. Pages 103-114. Montreal, Canada. June [ZZ93] Zytkow, J., Zembowicz, R. 1993. Database Exploration in Search of Regularities. Journal of Intelligent Systems 2:39-81. 104