AGRUPACION FRACTAL EN DATA STREAM MINING
Dante Jesús Chavez Abarca
Universidad Nacional de Ingeniería
Resumen:
La presente investigacion presenta una tecnica alternativa de analisis totalmente diferente a las
clásicas técnicas de agrupacion dentro de la mineria de datos, esta nueva tecnica está basada en
patrones ocultos dentro de sistemas complejos que se generan de manera natural por la
interacción de los mismos datos. Además su uso adquiere extrema utilidad en la mineria de flujos
de datos continuos e inagotables conocidos como data streams; para demostrarlo comparamos la
eficiencia de este algoritmo de agrupacion caótico basado en la dimension fractal frente a los
metodos mas efectivos de agrupación dentro de la mineria de datos.
Palabras clave: mineria, datos, fractales, caos, agrupacion, sistemas, complejidad, data streams
CAPITULO I: MARCO TEORICO
1.1. Fundamentos de la Mineria Estadistica de Datos.
La busqueda de estructuras en datos numericos ha tenido una larga historia dentro de la
comunidad estadistica. Entre otros ejemplos de metodologias usadas para la exploracion de datos
en el contexto de mineria de datos podemos incluir correlaciones y regresiones, analisis
discriminante, clasificacion, agrupacion, detencion de outliers, arboles de clasificacion y regresion,
analisis de correspondencia, estimacion de densidad multivariada no parametrica para capturar
baches y crestas, regresion no parametrica, reconocimiento estadistico de patrones, analisis de
datos categoricos, metodos de series de tiempo para tendencias y periodicidad y redes
neuronales artificiales.
Estos metodos han sido desarrollados y tratados historicamente como tecnicas de analisis
confirmatorio con enfasis en su optimalidad estadistica y propiedades asintoticas. En el contexto
de la mineria de datos, donde la mayoria de veces los datos no son recolectados de acuerdo a los
preocedimientos aceptados de muestreo estadistico, las interpretaciones tradicionales como
modelos de probabilidad con enfasis en propiedades estadisticas son inapropiadas.
Sin embargo, muchas de estas metodologias pueden ser reinterpretadas como herramientas
explorativas. Por ejemplo, mientras que un estimador de densidad no parametrico suele
interpretarse como un estimador que converge asintoticamente a una densidad verdadera, como
una herramienta de mineria de datos podemos pensar simplemente que este estimador es un
suavizador que nos ayuda a encontrar bumps y otras propiedades en los datos, donde no
tenemos razon para asumir que existe una unica densidad explicita.
1.2. Analisis de Conglomerados (Cluster Analysis)
Existen muchos metodos para el analisis de conglomerados. Iniciaremos con el mas basico, el
analisis de conglomerados clasicos basados en distancias. Es preciso mostrar que los
agrupamientos tradicionales basados en distancias de un conjunto de datos de tamaño n requiere
calcular las distancias entre puntos. Como hay C2_n pares de puntos, la complejidad
computacional solo al calcular la distancia es de O(n^2). La implicacion es que el agrupamiento
basado en distancias no es adecuado para conjuntos de datos de alta magnitud.
El problema basico de agrupamiento es, que dado una colección de n objetos, cada uno de los
cuales esta descrito por un conjunto de d caracteristicas, derive una division util en un numero de
clases. Tanto el numero de clases y las propiedades de las clases deben determinarse. Nos
interesa hacer esto por diversas razones, incluyendo organizar los datos, determinar la estructura
interna del conjunto de datos, prediccion, entre otras. En general, como no conocemos a priori el
numero de grupos, la utilidad de una esquema de agrupacion particular solo puede medirse por su
calidad, y no existe una medida absoluta de calidad.
Supongamos que nuestros datos son de la forma xik, i=1,...,n y k=1,...,d. Donde i indica el numero
de observaciones y k el conjunto de caracteristicas. Las distacias (o disimilaridades) pueden ser
medidas de diverdad formas. Las metricas mas usadas son:
Distancia Euclidiana
Metrica de Cuadra de Cuidad
Metrica de Canberra
1.2.1. Agrupamiento Jerarquico
El algoritmo de agrupamiento aglomerativo inicia con los grupos C,C2,...,Cn, cada grupo
inicialmente con un solo punto. Encuentra el par cercano Ci y Cj, junta Ci y Cj en Cij, borra Ci y Cj,
y el total de grupos se reducen en uno. Si el numero de grupos es mayor que uno, repite el
conjunto anterior hasta que solo quede un grupo restante.
En el agrupamiento por enlace simple (vecino mas cercano), la distancia se define como el del par
mas cercano de individuos donde consideramos un individuo de cada grupo. Podemos tambien
formar grupos de enlaces completos (vecino mas alejado) donde la distancia entre grupos se
define como el par mas distante, un individuo de cada grupo.
Ejemplo:
Consideremos la siguiente matriz de distancias inicial:
1 2 3 4 5
1 0
2 2 0
3 6 5 0
4 10 9 4 0
5 9 8 5 3 0
La distancia 2 es la minima distancia, entonces unimos a los individuos 1 y 2 en la primera ronda
de aglomeracion. Luego de este enlace simple la matriz quedaria de la siguiente forma:
(1,2) 3 4 5
(1,2) 0
3 5 0
4 9 4 0
5 8 5 3 0
Ahora la distancia 3 es la minima, entonces unimos a los individuos 4 y 5 en la segunda ronda de
aglomeracion. Esto no da la siguiente matriz de distancias por simple enlace:
(1,2) 3 (4,5)
(1,2) 0
3 5 0
(4,5) 8 4 0
En esta matriz, la minima distancia es ahora 4, entonces unimos 3 con (4,5). Esto no lleva a la
penultima matriz de distancia de
(1,2) (3,4,5)
(1,2) 0
(3,4,5) 5 0
El ultimo paso aglomerativo seria unir (1,2) a (3,4,5) y tendriamos el unico grupo (1,2,3,4,5).
La visualizacion de los grupos jeraquicos se hace a traves del siguiente dendograma:
Figura 1. Dendograma resultante del algoritmo de agrupamiento.
En este ejemplo el agrupamiento por enlaces completos obtiene la misma secuencia de
agrupamiento y el mismo dendograma, sin embargo las matrices de distancias intermedias son
diferentes.
Un enfoque alternativo podria ser usar agrupamiento de grupos promedio. La distancia entre
grupos es el promedio de la distancia entre todos los pares de individuos entre los dos grupos.
Tambien existen metodos divisivos de agrupamiento que inician con cada individuo en un grupo
grande y recursivamente separandolos en grupos mas pequeños y multiples hasta que cada
individuo represente un solo grupo.
El problema con el numero de grupos:
Un tema importante es como decidimos el numero de grupos. Un enfoque es maximiza o
minimizar algun criterio. Suponga que g es el numero de grupos y ni es el numero de items en el i-
esimo grupo. Considere
Algunas estrategias de optimizacion son:
• Minimizar traz(W)
• Maximizar |T|/|W|
• Minimizar |W|
• Maximizar traz(BW^-1)
Es importante notar que todos los enfoques mencionados tienen importante requerimientos de
complejidad computacional. El numero de particiones de n individuos en g grupos N(n,g) es por
ejemplo:
N(15,3)=2348701
N(20,4)=45232115810
N(25,8)=690251458953265124
N(100,5)=10^68
1.3. Data Stream Mining
Los recientes avances en tecnologia de hardware han facilitado la habilidad de recolectar datos
continuamente. Transacciones simples del dia a dia como el uso de una tarjeta de credito, un
telefono o buscar en internet nos llevan a un almacenamiento automatizado de datos. De forma
similar, los avances en tecnologias de informacion nos han llevado a grandes flujos de datos entre
redes IP. En muchos casos, estos grandes volumenes de datos pueden ser sometidos a mineria
[ara descubrir informacion interesante y relevante en una gran variedad de aplicaciones. Cuando
el volumen de los datos en cuestion es muy grande, obtenemos los siguientes retos
computacionales y de mineria:
• Con un volumen de datos en aumento, ya no es posible procesar los datos eficientemente
usando pasos multiples. En lugar de eso, uno puede procesar un item a lo mas una sola
vez. Esto nos lleva a restricciones en la implementacion de los algoritmos en cuestion. Asi
los algoritmos de stream mining tipicamente deben ser diseñados de forma que estos
funciones con un solo paso sobre los datos.
• En la mayoria de casos existe un componente temporal inherente al proceso de stream
mining. Esto es debido a que los datos evolucionan con el tiempo. Este comportamiento de
los data streams es conocido como localidad temporal. Entonces, una adaptacion directa
de los algoritmos de mineria de datos de un paso no podrian ser una efectiva solucion a
esta tarea. Los algoritmos de stream mining necesitan ser cuidadosamente diseñados con
un claro enfoque en la evolucion de los datos en cuestion.
Otra caracteristica importante de los data streams es que suelen estar minados en forma
distribuida. Ademas, los procesadores individuales tendrian limitados el procesamiento y la
memoria. Ejemplos de dichos casos incluyen redes de sensores, en el cual es deseable realiazr
procesamiento del data stream en la red con memoria y procesamiento limitados.
1.3.1 Tareas de Data Stream Mining
Los problemas que el Data Stream Mining esta orientado a resulver asi como los retos que tienen
asociados a cada problema son los siguientes:
Agrupacion en Data Streams: El Agrupamiento es un problema estudiado a fondo en la loteratura
de data mining. Sin embargo, es mas dificil adaptar algoritmos de agrupamiento arbitrarios a data
streams debido a las restricciones de un paso en el grupo de datos. Existe una adaptacion del
algoritmo de k-medias el cual usa un particionamiento basado en el conjunto completo de datos.
Este enfoque usa una adaptacion de una tecnica de k-medias con el fin de crear grupos sobre el
data stream en su totalidad. En el contexto de data streams, es mas deseable el determinar
grupos en horizontes especificos definidos por el usuario mas que en el data stream completo.
Clasificacion en Data Streams: El problema de clasificacion es uno de los mas estudiados en el
contexto del data stream mining. El problema de clasificacion se hace mas complicado por la
evolucion del data stream en cuestion. Asi, se necesitan diseñar algoritmos efectivos con la
finalidad de tomar en cuenta la localidad temporal.
Mineria de Patrones Frecuentes: El problema de la mineria de patrones frecuentes ha sido
analizado extensivamente para el caso convencional de datos residentes en discos. En el caso de
data streams, uno desea encontrar la lista de items frecuentes en una intervalo-ventana o en el
data stream entero.
Deteccion de Cambios en Data Streams: Los patrones en un Data Stream evolucionan con el
tiempo. En muchos casos, se desea hacer un seguimiento y analizar la maturaleza de estos
cambios sobre el tiempo. Ademas la evolucion de los data streams tambien puede afectar el
comportamiento de los algoritmos de mineria de datos relacionados ya que los resultados pueden
volverse invalidos a traves del tiempo.
Analisis de Cubos Stream en Streams Multidimensionales: La mayoria de data streams residen en
un espacio multidimensional y en un nivel muy bajo de abstraccion, mientras que la mayoria de
analistas estan interesados en cambios dinamicos de un nivel relativamente alto en algunas
combinaciones de dimensiones. Para descubrir dinamicas de alto nivel y caracteristicas
evolucionarias, uno deseara realizar un procesamiento analitico on-line multi nivel o multi
dimensional (OLAP multidimensional) en data streams. Esta necesidad llama a la investigacion de
nuevas arquitecturas que puedan facilitar este OLAP multidimensional.
Loadshedding en Data Streams: Desde que los data streams son generados por procesos que
son extraños a la aplicación de procesamiento, no es posible controlar el indice de entrada de
flujo. Como resultado, es necesario para el sistema tener la habilidad de ajustarse rapidamente a
variar los indices de procesamiento del flujo entrante. Enfocandose en consultas de agregacion
existen algoritmos que determinan en que puntos en un plan de consulta se debe realizar la carga
de flujo y que cantidad de carga debe ser derramada en cada punto para minimizar el grado de
imprecision en las respuesta de la consulta.
1.3.2. Agrupacion en Mineria de Data Streams
El problema de agrupacion de data streams se define como mantener una buena agrupacion
continua y consistente de la secuencia observada lo mas posible, ussando una cantidad muy
reducida de memoria y tiempo. Los problemas aparecen por los puntos de datos que llegan
continuamente y la necesidad de analizarlos en tiempo real. Estas caracteristicas requieren
agrupamiento incremental, mantener estructuras de agrupamiento que evolucionan con el tiempo.
Ademas, los datos podrian evolucionar continuamente y nuevos grupos podrian aparecer, otros
desaparecer, reflejando la dinamica del flujo. Los Algoritmos de Agrupación en Data Streams se
clasifican por:
• Algoritmos de particion: Contruyen una particion de un conjunto de objetos en k clusters,
que minimizan una fncion objetivo (ejm: las distancias de suma de cuadrados a su
centroide representativo). Ejemplos de estos algoritmos son el k-medias (Farnstrom et al.,
2000), y k-medioides.
• Algoritmos de Micro-Agrupacion: Dividen el proceso de agrupamiento en 2 fases, donde la
primera fase es online y resumen el data stream en modelos locales (micro-grupos) y la
segunda fase genera un modelo de grupo global a partir de los micro-grupo. Ejemplos de
estos algoritmos incluyen el BIRCH (Zhang et al., 1996) y CluStream (Aggarwal et al.,
2003)
• Algoritmos basados en densidad: Estan basados en la conectividad entre regiones y
funciones de densidad. Este tipo de algoritmo encuentra grupos de figuras arbitrarias, por
ejemplo el DBSCAN (Birant y Kut, 2007), y OPTICS (Peter Kriegel et al.,2003);
• Algoritmos basados en rejillas: Se basan en una estructura granular de niveles multiples.
Ven su espacio de instancias como una estructura de rejillas, por ejemplo el STING
(Hinneburg y Keim, 1999);
• Algoritmos basados en modelos: Encuentran el mejor ajuste del modelo a todos los
grupos. Muy bueno para agrupacion conceptual. Ejemplos: COBWEB (Fisher,1987), y
SOM (Kaski y Kohonen, 1994).
CAPITULO II: PLANTEAMIENTO DEL PROBLEMA
2.1. Identificacion y Determinacion del Problema:
2.1.1. Retos de los Técnicas de Agrupacion en Mineria de Datos.
Notamos que desde que los Data Streams imponen naturalmente una restriccion en el diseño de
los algoritmos, se vuelve mas dificil proveer tal flexibilidad en calcular grupos sobre diferentes
tipos de horizones temporales usando algoritmos convencionales. Por ejemplo, una extension
directa del algoritmo de k-medias para data streams podria requerir un mantenimiento simultaneo
de los resultados intermedios de algoritmos de agrupacion sobre todos los horizontes temporales
posibles. Esta carga computacional se incrementa con progresion del data stream y puede
rapidamente convertirse en un cuello de botella para la implementacion en linea. Ademas, en
muchos casos, un analista deseara determinar los grupos en un momento previo en el tiempo, y
comparalo a los grupos actuales. Esto requiere aun mas espacio y se convertira rapidamente
incapaz de llevarse a cabo para data streams.
Como un data stream no puede volver a ser visto fuera del curso del calculo, el algoritmo de
agupamiento necesita mantener una cantidad sustancial de informacion de manera que los
detalles importantes no se pierdan. Por ejemplo, la variacion del k-means es implementada
manteniendo un numero de grupos centrales los cuales cambian o se combinan como paso
necesario para la ejecucion del algoritmo. Este enfoque es riesgoso especialmente cuando las
caracteristicas del data stream varian con el tiempo. Esto es debido a que la cantidad de
informacion mantenida por un k-medias es muy aproximado en granularidad, y una vez que 2
grupos centrales se han unido, no hay forma informativa de partirlos cuando sea necesario por los
cambios en un data stream posteriormente.
Asi un diseño natural para la agrupacion en data streams podria ser separar los procesos en un
componente de micro-agrupacion online y uno de macro-agrupacion offline. El componente online
requiere una proceso muy eficiente para agrupar los estadisticos de resumen apropiados en un
data stream. El componente offline usara estos estadisticos en conjunto con otra ingreso de
usuario con la finalidad de proveer al usuario con un rapido entendimiento de los grupos siempre
que se requiera. Desde que el componente offline requiere solo los estadisticos de resumen como
entrada, este se vuelve bastante eficiente en la practica. Esto nos lleva a los siguientes retos:
• Cual es la naturaleza de la informacion resumida que puede ser guardada eficientemente
en un data stream? Los estadisticos de resumen deben proveer suficiente informacion
temporal y espacial para un proceso de agrupacion offline de horizonte especifico,
mientras que tambien debe tener u proceso de actualizacion eficiente.
• En que momento en el tiempo deberia la informacion de resumen ser guardada en eldisco?
Como un efectivo costo puede ser archuvado entre los requerimientos del almancemianeot
de un proceso periodico y la habilidad de agrupar para un horizonte de tiempo especifico a
un nivel deseado de aproximacion?
• Como pueden ser usados los estadisticos de resumen periodicos para poveer informacion
sobre los grupos y la evolucion respecto a horizontes temporales especificados por el
usuario?
2.2. Formulacion del Problema
2.2.1. Supuesto Principal de Trabajo
Los metodos y algoritmos usados actualmente en minería de datos muestran ser deficientes en el
tiempo de demora, por lo cual será necesario trabajar en el contexto del data stream mining.
2.2.2. Caos,Fractales y Sistemas Complejos
Una vez, la mayoria de personas creian que la geometria de la naturaleza centrada en figuras
simples como lineas, circulos, secciones conicas, poligonos, esferas, superficies cuadraticas y
demas. Por ejemplo, que resultado podria ser mas conveniente que el que dice que un planeta en
nuestro sistema solar se mueve en una orbita eliptica alrededor del sol? Esta ley fue una de las 3
leyes del movimiento planetario propuestas por Johannes Kepler, que fueron basadas en las
observaciones y medidas de Tycho Brahe. Luego, Sir Isaac Newton formuló la ley de cuadrados
inversos para la atracción gravitacional en terminos de una ecuación diferencial y resolvio la
ecuacion. A partir de esto, el obtuvo las leyes de Kepler. En este y otros casos en el que simples
modelos geometricos de la naturaleza probaron su efectividad, estos resultaron en increibles
avances a la ciencia.
Pero muchos objetos en la naturaleza son demasiado complicados e irregulares de manera que
es desesperanzador solo usar los objetos familiares de la geometria clasica para modelarlos. Por
ello, como podriamos modelar montañas y árboles en términos geometricos? Como podemos
describir la infinidad de configuraciones biologicas vistas en plantas y animales? Imagine la
complejidad de las redes de caminos que proveen sangre hacia cada celula en el cuerpo humano.
Imagine tambien las intricadas estructuras arboleadas de pulmones y riñones en el cuerpo.
Asi, el comportamiento dinamico en la naturaleza puede ser complicado e irregular. Como
podriamos siquiera empezar a modelar climas turbulentos y precipitaciones? Cuales son las
matematicas detras de las ondas del corazon y del cerebro vistas en electrocardiogramas o
electroencefalogramas, especialmente cuando ocrurre una fibrilacion espontanea que podria
causar la muerte? Igualmente, Cual es el modelo matematico para el inicio del panico en los
mercados financieros o el comportamiento social?
Los Fractales y el Caos son las herramientas apropiadas para analizar muchas de estas
preguntas. El termino fractal se aplica a configuraciones geometricas estaticas particulares como
una imagen congelada de una cascada. El Caos es un término dinamico usado ara describir estos
tipos de fenomenos como cambios climaticos turbulentos.
Investigaciones sugieren que el caos ocurre en formas ‘buenas’ y ‘malas’ en fisiología. Ha sido
observado que los electrocardiogramas de un gatito tomados antes y despues de darle cocaina,
cambiaron de patrones regulares de picos altos y bajos a patrones altamente irregulares,
posiblemente señalando el inicio de una fibrilación. Por otra parte los electroencefalogramas
muestran cambios de irregularidad e impredictibilidad a patrones mucho mas suaves.
Comunmente, lo que vemos en la naturaleza es una repeticion de patrones a todas las escalas, no
importa que tan pequeñas. Un arbol tiene ramas. Estas ramas tienen ramitas y asi. Teóricamente,
el patron de ramificacion se repite infinitamente a escalas aun mas pequeñas. Lo mismo es verdad
sobre las montañas. Hacer un zoom en la imagen de una montaña muestra que se sigue viendo
como una montaña, y si hacemos mas zoom vemos lo que veriamos en cualquier otra montaña,
no en el sentido determinístico sino en uno general (estadístico) que permite distinguir los tipos de
objetos en las imagenes. Esta es la propiedad de autosimilaridad de los fractales.
Cuando hablamos de fractales, la autosimilaridad es referida como la propiedad de definición.
Siguiendo a Benoit B. Mandelbrot, debemos tomar en cuenta que las fractales deben ser definidas
en terminos de dimension fraccionaria- de ahi el termino fractal. La dimension fraccionaria es un
concepto complicado. Una linea es un objeto unidimensional y un plano es un objeto
bidimensional. Como mostrare mas adelante, si agregamos suficientes torceduras en una linea o
un plano, podemos incrementar la dimensión de su configuración resultante, y la nueva dimensión
es tipicamente fraccional. La coneccion entre dimension fraccional y autosimilaridad es tal que la
forma mas facil de construir un conjunto que tiene dimension fraccional es a traves de la
autosimilaridad. Aun en fractales de mayor complejidad, como los limites del conjunto de
Mandelbrot, donde la verdadera autosimilaridad es ausente, existe casi repeticion de la forma
basica en escalas aun mas pequeñas.
Figura 2: Izquierda, Arbol de Roble. Derecha, Helecho. Ambos son fractales naturales.
El Caos tiene una definicion simple que suele leerse como que es una condicion o estado de
desorden total o confusion. Algunas definiciones refieren que son estados en los que el azar
impera. El uso del término Caos en matematicas es mas restrictivo. A pesar de que no hay una
definicion universal del caos matematico, parece ser por consenso general que todo el caos tiene
una propiedad de impredictabilidad. Esta propiedad de impredictabilidad se conoce como
dependencia sensitiva a las condiciones iniciales. Que para sorpresa de muchos de nosotros no
es lo mismo a decir que es aleatorio. Asi, el caos matematico es una propiedad de sistemas
dinamicos deterministicos. Asi, las fluctuaciones que ocurren cuando el caos existe son
aparentemente aleatorias. Esos valores estas completamente predeterminados por los parametros
de entrada. Pero en la practica nunca tenemos condiciones iniciales precisas. Existen errores,
aunque muy pequeños al medir parametros de entrada. La aparente aleatoriedad de los
resultados de nuestros sistemas dinamicos es debido a grandes errores que se llevan a cabo
cuando el sistema actua caoticamente. Una vez s pensaba que en un sistema deterministico
puede siempre hacer predicciones significativas (como pronosticos confiables del clima), a pesar
de los pequeños errores en medir las condiciones actuales si hubiesemos tenido suficiente
capacidad de calculo computacional. En presencia de caos, esto es falso. Ninguna cantidad de
poder computacional nos podria permitir realiza un pronostico adecuado usando un sistema
matematico que tiene dependencia sensitiva en condiciones iniciales.
Muchas fractales importantes, como los copos de nieve de Koch, el triangulo de Sierpinski, el
viento de Cantor pueden ser generados como atractores de sistemas de funciones iteradas. El
análisis de estaos sistemas de funciones iteradas indicaria una forma de construir operadores
caoticos asociados con estas fractales.
Figura 3: Arriba, Atractor Extraño de Lorenz
Abajo, Diagrama de Feigenbaum para el sis
tema de Rossler mostrando el caos.
Con esto presente y lo comentado en secciones anteriores, surge las siguiente pregunta de
investigacion:
Es posible construir tecnicas de analisis de datos que busquen patrones en sistemas complejos de
forma eficiente y que ademas sean utiles para los casos en que datos se presentan de forma
continua?
2.3. Importancia y Alcances de la Investigación.
Es importante porque en estos tiempos de nuevas tecnologías la parte analítica debe evolucionar
a la par que ya han hecho los sistemas de almacenamiento y produccion de datos. Se sugiere
esto ya que al seguir usando las tecnicas clasicas para resolver problemas y tomar decisiones se
presentan situaciones como por ejemplo la de esperar 3 o 4 días a que cierto algoritmo de
agrupacion se termine de ejecutar sobre petabytes de datos en un area de inteligencia comercial
de cierta corporacion bancaria para recien entonces tomar una decisión, dejando de lado los
ingresos de datos de esos 3 o 4 días laborales en en análisis. En el contexto del data stream
mining, se tendrá siempre la respuesta inmediata, los 7 dias de la semana, los 365 dias del año,
autoactualizables, sin presiones ni teniendo que trabajar horas extras.
Ademas adquiere particular interés porque los problemas de manejo del conocimiento en areas de
sistemas complejos no han sido resueltos efectivamente con las tecnicas clasicas de mineria de
datos.
El lograr crear un marco familiar con las metricas usadas para el analisis de sistemas complejos
impicaria el inicio de investigaciones en las que estadisticos, fisicos y cientificos computacionales
podrian trabajar en equipos multidisciplinarios para el desarrollo de la administracion de datos y el
desarrollo interno del país en términos de investigación.
2.4. Limitaciones de la Investigacion
Debido a que los paradigmas bajo los que trabajan tanto estadisticos, fisicos y cientificos de la
computacion son diferentes es posible que solo un segmento reducido de cada uno de estos
grupos se sienta atraido y llamado a continuar la investigacion en el analisis de datos en el marco
del data stream mining.
Tambien se necesita mayor evidencia de la utilidad del algoritmo de agrupacion fractal presentado
en datos no propios de sistemas complejos. El estudio se limita a probar la efectividad del
algoritmo en datos de sistemas complejos.
CAPITULO III: METODOLOGIA
3.1. Propuesta de Objetivo e Hipótesis
3.1.1 Objetivo
Mostrar la eficiencia de un algoritmo de agrupacion caotico basado en la dimension fractal frente a
las tecnicas clasicas de mineria de datos bajo el contexto de data streams.
3.1.2. Hipótesis de Trabajo
Es posible usar los conceptos de fractales y autosimilaridad a nuestro favor y proyectarlos a un
metodo de agrupacion en data streams de sistemas complejos.
3.2. Tipo y Métodos de Investigación
3.2.1. Tipo de Investigación.
El tipo de investigacion es del tipo empirico-experimental donde basandonos en una hipotesis de
trabajo usaremos una aplicacion especifica para determinar la eficiencia del metodo de agrupacion
fractal de data stream mining respecto a los metodos clasicos de mineria de datos.
3.2.2. Metodologia de la Investigacion.
Este tipo de investigacion es aplicada dado que esta interesada en la aplicación de los
conocimientos de analisis de datos de sistemas complejos mediante la teoria del caos para
resolver problemas de eficiencia presentes en las tecnicas usadas actualmente y con frecuencia.
El aporte metodologico de la presente investigacion es que permite integrar una caracteristica
fundamental presente por naturaleza en las estructuras de datos ingresadas en un flujo continuo
que es el caos el cual no se atribuye a un ruido estocastico sino a ligeras variaciones en los inputs
de experimentaciones que causan resultados completamente diferentes.
Asi mismo, debido a que el caos es una propiedad natural que se presenta en los sistemas
complejos no hay necesidad de tomar supuestos fuertes que no se cumplen en la realidad, ni
asumir una estructura rigida de probabilidad para los flujos constantes de ingreso de datos ya que
en la realidad estos nuevos ingresos de datos pueden generar nuevas agrupaciones, la
fragmentacion e incluso la desaparicion de algunos grupos de datos.
Se realizara la comparacion de la mineria de data streams frente a la mineria estadistica de datos
mediante la evaluacion del desempeño de un algoritmo de este enfoque frente a 2 algoritmos
clasicos de mineria de datos.
3.3. Diseño de Investigación.
3.3.1. Dimension Fractal
No existe una definición definitiva de lo que es fractal, sin embargo podríamos decir que es un
objeto el cual una de las partes esta relacionada de alguna forma con el todo.
Figura 4: Construcción del Triangulo de Sierpinski hasta la iteración #4, una estructura fractal.
Como se ve, existe una relación entre las partes y el todo, es una relación de escala, para este
caso especifico la escala es uniforme y en todas direcciones, existen fractales en las que el
escalamiento es mas rápido para los lados y solo va en direcciones horizontales, estas son las
que se usan en series de tiempo fractales que veremos mas adelante.
La dimensión fractal no necesariamente es un numero entero. Si iteramos el triangulo de
Sierpinski hasta el infinito, tenemos que la dimensión no es 1 ya que no es una linea, pero
tampoco 2 porque no es un plano, sino es un numero entre 1 y 2, es una dimensión
fraccionaria o fractal.
El calculo de la dimensión fractal se puede realizar mediante la formula de la dimensión de
recubrimiento, la idea es de calcular cuantos cuadrados se necesitan para cubrir un objeto
fractal. El ejemplo muestra el calculo para el copo de nieve de Koch, donde es la razón de
cambio de escala y es el numero de cuadrados de lado necesarios.
Figura 5: Pasos de cálculo de la dimensión fractal para el copo de nieve de Koch.
Luego surge una pauta la cual es:
En el limite, el resultado es que viene a ser su dimensión fractal cuya
interpretación varia con el campo de estudio, por ejemplo una dimensión fractal puede
representar desde la rugosidad de la fractura de un metal hasta la variabilidad de un gráfico
financiero.
3.3.2. Agrupacion según la dimension fractal
La idea prinicpal detras del agrupamiento fractal es de agrupar puntos en un grupo de tal manera
que ninguno de los puntos en el grupo cambien la dimension fractal del grupo radicalmente. La
agrupacion fractal tambien combina conectividad, cercanía e informacion de la posicion de los
puntos de datos para alcanzar la maxima calidad de agrupamiento.
Este algoritmo toma como primer paso inicializar un conjunto de grupos, y luego,
incrementalmente agrega puntos a este conjunto. En lo siguiente, describiré los pasos de
inicializacio e incrementación.
Agrupamiento Fractal: Paso de Inicialización
En los algoritmos de agrupamiento la calidad de los grupos iniciales es de extrema importancia, y
tiene un efecto directo en la calidad final del grupo. Antes de que podamos aplicar el concepto
principal de la tecnica, esto es, agregar puntos incrementalmente a grupos existentes, basados en
como afectan a la dimension fractal de los grupos, es necesario tener algunos grupos necesarios.
Es decir, tenemos que hacer un bootstrap al algoritmo mediante un procedimiento de inicialización
que encuentre un conjunto de grupos, cada uno con suficientes puntos de manera que su
dimension fractal pueda ser calculada. Si se toman decisiones erroneas en este paso, podremos
corregirlas luego moldeando los grupos dinamicamente.
Algoritmo de Inicializacion: El proceso de inicializacion es sencillo debido a que somos capaces de
convertir un problema de agrupamiento en un conjunto de puntos de datos multidimensionales (el
cual es un subconjunto de los datos originales) en un problema mucho mas simple de agrupar
puntos unidimensionales. El problema es aun mas simplificado debido a que el conjunto de puntos
de datos que usamos para el paso de inicializacion alcanza en la memoria. Se muestra el seudo-
codigo del paso de inicializacion. Observemos que las lineas 3 y 4 del codigo mapean los puntos
de conjunto inicial en valores unidimensionales, calculando el efecto que cada punto tiene en la
dimenson fractal del resto del conjunto (se pudo calcular la diferencia entre la dimension fractal de
S y de S menos un punto, pero el resultado habria sido el mismo). La 5ta linea del codigo indica
que para agrupar el conjunto de valores , podemos usar cualquier algoritmo conocido. Por lo
tanto, podemo alimentar los valores dela dimension fractal y un valor k a una implementacion
de k-medias. Alternativamente, podemos dejar que un algoritmo de agrupacion jerarquico agrupe
la secuencia de valores .
1: Dado un conjunto inicial S de puntos { }que alcanzan en la memoria
principal (obtenida por muestreo de los datos).
2: para hacer
3: Definir grupo
4: Calcular la dimension fractal del conjunto ,
5: Fin_para
6: Agrupar el conjunto de valores (Los grupos resultantes son los grupos
iniciales)
Algoritmo 1: Algoritmo de Inicialización para la Agrupacion Fractal.
Agrupamiento Fractal: Paso Incremental
Luego de obtener los grupos iniciales, podemos proceder a agrupar el resto de los datos.
Cadagrupo encontrado por el paso de inicializacion es representado por una lista de cajas (celdas
en una rejilla). Cada caja en el conjunto almacena su población de puntos. Sea k el numero de
grupos encontrados en el paso de inicializacion y donde es el conjunto de
cajas que representan el grupo i. Sea la dimension fractal del grupo i.
El paso incremental trae un nuevo conjunto de puntos a la memoria principal y procede a tomar
cada punto y agregarlo a cada cluster, calculando su nueva dimension fractal. El seudo-código de
este paso también se muestra. La 5ta linea calcula la dimension fractal por cada grupo modificado
(agregandole el punto). La 6ta línea encuentra el grupo apropiado para colocar el punto (aquel
para el cual el cambio en la dimension fractal es minima). Llamamos al valor el
Impacto Fractal del punto que esta siendo agrupado sobre el grupo i. La cantidad
es el impacto fractal mínimo del punto. La 7ma linea es para discriminar el
ruido. Si el Impacto Fractal Mínimo de un punto es mayor a un umbral , es rechazado como un
ruido (Linea 8), de otra forma es incluido en ese grupo. Escogemos usar la dimensión de
Hausdorff, para el calculo de la dimension fractal de la linea 5 en el paso incremental.
Escogemos ya que puede ser calculado mas rápido que las otras dimensiones y muestra
suficiente robustez para la tarea.
Para calcular la dimension fractal de los grupos cada vez que un nuevo punto es agregado a ellos,
mantenemos la informacion del grupo usando series de representaciones de rejillas o capas. En
cada capa, las cajas (o rejillas) tienen un tamaño que es menor a la capa anterior. El tamaño de
las cajas es calculado de la siguiente forma: Para la primera capa (la mas grande), dividimos la
cardinalidad de cada dimension en los datos por 2, para la siguiente capa, dividimos la
cardinalidad de cada dimension por 4 y así. Entonces, tendremos cajas D-
dimensionales en cada capa, donde D es la dimensionalidad de los datos y L la maxima capa que
se guardará. Entonces, la informacion almacenada no es la ubicación actual de puntos en las
cajas, por el contrario, el numero de puntos en cada caja. Es importante resaltar que el numero de
cajas en la capa L puede crecer considerablemente , especialmente para datos de alta
dimensionalidad. Sin embargo, solo necesitamos almacenar cajas para las que existe alguna
poblacion de puntos, esto es, que no necesitamos las cajas vacias. El numero de cajas con
población a ese nivel es, en datos practicos, muy pequeña (esta es la razon por la que formamos
inicialmente los grupos). Sea B el numero de cajas pobladas en el nivel L. Observemos que, B
tiende a permanecer muy estable durante las pasadas sobre el paso incremental.
1: Dado un batch S de puntos en la memoria principal:
2: para cada punto hacer
3: para hacer
4: Sea
5: Calcula
6: encuentra
7: si entonces
8: Descarta p como ruido
9: de lo contrario
10: Ubicar p en el grupo
11: fin_si
12: fin_para
13: fin_para
Algoritmo 2: Paso Incremental de la Agrupación Fractal
Cada vez que un punto es asignado a un grupo, registramos ese hecho en una tabla, agregando
una fila que mapea la pertenencia del grupo al identificador del punto (filas de esta tabla son
guardadas periodicamente al disco, cada grupo en un archivo, librando espacio para nuevas filas).
El arreglo de capas es usado para manejar el calculo de la dimension fractal del grupo, usando un
algoritmo de conteo de cajas.
CAPITULO IV: ANALISIS Y RESULTADOS
Se muestran los resultados de usar la agrupacion fractal para agrupar una serie de datos. Para
cada uno de los experimentos usé un valor de (el umbral para decidir si un punto es
ruido o realmente pertenece a un grupo). Realizé el experimentos en una PC con 1GB de RAM, y
corriendo el Scientific Linux. Al realizar el primer algoritmo de inicializacion use K-medias para
agrupar el vector unidimensional de efectos. En cada experimento, los puntos se distribuyen
igualmente entre los grupos (es decir, que cada grupo tiene el mismo numero de puntos). Luego
de ejecutar la Agrupacion Fractal, para cada grupo encontrado, conte el numero de puntos que
fueron ubicados en cada cluster y que realmente pertenecian alli. La efectividad de la agrupacion
Fractal es medida por cada grupo como el porcentaje de puntos correctamente colocados en el.
4.1. Escalabilidad
Mostrare los resultados experimentales de tiempo de ejecución y calidad de los grupos usando un
rango de datos de tamaños en incremento y un conjunto de datos de dimension alta.
Primero, uso los datos cuya distribución sigue la que muestra la figura para experimentos de
escalabilidad. Usamos un conjunto complejo de grupos en este experimento para mostrar como se
comporta la agrupación fractal con grupos de formas arbitrarias.
Figura 6: Datos de los 3 grupos para experimentar escalabilidad.
No solo tenemos un grupo de forma cuadrada, sino que ademas tenemos un grupo dentro de otro
grupo. Variamos el numero total de puntos en el conjunto de datos para medir la efectividad del
algoritmo. En cualquier caso, escogemos una muestra de 600 puntos para ejecutar el paso de
inicialización. Los resultados son resumidos en la tabla siguiente:
Tabla 1: Resultados de realizar la agrupacion fractal en el grupo de datos incremental.
4.2. Experimento en un mapa de dimension alta:
Realicé un experimento con el algoritmo fractal para agrupar puntos en un conjunto de datos real.
El conjunto usado fue un mapa del mundo en blanco y negro donde los negros representan tierra
y los blancos el agua. El conjunto de datos contiene 4391240 pixeles o puntos. Con el segundo
algoritmo de inicialización el tiempo de ejecución fue de 589 segundos. La calidad de los grupos
es demasiado buena, en total se encontraron 5 grupos. El primer grupo contiene a Europa, Asia y
Africa (estos continentes estan muy cerca, asi que el algoritmo no los separó), el 2do grupo
contiene a Norteamerica, el 3ro a Sudamerica, el 4to a Australia y el ultimo a la Antartida.
4.3. Eficiencia de la Agrupacion Fractal sobre otros Algoritmos de Agrupacion
Al comparar el Agrupamiento Fractal con otros 2 algoritmos de Data Stream Mining, el CURE y el
BIRCH obtuvimos para una data compleja de 20000 puntos tenemos que el CURE declara 6100
puntos (30.5%) como outliers, colocando el resto en sus grupos correctos. El BIRCH declara 375
puntos como outliers colocando el resto correctamente. El precio de la efectividad de la
agrupacion fractal merma el tiempo de ejecucion en el que supera por mucho a los del CURE y
BIRCH.
GruposHallados G1 G2 G3
1 10,326 9,972 0 354 99.72%2 11,751 0 10,000 1,751 100%3 7,923 28 0 7,895 78.95%1 103,331 99,868 0 3,463 99.86%2 117,297 0 100,000 17,297 100%3 79,372 132 0 79,240 79.24%1 1,033,795 998,632 0 35,163 99.86%2 1,172,895 0 999,999 173,896 99.99%3 793,310 1,368 0 791,942 79.19%1 10,335,024 9,986,110 22 348,897 99.86%2 11,722,887 0 9,999,970 1,722,917 99.99%3 7,942,084 13,890 8 7,928,186 79.28%
30,000,000
3,000,000
300,000
30,000
64 kb
64 kb
64 kb
64 kb
4987
485
56
12
Vienen deEfectividadAsignado aMemoriaTiempoN
Figura 7: Estructura de los grupos complejos para evaluar eficiencia sobre otros algoritmos.
Tabla 2: Comparación de algoritmos de agrupación.
CONCLUSIONES:
• El algoritmo de agrupacion fractal agrupa puntos de acuerdo al efecto que tienen en la
dimension fractal de los grupos que se hayan encontrado. El algoritmo esta diseñado para
ser incremental y su complejidad es lineal al tamaño de los datos y solo requiere un paso
sobre la data, lo cual es ideal en el ambito del data stream mining.
• Los experimentos prueban que el algoritmo tiene muchas propiedades deseables, es
resistente al ruido, capaz de encontrar efectivamente grupos de formas arbitrarias y capaz
de lidiar con puntos de alta dimensionalidad.
• Tambien vemos que el algoritmo de agrupacion fractal es mejor que el CURE y el CIRCH
en lo que respecta a calidad de los grupos obtenidos.
• Es necesario ampliar la vision en algoritmos que respondan a las demandas actuales, y
Grupo 1 Grupo 21 4393 4393 0 43.93%2 9547 0 9547 95.47%outliers 6100 - - -
Agrupacion 1 10000 10000 100.00%Fractal 2 10000 10000 100.00%
1 9670 9670 96.70%2 9987 9987 99.87%outliers 375 - - -
CURE
BIRCH
2.568
3.89
14
Vienen de PrecisionPuntosGruposTiempoAlgoritmo
esto es, diseñar y mejorar los algoritmos existentes en el enfoque de data stream mining.
• Es necesario fomentar la investigación multidisciplinaria para afrontar los retos que
involucren a administracion y la analítica de datos, no solo con la estadística sino tambien
con campos científicos como la física, ciencias de la computación y sistemas complejos
para ofrecer un verdadero soporte científico para un desarrollo sostenible.
BIBLIOGRAFIA:
[1] Anil K. Jain, Richard C. Dubes, Algorithms for Clustering Data, Prentice Hall, 1988
[2] B.D. Ripley, Statistical Data Mining, Springer, 2002
[3] Charu C. Aggarwal, Data Streams Models and Algorithms, Springer, 2007
[4] Guojun Gan, Chaoqun Ma, Jianhong Wu, Data Clustering Theory, Algorithms, and Applications,
SIAM, 1979
[5] Hamparsum Bozdogan, Statistical Data Mining and Knowledge Discovery, Chapman and Hall,
2004
[6] Joao Gama, Knowledge Discovery from Data Streams, CRC Press, 2010
[7] Oded Maimon, Lior Rokach, The Data Mining and Knowledge Discovery Handbook, Springer
2005
[8] Rao C. et al, Handbook of Statistics 24. Data Mining and Data Visualization