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

Documentos relacionados