+ All Categories
Home > Documents > Agrupacion Fractal en Data Stream Mining

Agrupacion Fractal en Data Stream Mining

Date post: 25-Apr-2023
Category:
Upload: uni
View: 0 times
Download: 0 times
Share this document with a friend
24
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
Transcript

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


Recommended