Fonseca DR
Fonseca DR
Fonseca DR
en el
Supervisada por:
©INAOE 2012
Derechos Reservados
El autor otorga al INAOE el permiso de reproducir y
distribuir copias de esta tesis en su totalidad o en
partes
A mi familia
I
II
Agradecimientos
Primero quiero agradecer al pueblo de México por pagar sus impuestos y brindarme la
oportunidad de realizar la Maestría en Ciencias de la Computación.
Agradezco directamente a mis asesores: el Dr. Jesús González, la Dra. Pilar Gómez y
el Dr. Iván Olmos.
Aprovecho para agradecerles con mucho cariño a mi familia, a Liliana, y a mis amigos
por estar siempre a mi lado.
III
IV
Resumen
En muchos dominios se está volviendo cada vez más común almacenar datos que
poseen inherentemente una estructura o características relacionales. Este tipo de datos se
representan mejor con grafos, los cuales pueden, de forma natural, representar entidades,
sus atributos, y su relación con otras entidades. En este trabajo de tesis se presenta un
algoritmo de minería de datos con una primera fase no supervisada para dividir los datos, y
otra fase supervisada que realiza la minería generando solo candidatos posibles para
obtener patrones útiles en la tarea de clasificación sobre datos estructurados. La primera
parte que se diseñó fue un novedoso espectro para grafos etiquetados. Este espectro se
implementó en un algoritmo de agrupamiento de grafos denominado Spectral_SOM. Los
grafos etiquetados de entrada se transforman a su representación espectral y se le dan como
entrada a una red SOM capaz de agrupar estos grafos en tiempo polinomial, lo que se
muestra con el análisis de complejidad realizado. La segunda parte que se desarrolló es un
algoritmo de minería de datos basado en grafos para buscar conceptos, CL_COBRA. Este
algoritmo utiliza códigos DFC y requirió modificar el algoritmo SICOBRA para
aprovechar en mejor manera la búsqueda de subgrafos isomorfos. Finalmente, se integró
Spectral_SOM con CL_COBRA para obtener el algoritmo KODISSOM_COBRA,
resultado de esta tesis. El algoritmo fue evaluado con conjuntos de datos sintéticos y datos
reales. Los resultados muestran que los patrones encontrados son competitivos en la tarea
de clasificación con los encontrados por el algoritmo de aprendizaje de conceptos basado
en grafos SubdueCL. El algoritmo desarrollado puede mejorar su tiempo de ejecución
aumentando el soporte mínimo requerido, sin embargo existe un compromiso entre tiempo
de ejecución y calidad de patrones encontrados. Un resultado adicional es la
implementación de un marco de trabajo inicial para manejar grafos, con utilidades de
agrupamiento, extracción de características, isomorfismo, dibujado de grafos y minería de
datos.
V
VI
Abstract
In many domains, it is becoming more common to store data that inherently possess a
structure or relational features. Such data are better represented with graphs, which can
quite naturally, represent entities, its attributes, and their relationship with other entities. In
this thesis, we present a data mining algorithm firstly with an unsupervised phase to divide
the data, and another supervised phase that performs data mining generating only possible
candidates to find useful patterns in the classification task for structured data. The first task
was to design a new spectrum for labeled graphs. This spectrum was implemented in the
graph clustering algorithm called Spectral_SOM. The input labeled graphs are transformed
in their spectral representation, which are given as input to an SOM network; this network
can group these graphs in polynomial time, which is shown through the complexity
analysis performed. The second task developed was a data mining graph based algorithm
for searching concepts, CL_COBRA. This algorithm uses DFC codes and it was necessary
to modify the SICOBRA algorithm to better use the isomorphic subgraphs searching.
Finally, the CL_COBRA algorithm was integrated with Spectral_SOM to develop the
algorithm KODISSOM_COBRA, result of this thesis. The algorithm was tested with sets of
synthetic data and real data. The results show that the patterns found are competitive in the
classification task with those found by the concept learning graph based algorithm
SubdueCL. The algorithm developed can improve the runtime increasing the minimum
support required, but there exists a compromise between runtime and quality of patterns
found. An additional outcome is the implementation of an initial framework for working
with graphs, with profits of clustering, feature extraction, isomorphism, graphs’ drawing
and data mining.
VII
VIII
Tabla de contenido
IX
2.5.3 SubdueCL ................................................................................................ 25
X
5.4 Tercer caso de prueba ..................................................................................... 69
6.1 Conclusiones................................................................................................... 86
Referencias ................................................................................................................. 91
XI
XII
Índice de figuras
XIII
Figura 5.12. Comparación de la ejecución de SubdueCL y CL_COBRA variando el
número de grafos. .......................................................................................................... 77
Figura 5.13. Tendencia de crecimiento en tiempo del agrupamiento realizado con la red
Spectral_SOM ............................................................................................................... 78
Figura 5.14. Tendencia en tiempo al aumentar el número de vértices y el soporte
mínimo utilizando el algoritmo CL_COBRA. .............................................................. 79
Figura 5.15. Comparación del algoritmo de CL_COBRA con el algoritmo SubdueCL
al utilizar ejemplos sintéticos en los que varía el número de vértices y de enlaces. ..... 80
Figura 5.16. Curvas ROC obtenidas con el algoritmo CL_COBRA y SubdueCL con los
datos del PTC ................................................................................................................ 82
XIV
Índice de tablas
XV
Tabla 5.2. Resultados de comparar el agrupamiento obtenido por Spectral_SOM y
GraphClust con el agrupamiento del Experto. .............................................. 67
Tabla 5.3. Comparación del algoritmo Spectral_SOM y el algoritmo GraphClust
utilizando la representación sin electrones del conjunto PTC. ..................... 69
Tabla 5.4. Resultados del algoritmo CL_COBRA con la base de datos house. ............ 73
Tabla 5.5. Resultados del algoritmo Subdue_CL con la base de datos house............... 74
Tabla 5.6. Ejecución del algoritmo KODISSOM_COBRA con redes SOM de 10x10,
5x5................................................................................................................. 83
XVI
Capítulo 1. Introducción
1
Durante el aprendizaje de conceptos, el algoritmo de aprendizaje considera un número
de posibles hipótesis llamado espacio de hipótesis (el mismo que depende de la
representación de los datos) (González Bernal, 2001). Se dice que se genera candidatos
cuando se prueban todas las combinaciones posibles como espacio de hipótesis, aunque no
necesariamente se presenten en el conjunto de entrenamiento. El crecimiento de patrones
permite reducir el número de candidatos con respecto al enfoque a priori. (Gago, 2010).
Simplicidad.- Deben ser pocos patrones, al menos un orden de magnitud menos que el
número de objetos. Violar esta propiedad puede degradar seriamente el grado de
comprensión del clasificador que utilice la lista de patrones.
No redundancia.- Cada patrón debe contener algún conocimiento nuevo, con respecto
al resto de patrones. Patrones redundantes pueden representar evidencia redundante en la
búsqueda de un objeto, desviando la clasificación a una clase en particular.
2
En esta tesis se evalúa la calidad de la lista de patrones (subgrafos) encontrados a
través de la tarea de clasificación. Esta estrategia se la utiliza exitosamente con el algoritmo
SubdueCL (González, Holder, & Cook, 2001).
Los algoritmos de minería de patrones útiles siguen dos estrategias diferentes para
obtener una alta calidad en el conjunto de patrones (García Barroto, 2010):
Problema 1. Dividir los ejemplos de entrada en conjuntos prometedores para poder trabajar
con conjuntos de menor tamaño. Esto se hace para no tener que comparar con todos los
ejemplos al mismo tiempo. Una de las dificultades en el agrupamiento inicial es encontrar
similaridades entre los grafos. Una forma de resolver este problema es: comparando los
grafos directamente mediante isomorfismo de subgrafos, pero cada comparación requiere
3
muchas operaciones. Para hacer un agrupamiento de los ejemplos de una manera eficiente,
se requiere de una representación apropiada de los grafos etiquetados que no necesite
pruebas de isomorfismo de subgrafos.
1) Diseñar una extensión de la red neuronal SOM para dividir el espacio de búsqueda
de una manera no supervisada y obtener patrones representativos de cada sub-
espacio.
2) Diseñar un algoritmo que expanda los patrones utilizando códigos DFC para la tarea
supervisada de aprendizaje de conceptos.
3) Integrar los algoritmos de los primeros dos objetivos específicos en uno que reciba
grafos y devuelva patrones útiles para la clasificación.
4
1.4 Propuesta de solución
1
El espectro de un grafo es el conjunto de eigenvalores de su matriz de adyacencia. Ver el Capítulo 2.
5
Figura 1.1 Diagrama de la solución propuesta
Finalmente, los patrones encontrados por CL_COBRA en cada grupo son integrados en
una sola lista. Toda la solución propuesta fue llamada KODDISSOM_COBRA
(“KnOwledge DIscovery using Spectrum in SOM and COde Based Representation
Algorithm”).
6
ejecutó con sus parámetros por defecto. En ambos conjuntos reales Spectral_SOM obtuvo
mejores resultados que la ejecución de GraphClust con sus parámetros por defecto. Por otro
lado, se buscó la mejor combinación posible de parámetros para GraphClust. Con estos
parámetros los resultados obtenidos por este algoritmo fueron competitivos con los
devueltos por Spectral_SOM. Sin embargo, GraphClust utiliza subgrafos encontrados con
Subdue, buscar estos patrones tiene una complejidad exponencial mientras que
Spectral_SOM tiene una complejidad polinomial.
7
1.5 Aportaciones
Este documento está organizado de la siguiente manera. El capítulo dos presenta los
conceptos necesarios para entender claramente el problema y el resto de la tesis. El capítulo
tres resume el estado del arte de la minería de datos basada en grafos. El capítulo cuatro
contiene el algoritmo desarrollado. Los experimentos realizados y sus resultados se
presentan en el capítulo cinco. El capítulo seis contiene las conclusiones, aportaciones y
trabajo futuro.
8
Capítulo 2. Marco teórico
9
por la matriz de adyacencia (Godsil & Royle, 2001). Ésta es una matriz entera con
filas y columnas indexadas por los vértices de , tal que la entrada de es igual al
peso del arco desde a . La matriz de adyacencia contiene elementos, donde es el
número de vértices en el grafo.
La comparación de grafos tiene un alto costo computacional. Se dice que dos grafos
y son isomorfos si existe una función de mapeo biyectiva (uno a
uno) (llamada un isomorfismo) tal que sí y solo si .
Cuando se busca un subgrafo contenido en un grafo se tiene que resolver el problema de
isomorfismo de subgrafos. Éste es un problema del tipo NP-Completo2, demostrado por
Garey (Garey & Johnson, 1979).
(2.1)
Donde es un escalar y es un vector , si la ecuación (2.1) tiene una solución de
para un no nulo, entonces se denomina valor propio, raíz característica o raíz latente
de , y el vector no nulo que satisface la ecuación para un en particular es llamado
vector propio, vector característico o vector latente correspondiente para (Mathai, 2008).
(2.2)
Al evaluar el determinante de se obtiene un polinomio conocido como
polinomio característico. Las raíces de este polinomio son los valores propios de la matriz
A.
2
Ver definición de NP-Completo en el anexo A.
10
A continuación se presenta un ejemplo del cálculo de valores propios de la matriz de
adyacencia de un grafo pesado.
3 1 1 0
Las raíces del polinomio son los valores característicos de , los mismos se muestran
a continuación:
Godsil y Royle (Godsil & Royle, 2001) definen al espectro de un grafo como la lista
de valores propios de su matriz de adyacencia , junto con sus multiplicidades (número de
apariciones). Por otro lado, dada una orientación arbitraria del grafo y la matriz de
incidencia3 de , entonces se tiene que el Laplaciano de es la matriz .
Esto implica que el Laplaciano considera las dos orientaciones posibles de cada enlace. De
aquí que el Laplaciano no depende de la orientación. Algunos estudios mencionan que es
más útil obtener el espectro a partir del Laplaciano de un grafo en vez de a partir de la
3
La matriz de incidencia es una matriz binaria, en la que las columnas de la matriz representan los
enlaces del grafo, las filas representan los vértices. Por cada vértice unido por un enlace se pone un uno en el
lugar correspondiente y se llena el resto de ubicaciones de con ceros (Godsil & Royle, 2001).
11
matriz de adyacencia (Schaeffer, 2007). La matriz simétrica se denomina
“Laplaciano Generalizado de ”, tal que cuando y son vértices adyacentes de
y cuando y son distintos y no adyacentes. Para un grafo pesado el
Laplaciano Generalizado se define como (Chung, 1994):
(2.3)
Al asignar etiquetas tanto a los vértices como a los enlaces se tiene un grafo etiquetado.
Se puede representar a un grafo etiquetado por la 6-tupla conformada por el conjunto de
vértices , el conjunto de enlaces , la lista de etiquetas de vértices y lista de etiquetas
de enlaces . Además, se requiere una función de obtención de etiquetas tanto de vértices
y una función de obtención de etiquetas de enlaces . Entonces un grafo etiquetado se
define como (Olmos Pineda, 2006):
(2.4)
12
En la construcción de la lista de códigos vértice-enlace-vértice se recorren los
enlaces del grafo y se aumentan en la lista , únicamente, los códigos diferentes.
La lista se ordena lexicográficamente, es decir dados dos códigos y
se dice que es menor a si se cumple cualquiera de las siguientes
condiciones:
(2.5)
13
Prosiguiendo con las definiciones, un grafo es conectado si existe una secuencia de
distintos enlaces para cada par de vértices. Por otra parte, se tienen los conceptos de lazo,
camino y circuito. Un lazo en un grafo es un enlace que inicia y llega al mismo vértice. Un
camino es una secuencia de enlaces que unen un vértice origen con uno de destino. Un
circuito es una secuencia de enlaces que parten de un vértice dado y termina en el mismo
vértice (Godsil & Royle, 2001).
Un grafo árbol o simplemente árbol es un grafo conectado sin circuitos (Giudici E. &
Bris Lluch, 1997). Un vértice de un grafo dirigido se dice ser una raíz del grafo dirigido
si todos los vértices son accesibles desde . Un árbol con raíz (o árbol dirigido) es un grafo
dirigido tal que posee una raíz y su grafo asociado es un árbol (Caicedo Barrera, Wagner de
García, & Méndez Parra, 2010). Dado un grafo , un árbol de expansión o de cobertura es
un árbol que contiene todos los vértices de , aunque no necesariamente todos sus enlaces
(Yan & Han, 2002).
Una forma canónica es una secuencia de símbolos que identifica de manera única a
cada grafo. En la construcción de estas secuencias se requiere un ordenamiento de los
vértices del grafo. Este ordenamiento puede obtenerse mediante la búsqueda de árboles de
cobertura (Yan & Han, 2002). La construcción de estos árboles puede iniciar en cualquier
vértice. En consecuencia, existen muchas formas de realizar el ordenamiento de los
vértices. Mediante las formas canónicas se puede construir una descripción única de cada
grafo. Con este fin, se selecciona de entre todas las posibles secuencias que representan un
grafo, a la que se cumpla ciertos cánones o características especiales. Generalmente, esta
selección requiere realizar una búsqueda. Las búsquedas más usadas son: primero en
profundidad (“depth first”), primero en anchura o a lo ancho (“breadth first”), búsqueda
con un haz, “branch and bound” (Morales & Sucar, 2011).
14
2.3.1 Secuencia de códigos DFS
En una secuencia de códigos DFC cada arista es representada por una 5-tupla
donde y son los índices de los vértices (origen y destino respectivamente),
y son las etiquetas de tales vértices, y es la etiqueta de la arista. Los enlaces hacia
delante se encuentran en el conjunto , mientras que los enlaces hacia atrás pertenecen al
.
En la Tabla 2.1 se muestran las reglas que se utilizan para ordenar los enlaces en una
secuencia de códigos DFS (Yan & Han, 2002). En resumen, en la construcción de un
código DFS, siguiendo una búsqueda en profundidad, primero se visitan los vértices cuya
etiqueta tenga el menor orden lexicográfico (Olmos Pineda, 2006).
15
2.3.2 Secuencias de códigos DFC
Los códigos DFC son una mejora de los códigos DFS. Estos se basan en las reglas de
orden lexicográfico DFS, pero además agregan dos restricciones en la selección de los
vértices (Olmos, González, & Osorio, 2006).
Función
Entrada:
Salida:
1.
2.
.
3.
.
4.
.
.
5.
.
6.
7.
.
16
El costo de construir una representación DFC es de , donde es el número
de vértices y el número de enlaces del grafo (Olmos Pineda, 2006).
A diferencia de los códigos DFS, los códigos DFC requieren almacenar el grado de los
vértices y la frecuencia de las etiquetas. Pero los códigos DFC funcionan mejor en aquellos
casos en que existan etiquetas repetidas y el grafo sea denso. Esto lo demuestra Olmos en
sus tesis de doctorado (Olmos Pineda, 2006). En el ejemplo de la Figura 2.3 ilustra la
ventaja de los códigos DFC sobre los códigos DFS.
Dado el grafo de la Figura 2.3, asumimos que el mismo grafo se puede construir
cambiando el orden de los vértices. El orden de los vértices se dibuja cerca de cada vértice.
Al utilizar códigos DFS existen dos opciones de raíz para el árbol de expansión de .
Seleccionar la raíz depende de cuál sea el vértice 1 (en verde como raíz), cambiando el
orden cambia la raíz tanto en b) como en c). En contraste, utilizando códigos DFC en este
caso existe un único vértice de inicio que es el vértice 4 en verde como raíz.
C B A C B A C B 2
A
3 4 2 3 4 1 3 4
c) 1
A
C B A
3 4 2
Figura 2.3 Grafo con dos posibles inicios (con vértices 1 en color verde) utilizando
códigos DFS. En contraste, con los códigos DFC solo se tiene un posible inicio (con vértice
1 en color verde).
En el resto de esta sección se describen algoritmos que son utilizados más adelante en
esta tesis.
17
2.4 Mapas auto organizados
Los mapas auto organizados (SOM, Self-organizing maps) (Kohonen, 1990) son un
tipo de red neuronal compuesta por una capa de entrada y una o varias capas de salida. La
principal ventaja de la red SOM es transformar un vector de entrada de una dimensión
arbitraria en un mapa discreto de una o dos dimensiones. El mapa de salida está compuesto
por vectores prototipos, cada vector de entrada se conecta con todos los prototipos de
salida. La Figura 2.4 muestra en un ejemplo las partes de una red neuronal SOM (Kohonen,
1990).
(2.6)
18
En el proceso de cooperación se adaptan los pesos del vecindario de influencia de la
neurona ganadora, el que es representado por . La función se puede definir de
diferentes maneras, en el presente trabajo se hace por posiciones en una rejilla. Así se
consideran los 4, 8, 12, 16, 20 y 24 vecinos más cercanos a la neurona ganadora. El
coeficiente de aprendizaje disminuye conforme transcurren las iteraciones, la función
más recomendada (Haykin, 2005) para actualizar el coeficiente de aprendizaje es la
siguiente:
(2.7)
(2.8)
Holder (Holder & Cook, Graph-Based Data Mining, 2005) define la MDBG como la
tarea de encontrar patrones (grafos) que sean útiles utilizando una representación basada en
grafos de los datos originales. Una manera de realizar minería de datos es buscando los
subgrafos frecuentes. La minería de subgrafos frecuentes es un problema bastante
estudiado en el área de minería de grafos. Generalmente, en esta técnica se tiene un límite
de frecuencia dado por el usuario y se retornan todos los subgrafos que tengan una
frecuencia mayor o igual (Ranu & Singh, 2009). Los algoritmos que buscan subgrafos
frecuentes pueden ser divididos en las siguientes tres categorías (Smalter, Huan, Jia, &
Lushington, 2010).
Estrategia por niveles.- Los algoritmos generan todos los candidatos, evalúan y
seleccionan los frecuentes. En esta categoría se incluyen algoritmos como: "A-priori-based
graph mining (AGM) (Inokuchi, Washio, & Motoda, 2000)" y "frequent subgraph
discovery (FSG) (Kuramochi & Karypis, 2001)". Estos desarrollan una operación de unión
(join), la que toma un par de grafos de de entrada y produce un
supergrafo común a los dos grafos con .
19
Estrategia de búsqueda en profundidad.- Estos comienzan de un grafo frecuente,
enumeran los supergrafos de G, seleccionan los frecuentes y repiten el proceso
recursivamente. Si ninguno de los supergrafos es frecuente, entonces se retrocede un nivel.
Algunos de estos algoritmos son gSpan (Yan & Han, 2002) y FFSM (Huan, Wang, & Prins,
Efficient Mining of Frequent Subgraph in the Presence of Isomorphism, 2003). La ventaja
de la búsqueda en profundidad es una mejor utilización de memoria y enumerar sus
supergrafos, en lugar de tener todos los subgrafos de en memoria.
20
idénticas se tiene que es subgrafo isomorfo de y se representa . La Figura 2.5,
tomada de la tesis de Olmos (Olmos Pineda, 2006), muestra la búsqueda de la secuencia de
códigos en las posibles secuencias de códigos del grafo .
… …
…
…
=
21
misma etiqueta, el grado del vértice es mayor o igual al grado del vértice . El conjunto
de los códigos de los enlaces adyacentes del vértice está contenido en el conjunto
del vértice .
Tabla 2.3. Algoritmo SICOBRA, tomado de la tesis de Olmos (Olmos Pineda, 2006).
Devuelve verdadero si existe un subgrafo de isomorfo a .
Función
Entrada: o grafo a buscar
Salida:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
22
Tabla 2.4. Algoritmo de poda.
Función
Entrada:
Salida:
1.
.
2.
.
3.
:
y
.
4.
5.
23
Tabla 2.5. Procesado recursivo de búsqueda.
Función
Entrada:
Salida:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Según González (González Bernal, 2001), un concepto puede definirse como una
función capaz de clasificar correctamente un ejemplo como positivo o negativo. La tarea de
inducir esta función a partir de ejemplos previamente clasificados se denomina aprendizaje
24
de conceptos. Al finalizar la tarea, la función debe ser capaz de clasificar correctamente un
nuevo ejemplo que no estuvo en el conjunto de entrenamiento.
2.5.3 SubdueCL
(2.9)
25
2.6 Área bajo la curva ROC (“Receiver operating characteristics”)
Una gráfica ROC es una técnica para visualizar, organizar y seleccionar clasificadores
basados en su desempeño (Fawcett, 2006). Estas gráficas presentan propiedades que las
hacen especialmente útiles para dominios con una distribución desbalanceada y diferente
costo de error por mala clasificación. Son conceptualmente simples, se puede iniciar su
estudio con problemas de clasificación usando dos clases. Formalmente, a cada ejemplo
(instancia) se le asigna un elemento del conjunto de clases positivas o negativas. Un
clasificador relaciona las instancias con las clases predichas. Para distinguir entre la clase
actual y la predicha se usan las etiquetas para las predicciones producidas por el
modelo.
Dada una clasificación y una instancia existen cuatro posibles salidas. Si la instancia es
verdadera y es clasificada verdadera, se cuenta como verdadero positivo; si la misma
instancia verdadera es clasificada como negativa, se cuenta como falso negativo. Si la
instancia es negativa y es clasificada como negativa, se cuenta como verdadero negativo; si
esa instancia negativa es clasificada como verdadera, entonces es contada como falso
positivo.
Clase verdadera
p n
Columnas totales: P N
26
La tasa de verdaderos positivos (también llamada tasa de éxito y recuerdo) de un
clasificador se estima:
(2.10)
(2.11)
Otros términos asociados con las gráficas ROC se pueden ver en el Anexo A.
La Figura 2.7 muestra el área bajo la curva ROC de dos clasificadores A con fondo gris
y B con cuadrados. Se puede decir que el clasificador A tiene mejor desempeño en el
espacio derecho de la curva ROC, en cambio el clasificador B tiene mejor resultado en el
espacio izquierdo. En general, el clasificador B tiene mayor área bajo su curva y por lo
tanto se considera de mejor desempeño en general.
27
Figura 2.7. La gráfica muestra el área bajo dos curvas ROC, la de cuadros del
clasificador B y la de fondo gris del clasificador A. El clasificador B tiene una mayor área
bajo la curva y en general se considera que tiene un mejor desempeño (Fawcett, 2006).
28
Capítulo 3. Trabajo relacionado
4
La definiciones de función de distancia y función de similaridad se puede ver en (Irigoien & Arenas,
2006)
29
Muchos de los algoritmos de agrupamiento, como k-means (Han & Kamber,
2006) utilizan objetos representativos como centroides con varios pasos
intermedios. Mientras esto requiere muchas operaciones en objetos de varias
dimensiones, se necesitan muchas más con objetos representados como grafos.
Por esta razón, se requieren métodos más apropiados con el fin de crear objetos
representativos. En algunos casos es más robusto utilizar extractos
representativos (Aggarwal & Wang, 2010).
En el artículo (Vesanto & Alhoniemi, 2000) se evalúa la calidad de los grupos de una
manera visual, para ello dibujan en un plano los ejemplos y sobreponen un borde en los
grupos obtenidos. Adicionalmente, en este trabajo se utiliza la “entropía relativa
condicional” para comparar la exactitud del agrupamiento.
30
ordenamiento inicial de las entidades en el sistema. Es decir, la entropía relativa
condicional refleja la cantidad media de información sobre la transición de una entidad
entre dos estados consecutivos, teniendo en cuenta el conocimiento de un estado inicial
(Collins & Ruefli, 1996). Vesanto (Vesanto & Alhoniemi, 2000) utiliza la entropía
condicional relativa para describir la incertidumbre de un agrupamiento si un
agrupamiento es conocido.
Uno de los primeros trabajos que utiliza la red SOM para agrupar grafos fue propuesto
por Günter y Bunke (Günter & Bunke, 2002). En su algoritmo modifica la red SOM para
que utilice grafos como prototipos. En éste, utiliza la función de distancia de edición de
grafos, tanto para la selección de la neurona ganadora como para la adaptación de pesos. Es
importante notar que calcular la distancia de edición entre dos grafos es un problema NP-
difícil.
31
Laplaciano Generalizado del grafo, se consideran las etiquetas de los vértices (Schaeffer,
2007). Sin embargo, no se toman en cuenta las etiquetas de los enlaces.
La fase inicial encuentra subestructuras, las cuales son utilizadas para agrupar los
grafos. Las subestructuras se pueden encontrar de dos maneras: la primera manera utiliza
el algoritmo AllPairShortestPath de Giugno y Shasha (2002). Para cada grafo del conjunto
de entrada y para cada vértice , el algoritmo encuentra todos los caminos pequeños que
tienen a lo sumo una longitud y parten del vértice . Cada camino es representado por
una secuencia de etiquetas de vértices en ese camino. El conjunto de tales secuencias
representa la subestructura alrededor del vértice . La segunda manera de encontrar
subestructuras, utiliza el algoritmo de descubrimiento de subestructuras Subdue (Holder &
Cook, Graph-Based Data Mining, 2005); en este caso, para cada grafo g del conjunto de
entrada, primero encuentra las subestructuras comunes o aproximadamente comunes de .
En la siguiente fase del algoritmo GraphClust se construye una matriz . Ésta tiene un
número de columnas igual al número de subestructuras encontradas y un número de filas
igual al número de grafos de entrada. Cada entrada representa el número de veces que
la subestructura está presente en el grafo . Una vez obtenida la matriz, el agrupamiento se
realiza utilizando el algoritmo k-means. Éste agrupa los elementos determinando centroides
para cada grupo y va adaptando los centroides hasta que no haya cambios.
32
maneras diferentes: (1) buscar todos los subgrafos tal que donde es un
umbral; o (2) buscar un subgrafo tal que (Aggarwal & Wang,
2010). El número de subgrafos que se pueden construir a partir de un grafo completo es
(González Bernal, 2001), donde es el número de vértices. Probar todos los
subgrafos posibles se convierte en un cuello de botella como lo muestra la Figura 3.1.
Figura 3.1. Flujo de la minería basada en encontrar los subgrafos frecuentes. Primero
se buscan todos los subgrafos frecuentes, a partir de ellos se encuentran los patrones útiles
que generalmente son un conjunto de menor tamaño (Aggarwal & Wang, 2010).
33
En el área de encontrar patrones útiles para la clasificación de grafos, el algoritmo
SubdueCL es uno de los que mejores resultados ha presentado, el cual se explica a
continuación.
SubdueCL (González, Holder, & Cook, 2001) es una extensión de Subdue (Holder,
Cook, & Djoko, Substructure Discovery in the SUBDUE System, 1994), utiliza funciones
del núcleo de Subdue para realizar operaciones de grafos, pero el proceso de aprendizaje es
diferente. SubdueCL trabaja con un enfoque supervisado, diferenciando ejemplos positivos
y negativos, y utilizando una estrategia set-covering (una explicación formal se puede
encontrar en (Han & Kamber, 2006)) en lugar de una compresión de grafos. La hipótesis
con la que trabaja este algoritmo es una disyunción de conjunciones (subestructuras).
SubdueCL forma una de estas conjunciones (reglas) en cada iteración. Los ejemplos
(grafos) positivos que son descritos por la subestructura encontrada en una iteración
anterior son removidos del grafo para iteraciones subsecuentes (González, Holder, & Cook,
2001). Cabe mencionar que el proyecto Subdue se ha mantenido activo desde su primera
publicación en 1994. Incluso, se han optimizado las estructuras de datos que utiliza, razón
por la cual es muy eficiente. La última versión del sistema Subdue se publicó en el 2011,
esto se puede ver en http://ailab.wsu.edu/subdue/.
En síntesis, los trabajos más relacionados del estado del arte con la propuesta de este
trabajo se muestran en la Tabla 3.1. La tabla tiene 6 columnas, las cuales son: (1) número
secuencial para ordenar los trabajos, (2) el nombre del trabajo, (3) si se realiza
agrupamiento, (4) si se encuentra o utiliza patrones frecuentes, (5) si se realiza aprendizaje
de conceptos5, y finalmente (6) características de cada trabajo.
Las redes neuronales SOM han sido muy útiles en la minería de datos como lo muestra
el trabajo de Vesanto (Vesanto & Alhoniemi, 2000). Las capacidades de la red SOM se han
extendido para trabajar con grafos utilizando la distancia de edición de grafos, el cálculo de
5
La tarea de aprendizaje de conceptos se define en el capítulo de marco teórico.
34
esta distancia implica buscar todas las posibles operaciones de edición para seleccionar la
de menor costo. Una alternativa es utilizar el espectro del grafo, el espectro del grafo ha
sido desarrollado únicamente para grafos pesados. Algunas opciones proponen llevar al
grafo a una representación lineal, en esta se crean vértices con las etiquetas de los enlaces y
los enlaces tienen las etiquetas de los vértices (Schaeffer, 2007). El inconveniente, es que
no se consideran las etiquetas de los enlaces. En el siguiente capítulo se propone un
novedoso espectro que considera las etiquetas de los enlaces utilizando los códigos DFC.
Tabla 3.1. Trabajos relacionados más sobresalientes del estado del arte.
El aprendizaje de conceptos basado en grafos ha dado muy buenos resultados como los
presenta (González, Holder, & Cook, 2001). El algoritmo SubdueCL utiliza una estrategia
de generación de candidatos para encontrar los subgrafos útiles, lo cual requiere mucho
tiempo de procesamiento. Un camino posible es realizar un crecimiento de patrones y así
encontrar los subgrafos sin generar candidatos que no existen.
35
En la minería de datos basada en grafos se puede dividir los grafos de entrada en
subconjuntos que compartan muchas características. Luego, en estos subconjuntos se
buscan los subgrafos que permitan discriminar una clase de otra. Un algoritmo que realice
estas dos tareas simultáneamente no se ha propuesto en lo revisado del estado del arte.
36
Capítulo 4. Algoritmo propuesto
37
4.1.1 Representación espectral de un grafo utilizando códigos VEV
El cálculo de valores propios requiere de una matriz simétrica (Mathai, 2008). Por esta
razón, el Laplaciano generalizado del grafo pesado necesita que el peso asignado a un
enlace sea igual al peso del enlace (Chung, 1994). El peso del enlace se puede
asignar considerando las etiquetas tanto del enlace como las de sus vértices adyacentes. Si
se tomaran las permutaciones de las etiquetas como función de peso, esta función no sería
simétrica ya que se podría tener un peso diferente para el enlace y para el enlace
.
Una alternativa para asignar un peso a un enlace que contenga información tanto de los
vértices como del enlace, es utilizar los códigos VEV6. La función de creación de códigos
VEV fue propuesta por Olmos en (Olmos Pineda, 2006). Se adaptó la definición original a
otra notación para facilitar el trabajo en esta tesis. Esta función recibe un enlace que
conecta a un vértice con un vértice y retorna una tripleta de etiquetas que representan al
código VEV. Se asume que el enlace pertenece a un grafo etiquetado sin múltiples enlaces.
En la Tabla 4.1 se muestra la función de creación de códigos VEV , donde es
6
La definición de los códigos VEV se puede ver en el Marco Teórico.
38
Tabla 4.1. Función de creación de códigos VEV
donde:
,
,
, si ,o
, , ,
si
En esta tesis se asume que existe un orden en las etiquetas. Para los ejemplos y pruebas
se utiliza el orden lexicográfico. La entrada del algoritmo propuesto en esta tesis es un
conjunto de grafos etiquetados . El conjunto de las etiquetas de los vértices de todos los
grafos se denominará , el conjunto de etiquetas de los enlaces se representará con .
De la misma manera, las funciones de asignación de etiquetas para todos los vértices y
enlaces para todo el conjunto de grafos serán y respectivamente.
39
La función de creación de códigos VEV es una función simétrica. La demostración se
encuentra en la Tabla 4.2. Se desea demostrar que la función devuelve el mismo valor
cuando recibe un enlace y cuando recibe el mismo enlace de la forma . Se
asume que el enlace pertenece a un grafo etiquetado sin múltiples enlaces. Sin pérdida de
generalidad, en la demostración se utilizan las funciones de asignación de etiquetas y
. En conclusión, los códigos VEV se pueden utilizar para asignar pesos a los enlaces del
grafo. Estos pesos contienen información tanto de las etiquetas de los vértices como de las
etiquetas de los enlaces.
Los códigos VEV de todos los grafos en son almacenados en una lista de códigos
VEV general . De esta manera, códigos iguales en diferentes grafos tendrán el mismo
peso. La lista está ordenada lexicográficamente y no admite códigos repetidos. Cada
código puede tener un peso de acuerdo a su posición en la lista . Finalmente, a cada
enlace se le asigna un peso igual al de su código VEV. A continuación se ilustra en un
ejemplo el proceso de asignación de pesos a todos los enlaces de un conjunto de tres grafos
etiquetados. El resultado es la matriz de adyacencia de los grafos pesados obtenidos a partir
de los grafos etiquetados.
v1 v1
C C
c c
l v2 c c c v2 c v3
R R c c
l lc c c c P B O
v1 v2 c
I A I A c
v3 v4 v3 v4
l c v4 F
40
Primer paso: generación de la lista de códigos VEV general de
Procesando
A partir del vértice 1
Enlace Código VEV Insertar en la lista
c → → Insertar en lista ordenada
C A
l → → Insertar en lista ordenada
C I
c → → Insertar en lista ordenada
C R
A partir del vértice 2
c → → Insertar en lista ordenada
R A
C l → → Insertar en lista ordenada
R I
c → Enlace ya registrado → Sin acción
R C
A partir del vértice 3
l → Enlace ya registrado → Sin acción
I R
l → Enlace ya registrado → Sin acción
I C
l → → Insertar en lista ordenada
I A
La Tabla 4.3 tiene tres columnas. La primera muestra el enlace que se procesa, la
segunda columna contiene el código VEV generado a partir del enlace. Si el código ya ha
sido procesado anteriormente, se muestra “Enlace ya registrado”. En la tercera columna
41
está la acción realizada en la lista . Las acciones posibles son primero “insertar en
lista ordenada”. En esta acción se inserta el código en la lista de acuerdo al orden
lexicográfico del código. La siguiente acción posible es “código duplicado”, en este caso no
se inserta el código por estar ya registrado en la lista . Finalmente, si no se ejecuta
ninguna acción se muestra “Sin acción”.
Lista
Posición Código VEV
1
2
3
4
5
6
7
8
9
10
11
12
13
42
C C
9 9 7 6
10 1 8 1 P B O
R R
13 3 12 3 11
5
I A I A F
4 2
3 3 3 3 3 3 3 3 1 3 2 2
C R I A C R I A P B O F
C 0 9 10 1 1 0 9 8 1 P 0 7 0 0
R 9 0 13 3 2 9 0 12 3 B 7 0 6 5
I 10 13 0 4 3 8 12 0 2 O 0 6 0 11
A 1 3 4 0 4 1 3 2 0 F 0 5 11 0
4.1.1.2 Cálculo del espectro del Laplaciano Generalizado de los grafos pesados
El último paso de la transformación de grafos es la obtención del espectro del
Laplaciano Generalizado de los grafos pesados. Este paso recibe como entrada la matriz de
adyacencia del grafo pesado y sigue el proceso descrito en el marco teórico. En resumen,
primero se calcula el Laplaciano Generalizado del grafo pesado con la ecuación (2.3). A
continuación, se encuentran los valores propios de la matriz resultante. El conjunto de estos
valores propios forma el espectro generalizado del grafo pesado. El número de valores
propios es igual al número de vértices del grafo. Un valor propio 0 no aporta información.
En esta tesis se normaliza el número de elementos del espectro aumentando ceros. El
43
número de valores propios que tendrán todos los espectros es igual al número de vértices
del grafo de mayor número de vértices. En la Tabla 4.6 se muestran los espectros de los
grafos y de la Figura 4.1.
La red neuronal SOM tiene la gran ventaja de que puede entrenarse y evaluarse en
tiempo polinomial. La entrada del algoritmo de entrenamiento es un conjunto de ejemplos
de entrenamiento (grafos de entrada), cuyo número se representa con En el proceso de
entrenamiento, estos ejemplos con un máximo número de vértices deben evaluarse con
neuronas de la capa de salida, y modificar el peso de una neurona ganadora y sus vecinos.
El proceso se repite un número de épocas que se entrena la red (Haykin, 2005). Entonces,
la complejidad de la red neuronal SOM está acotada por .
44
resultado. La función inicia con la generación de la lista de códigos VEV para todo el
conjunto de entrada. La función de creación de códigos VEV se ejecuta con todos los
enlaces de los grafos en . Crear un código VEV es una operación que se puede ejecutar en
un tiempo constante y se debe repetir por todos los enlaces del conjunto de entrada . El
número de enlaces de en el peor de los casos con grafos completos sería .
El proceso de inserción tiene una cota superior de donde es el máximo número de
elementos de la lista. Dadas las listas de etiquetas de vértices y de enlaces de todo
El siguiente paso del algoritmo es generar el Laplaciano generalizado para todos los
grafos del conjunto de entrada. En este proceso se elabora una matriz cuadrada siguiendo la
ecuación (2.3) descrita en el marco teórico para el Laplaciano generalizado propuesta en
(Chung, 1994). El tamaño de la matriz es igual al número de vértices del grafo. Los grafos
de entrada tienen como máximo vértices. Finalmente, esta etapa del proceso quedará
acotada por , donde m es .
Función
Entrada:
Salida:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
45
En la obtención del espectro se necesitan los valores propios del Laplaciano
generalizado. El cálculo de valores propios tiene una complejidad de (Press,
Teukolsky, Vetterling, & Flannery, 1988). Entonces, la generación de espectro para todos
los grafos tiene una complejidad de .
46
comparar . Enseguida se construye la siguiente matriz de similaridades
entre grupos:
(4.1)
En las filas de esta matriz se encuentran los grupos de y en las columnas los grupos
de . En cada posición de la matriz se asigna un valor que indica cuán similares son los
conjuntos y . La función cumple los requisitos para ser una función de
similaridad entre dos conjuntos. La calidad del agrupamiento se obtiene con la ecuación:
(4.2)
En el mejor caso, cuando cada tenga los mismos elementos que uno y solo uno de los
grupos y además no compartan elementos con ningún otro grupo, vale 1. Esto es porque en
cada fila y en cada columna de la matriz sólo existe un valor de 1 y las otras posiciones de la matriz
son 0. En el peor caso será un número cercano a , lo que significa que los grupos de y son
diferentes.
En cada grupo obtenido por Spectral_SOM se realiza una búsqueda de patrones útiles.
La búsqueda de patrones sigue un proceso de crecimiento de patrones 7. La entrada del
algoritmo es un conjunto de grafos previamente clasificados como positivos o negativos,
mientras que la salida es una lista de subgrafos útiles , los cuales representan
más a los ejemplos positivos y menos a los ejemplos negativos. Esta lista de grafos se
puede utilizar como una lista de decisión para reconocer ejemplos que no participaron en el
proceso de entrenamiento, lo que se denomina concepto (González, Holder, & Cook, 2001).
El algoritmo de búsqueda de patrones útiles utilizando códigos DFC se denominó
CL_COBRA (Concept Learning COde Based Representation Algorithm).
7
Ver definición de crecimiento de patrones en Anexo A.
47
Los parámetros de entrada al algoritmo son: el número subgrafos a mantener en la lista
parcial , el mínimo que debe cumplir cada subgrafo, el peso extra con el que
se castiga a los subgrafos que representan a grafos negativos , el número
total de grafos positivos y el número total de grafos negativos. También se tienen dos
banderas que son y . Cuando se marca
, al terminar de procesar un código VEV, éste se elimina de . De esta
forma, la próxima iteración del algoritmo, se tendrá un conjunto de menor tamaño.
Complementariamente, si se marca , se implementa una estrategia set
covering. Es decir, cuando se selecciona un patrón se eliminan los ejemplos positivos que
contienen a este patrón.
El siguiente paso consiste en eliminar todos los códigos VEV que no cumplan con el
soporte mínimo8 requerido por el usuario ( ) y se eliminan los códigos VEV que
únicamente representen ejemplos negativos y no representen ejemplos positivos.
Continuando con la función, los grafos son indexados de acuerdo a los códigos VEV
de sus enlaces. El proceso de indexar se muestra en la Tabla 4.9. Entonces, se toma el
primer índice, el cual relaciona a todos los enlaces con un código VEV en particular y los
grafos que los contienen. El proceso continúa minando todos los subgrafos que se obtienen,
haciendo crecimiento de patrones, con ese índice. Este proceso se muestra en la Tabla 4.10.
8
El soporte se define como el número de apariciones de un objeto en un conjunto determinado. El
soporte mínimo es un umbral definido por el usuario para considerar solo los elementos que al menos se
repitan un número de veces.
48
Una vez que se tienen los subgrafos útiles minados a partir del índice, si está activada la
bandera se eliminan los grafos positivos representados por los
patrones. Luego entonces estos subgrafos útiles se añaden a y se remueven
de la lista parcial . Finalmente, si está marcada la bandera se
eliminan todos los enlaces de relacionados por el índice, para disminuir el tamaño de .
El proceso continúa hasta recorrer todos los índices. Cabe hacer notar que existe un índice
por cada tipo de código VEV.
Función
Entrada:
Salida:
1.
2.
3.
4.
5.
6. ,
7.
8.
9.
10.
11.
12.
13.
49
enlaces se manejan como dirigidos, es decir, diferencian el origen del destino, y se
representan por .
La Tabla 4.9 contiene la función Indexar, la cual, al crear el índice, relaciona los
enlaces considerando su dirección. El proceso recorre todos los grafos de . Entonces, la
función hace un barrido de los vértices de cada grafo. A continuación se revisan todos los
enlaces adyacentes al vértice, se asocia cada enlace y el grafo que lo contiene con un índice
respectivo según el código VEV del enlace, entonces se inserta en el índice general. Esto
permite probar todos los inicios posibles de un enlace tanto los que parten desde
hacia como de hacia .
Tabla 4.9. Función que crea un índice de todos los enlaces y grafos según su código
VEV.
Función
Entrada:
Salida:
1.
2.
3.
4.
5.
6.
7.
8.
9.
50
realizar expansiones innecesarias. La estructura de gSpan se basa en los códigos DFS, en un
trabajo a futuro se puede adaptar la estructura utilizada por gSpan a los códigos DFC, para
aumentarla a este algoritmo.
Tabla 4.10. Minar Subgrafos. Busca los subgrafos más útiles que crecen a partir de
enlaces con un código VEV dado.
Procedimiento
Entrada:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
9
Un grafo completamente conectado es aquel en el que todos sus vértices están interconectados por un
enlace.
51
completamente conectados es igual a , donde es el número de vértices. La
demostración de este valor se puede ver en (Chung, 1994).
Un grafo puede ser extendido adicionándole una nueva arista . El grafo resultante
de esta extensión se denota como . Se suele decir que es un hijo de en el
espacio de búsqueda, y que es el padre de (Gago, 2010).
(4.3)
52
El subgrafo que cumple con el soporte mínimo, se considera útil cuando representa al
menos al doble de ejemplos positivos que ejemplos negativos, entonces se le calcula el
valor de error con la ecuación de error y es insertado en la lista parcial , la cual
solo mantiene los -mejores patrones sin duplicados y desecha los de menor valor de
evaluación. Desechar los otros patrones disminuye el número de pruebas de isomorfismos
requeridas para desechar grafos duplicados. Se modificó el algoritmo SICOBRA para que
pueda realizar pruebas de isomorfismo o subisomorfimo. Se cambió también para que
devuelva el número de ejemplos positivos y el número de ejemplos negativos en los que
está presente un grafo. Además, se aumentó que devuelva una lista apuntando a todos los
grafos positivos que contienen al subgrafo objetivo. Estos cambios se explican mejor en la
sección 4.3.1.
La lista parcial considera que los mejores patrones son los que menor error tienen.
Además, ordena los patrones poniendo en las primeras posiciones los de menor error.
Luego entonces, si un subgrafo tiene un error de 0 se retiran todos los ejemplos positivos
que representa, ya que es el mejor patrón posible.
El procedimiento descrito se muestra en la Tabla 4.11. Las entradas son: el vértice guía
, el subgrafo que está creciendo , el conjunto de grafos de entrada , la lista de
subgrafos útiles, y el evaluador el cual contiene los parámetros de evaluación. No es
necesario que ingrese el grafo que se utiliza como guía ya que es un grafo conectado, y a
partir del vértice guía se puede recorrer todo el grafo guía.
53
considera traslapes o no, en un pequeño ejemplo ejecutado se obtuvo un resultado que
SICOBRA si considera traslapes.
Tabla 4.11. Procedimiento Visitar del Algoritmo SICOBRA. Visita los vértices del
grafo dado partiendo de un enlace en particular, buscando los subgrafos útiles.
Procedimiento
Entrada:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
54
4.3.1 Algoritmo SICOBRA-Modificado
Función -
Entrada:
Salida:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
55
La modificación realizada al algoritmo SICOBRA solo incrementa el número de
operaciones en un valor constante, entonces se puede decir que el algoritmo mantiene su
complejidad original que es exponencial por manejar un problema NP-Completo (Olmos
Pineda, 2006) ya que los valores constantes se pueden despreciar (Brassard & Bratley,
1996).
Tabla 4.13. Algoritmo de poda modificado para asociar todos los grafos conexos con
su padre.
Función -
Entrada:
Salida:
1.
.
2.
.
3.
:
y
.
4.
5.
6.
56
grafos que integra una primera fase no supervisada para dividir los datos y otra supervisada
que realiza la búsqueda de patrones útiles sin generación de candidatos.
57
4.5 Resumen del algoritmo desarrollado
58
Capítulo 5. Resultados experimentales
Las bases de datos bioquímicas, en especial las colecciones de moléculas, forman uno
de los principales campos de aplicación de la minería de datos basada en grafos
etiquetados. El repositorio de datos bioquímicos más utilizado en el estado del arte es el del
“Predictive Toxocology Challenge” (Helma & Kramer, 2003). El “US National Toxicology
Program (NTP)” realizó ensayos químicos, exponiendo roedores (ratas y ratones) a un
grupo de compuestos químicos, con la intención de identificar sustancias que podrían
causar cáncer en seres humanos. De los grupos de ensayos se seleccionó el de
“TREYMERS”, el cual se denominará conjunto PTC. La base de datos PTC está disponible
en http://www.predictive-toxicology.org10. Este conjunto de datos incluye una
especificación clara de la relación estructural de los compuestos químicos. Los ensayos de
10
La descripción del grupo de ensayos seleccionados se encuentra en: http://www.predictive-
toxicology.org/ptc/data/treymers.txt
59
PTC están divididos en datos de entrenamiento y prueba, además cuentan con un archivo
que indica un agrupamiento de los ensayos de entrenamiento y otro archivo con el
agrupamiento de los ensayos de prueba. Los datos de PTC también contienen datos no
estructurados que se obtuvieron en los ensayos químicos; aumentar estos datos implica
aumentar enlaces a todos los datos estructurados para relacionarlos con un vértice central y
éste asociarlo con los datos no estructurados. Considerar estos datos mejoraría los
resultados de predicción pero aumentaría considerablemente el tiempo de ejecución. Se
decidió trabajar únicamente con las relaciones estructurales, ya que ese es nuestro objetivo
inicial.
Los datos del conjunto PTC se convirtieron con grafos utilizando dos representaciones.
La primera considera únicamente los átomos y sus relaciones estructurales (ver Figura 5.1);
no se consideraron otros datos sin información estructural. La segunda representación
considera los electrones de cada átomo y la capa en que se encuentran (ver Figura 5.2). Los
nombres de las capas se representan por un número, al que se llamará parte numérica,
seguido de un conjunto de letras como s, px, etc., las cuales se llamarán parte alfabética.
Los nombres de las capas se tomaron del archivo de datos del PTC (http://www.predictive-
toxicology.org/ptc/data/TREYMERS.tar.gz).
En la Figura 5.1 se muestra la primera representación utilizada. Por cada átomo se crea
un vértice cuya etiqueta es el compuesto del átomo, por ejemplo: O oxígeno, H hidrógeno,
etc. Las etiquetas se tomaron del archivo de datos del PTC. A continuación, se dibuja un
enlace por cada enlace molecular. La etiqueta del enlace es el número de electrones que
comparten los átomos en el enlace molecular. Este número es un entero que va de 1 a 7. La
parte a) muestra un esquema de un grafo para una molécula de cuatro átomos en el que se
aumenta un enlace por cada enlace molecular existente y b) muestra un ejemplo de una
molécula de agua compuesta por dos átomos de hidrógeno y uno de oxígeno con dos
enlaces de un electrón.
60
Figura 5.1. Ejemplo de la primera representación de moléculas utilizada, a) muestra
una molécula de 4 átomos conectados con cuatro enlaces, b) es una molécula de agua .
La Figura 5.2 presenta en a) un esquema con la relación entre los átomos y además se
dibuja la relación con sus electrones. Cada átomo tiene un conjunto de electrones en
diferentes capas; se dibuja un vértice por cada electrón unido al átomo por un enlace. La
etiqueta de este enlace es la parte numérica del nombre de la capa, y la etiqueta del vértice
es la parte alfabética del nombre de la capa en la que se encuentra el electrón. Los datos del
PTC han sido utilizados para evaluar varios algoritmos que manejan datos estructurados, y
se pueden considerar como un benchmark con el que se han validado algoritmos como
SubdueCL (González, Holder, & Cook, 2001), SICOBRA (Olmos Pineda, 2006) y otros
(Toivonen, Srinivasan, King, Kramer, & Helma, 2003).
Los datos del PTC han sido utilizados para probar algoritmos para datos estructurados
como son los basados en lógica (Toivonen, Srinivasan, King, Kramer, & Helma, 2003).
61
Los datos del PTC también tienen un grupo específico de datos para pruebas. Estos
datos se unieron con los datos de entrenamiento, la finalidad fue tener una base de datos de
mayor tamaño. Este conjunto de datos es el que se utilizó en las pruebas del algoritmo
CL_COBRA y KODDISSOM _COBRA. Las características de la base de datos del PTC se
muestran en la Tabla 5.1. En la tabla, la primera columna contiene el nombre de la
característica, la segunda tiene los valores de la representación basada en grafos que
considera electrones, la tercera columna muestra los valores de los grafos que no toman en
cuenta los electrones, y por último la cuarta columna contiene las características de la base
de datos PTC que une los ejemplos de prueba y entrenamiento.
Los valores ND, en la Tabla 5.1, significan "no disponible". Los grafos de los
conjuntos "Con Electrones" y "Sin Electrones" se utilizaron para las pruebas de
agrupamiento, por esa razón no se especificó la clase. El número total de grupos de la base
de datos PTC es de 49.
62
etiqueta “objeto”, a partir de este vértice parte un enlace por cada atributo, cada enlace tiene
de etiqueta el nombre del atributo y llega a un vértice cuya etiqueta es el valor del atributo.
Los grafos utilizados en este caso de prueba se muestran en la Figura 5.3. La figura
contiene dos grupos de grafos. El primer grupo fue generado a partir de datos relacionados
al clima que se muestran en la Tabla 5.2. Los grafos se construyeron con un vértice en el
centro con la etiqueta ex; por cada columna se aumenta un vértice, el nombre de la columna
es la etiqueta del enlace y el valor de la columna es la etiqueta del vértice. Estos datos son
utilizado en sistema de clasificación ya que tienen características que se pueden dividir, se
espera encontrar subgrupos dentro de este grupo. El segundo grupo es un conjunto de
grafos no isomorfos pero que tienen etiquetas similares y estructura similar, existen
estructuras semejantes pero con diferentes etiquetas se espera que se creen subgrupos
considerando tanto la estructura como las etiquetas.
La tabla de datos del clima es un ejemplo no estructural que fue llevado a una
representación de grafos conectados no dirigidos.
63
Tabla 5.2. Ejemplos de datos relacionados al clima
Figura 5.3. Primer conjunto de grafos, consta de dos grupos: a) grafos generados a
partir del ejemplo del clima, y b) grafos no isomorfos que comparten etiquetas y muestran
una estructura similar (Fonseca, Gómez-Gil, González, & Olmos, 2011).
64
obtención de 5 grupos. Los ejemplos generados a partir de la tabla del clima quedaron
agrupados en las posiciones y de la capa de salida, mientras que el otro grupo
de grafos quedó distribuido en las posiciones , y . Hay que recordar que
cada posición representa un grupo de grafos; estos fueron marcados con colores diferentes
en la Figura 5.4. Los identificadores de los grafos contenidos en cada grupo se muestran
encerrados en la posición respectiva. La Figura 5.4 muestra la capa de salida y los grupos
obtenidos por la red SOM (Fonseca, Gómez-Gil, González, & Olmos, 2011).
Figura 5.4. Agrupamiento obtenido de los datos de prueba del caso 1. Los grupos
generados a partir de la tabla de datos del clima quedaron en grupos continuos en la parte
inferior de la figura, mientras que los otros ejemplos se muestran en los grupos de la parte
superior (Fonseca, Gómez-Gil, González, & Olmos, 2011).
La Figura 5.5 muestra los ejemplos coloreados según el grupo al que fueron asignados.
Si asignamos los colores de cada grupo que observamos en la Figura 5.4 a los ejemplos
representados se obtiene la Figura 5.5, en ésta, cada grafo tiene un color que lo asocia con
su grupo.
El conjunto de entrada tiene dos grupos como se observa en la Figura 5.3. Los grafos
de cada grupo tienen diferencias entre sí y eso se refleja en la Figura 5.4 al obtenerse varios
grupos. El algoritmo Spectral_SOM separó el conjunto de entrada en 5 grupos sin embargo
los grupos de grafos quedaron más cerca de los grupos que contienen grafos similares, y
más lejos de los grupos con grafos diferentes, esto se puede validar visualmente.
65
Figura 5.5. Grafos coloreados de acuerdo al grupo al que fueron asignados, a) contiene
los grupos de datos del clima y b) los grupos de los ejemplos artificiales. Se puede ver que
el agrupamiento separó los ejemplos de a) y b) (Fonseca, Gómez-Gil, González, & Olmos,
2011).
El algoritmo Spectral_SOM también fue ejecutado utilizando una capa de salida de 1x2
neuronas en la red SOM. La red se entrenó durante 500 épocas. El agrupamiento obtenido
es el ideal con dos conjuntos de grafos, el primer conjunto tiene todos los grafos del grupo
a) y el segundo conjunto tiene los grafos del grupo b). Se pude concluir que el algoritmo
Spectral_SOM separó correctamente los grafos de este conjunto de prueba.
66
En este experimento se ejecutó GraphClust con su configuración por defecto, “sin
ajuste manual”, también se ejecutó GraphClust buscando manualmente la mejor
configuración, “con ajuste manual”. A continuación, se compararon los resultados con el
agrupamiento del experto. Los resultados se muestran en la Tabla 5.3, los mejores
resultados están marcados con negrita. Los agrupamientos fueron evaluados con la función
de evaluación propuesta (CQ) y una función de similaridad de agrupamientos (MC)
propuesta por Rand (Rand, 1971). Tanto GraphClusst como Spectral_SOM recibieron
como parámetro el número de grupos que es igual a 49.
GraphClust Spectral_SOM
Sin ajuste manual Con ajuste manual Por Defecto
PTC con Evaluación MC 0.2766 0.9153 0.9195
electrones Evaluación CQ 0.3166 0.4198 0.3321
Tiempo 350.20 357.60 6 148.61
[segundos]
Esponjas Evaluación MC 0.6691 0.8937 0.8053
Evaluación CQ 0.3890 0.7213 0.4269
Tiempo 60 60 3.69
[segundos]
67
comparar GraphClust (con sus parámetros por defecto) con el agrupamiento dado se obtuvo
. Considerando que el mejor caso es cuando y en el peor
caso tiende a 0. En este experimento , se concluye que
para este conjunto de datos Spectral_SOM realizó un mejor agrupamiento que la primera
configuración de GraphClust (Fonseca, Gómez-Gil, González, & Olmos, 2011). La
evaluación utilizando la función de similaridad MC favorece por 0.6 puntos al
agrupamiento obtenido por Spectral_SOM. El tiempo de ejecución de GraphClust fue
menor al de Spectral_SOM, esto se debe a que GraphClust tiene programada una
restricción del tamaño del grafo, entonces este algoritmo omitió los enlaces que no aportan
mucha información y trabajó con grafos más pequeños.
68
Tabla 5.4. Comparación del algoritmo Spectral_SOM y el algoritmo GraphClust
utilizando la representación sin electrones del conjunto PTC.
GraphClust Spectral_SOM
Sin ajuste manual Con ajuste manual Por Defecto
Evaluación MC 0.2766 0.9134 0.9328
Evaluación CQ 0.2831 0.4208 0.3023
Tiempo ejecución [segundos] 521.2 516 6.635
Los resultados fueron evaluados con una prueba de hipótesis nula, en la cual se
rechazo la hipótesis de que la media de la diferencia es 0. En la Tabla 5.4 se observa que
utilizando la función de similaridad el mejor resultado lo obtuvo spectral_som, mientras
que con la función de evaluación CQ el valor devuelto por graphclust, utilizando la
distancia euclidiana, fue el mejor agrupamiento. Finalmente, el tiempo de ejecución de
Spectral_Som fue mucho menor.
En la Figura 5.6 las relaciones tienen una dirección que indica su origen y destino. El
concepto casa consta de un objeto con forma de triángulo que se encuentra sobre un objeto
con forma de cuadrado, ésta es la abstracción que representa el grafo de la derecha.
69
Figura 5.6. Grafos del ejemplo casa de Subdue (González, Holder, & Cook, 2001).
Figura 5.7. Imágenes adaptadas del ejemplo casa de Subdue, cada imagen representa a
un grafo del ejemplo, grises positivos (5, 6, 7, 8) y rojos negativos (1, 2, 3, 4).
Por ejemplo, la imagen 1) de la Figura 5.7, representa un objeto con forma de cuadrado
sobre un objeto con forma de triángulo, el cual a su vez está sobre otro objeto con forma de
triángulo; éste es un ejemplo negativo. La imagen 7) representa un objeto con forma de
triángulo, sobre un objeto con forma de cuadrado, sobre un objeto con forma de rectángulo.
70
El algoritmo CL_COBRA fue ejecutado con un de tamaño 3 por defecto, con un
soporte mínimo de 10%. La Figura 5.8 fue generada utilizando una interfaz también
construida en esta tesis, la interfaz permite dibujar grafos gracias al software GraphViz
(http://www.graphviz.org/). Los grafos se pueden dibujar en cada momento de la
expansión, cada grafo tiene una etiqueta con su nombre. El poder visualizar el recorrido en
el grafo ayuda a verificar si el algoritmo está funcionando correctamente.
1) 2)
n)
Figura 5.8. Ejemplo del proceso de expansión seguido por el algoritmo de búsqueda.
Inicia en (1) en el vértice 5 y el vértice 2; en (2) se expande al vértice 1. Cada subgrafo es
evaluado. Si el subgrafo cumple con el soporte mínimo el proceso se repite hasta recorrer
todo el grafo.
En la Figura 5.8, los vértices y enlaces en color azul son los visitados. En 1) el vértice
5 y el enlace (5,2) ambos en verde son el enlace inicial. Los enlaces no dirigidos se dibujan
como dos enlaces dirigidos en ambas direcciones. La Figura 5.8 mantiene los nombres
originales de las etiquetas en inglés, ya que así se utilizaron en el experimento. La búsqueda
71
inicia a partir de los enlaces con menor código VEV11, como se muestra en la. A partir del
enlace se va expandiendo el grafo; el siguiente enlace a aumentar es
. Posteriormente se valida si el grafo creado cumple con el requerimiento
de soporte. Si cumple el requerimiento se inserta en la lista parcial, si la lista tiene más de
beam elementos se elimina el último en función de su error ver ecuación (4.3). Luego
entonces, se sigue expandiendo hasta completar el grafo. El proceso se repite con todos los
inicios posibles en cada grafo hasta encontrar grafos que no tengan error o hasta terminar el
espacio de búsqueda.
Al ejecutar CL_COBRA con un soporte mínimo del 50% se encuentra un solo patrón
con error 0, este se muestra en la Figura 5.9, el subgrafo representa a una casa formada por
un objeto triángulo sobre un objeto cuadrado. Dado el orden que sigue el algoritmo
CL_COBRA desarrollado, se encontró también que las casas siempre se encuentran sobre
otro objeto; esto se puede apreciar en los ejemplos de entrenamiento.
Figura 5.9. Patrón encontrado por el algoritmo de CL_COBRA; se utilizó los grafos
del ejemplo casa de Subdue y un 50% de soporte mínimo.
11
Ver sección 4.1.1 para una explicación del cálculo de la lista de códigos VEV.
72
esa razón no se identifica su forma. Se concluye que el sistema aprendió el concepto de
casa (triangulo sobre un cuadrado) y una característica extra: que las casas siempre están
sobre otro objeto. Por lo tanto la búsqueda de conceptos para este conjunto de datos
funcionó correctamente.
Tabla 5.5. Resultados del algoritmo CL_COBRA con la base de datos house y
validación cruzada de 8 pliegues, se varió el soporte y la bandera de eliminar ejemplos.
73
embargo los resultados de clasificación en general son mejor cuando no se eliminan los
ejemplos.
Tabla 5.6. Resultados del algoritmo Subdue_CL con la base de datos house y
validación cruzada de 8 pliegues, se varió beam y el número de iteraciones.
74
En este caso de prueba se crearon grafos sintéticos, a partir de semillas conocidas para
asegurar que los patrones encontrados sean correctos. Los grafos se crearon utilizando la
herramienta subgen, la cual se puede descargar de http://ailab.wsu.edu/subdue. Esta
herramienta crea un nuevo grafo aumentando vértices y enlaces a un grafo semilla. Se
definieron dos semillas, que se muestran en la Figura 5.10: a) la semilla positiva de color
gris y b) la semilla negativa de color rojo. Las semillas seleccionadas son muy similares
entre sí, teniendo solo dos enlaces de diferencia.
Figura 5.10. Semillas utilizadas para generar los grafos del caso de prueba. La semilla
positiva es el grafo a) y la semilla negativa es el grafo b).
75
20%, sin embargo no sucedió lo mismo al aumentar el soporte de 5% a 10%. En el caso del
soporte mínimo de 20% se eliminaron muchos enlaces aumentados por subgen; los
patrones encontrados fueron las semillas originales. En los casos de 5 y 10% se encontraron
otros patrones aumentados por el generador de grafos; sin embargo en el caso del 10%, se
encontraron grafos de mayor tamaño antes de encontrar el subgrafo de error 0 que
diferenciaba a todos los ejemplos positivos de los ejemplos negativos. En general se
esperaba que al aumentar el soporte disminuyera el tiempo esto sucedió solo hasta
aumentarlo al 20%, el crecimiento no lineal al aumentar el número de grafos se debe al
cálculo de la lista de códigos VEV.
Utilizando los mismos datos se ejecutó el algoritmo SubdueCL con un parámetro beam
de 10; los resultados obtenidos por SubdueCL se compararon con los obtenidos por la
Búsqueda de Conceptos con un soporte de 20%. Los resultados se muestran en la Figura
76
5.12. Se puede notar que utilizando este conjunto de datos, el algoritmo SubdueCL y el
algoritmo de CL_COBRA son muy competitivos en cuanto a tiempo de ejecución. Con
pocos grafos, la estrategia de búsqueda beam de SubdueCL fue más eficiente en tiempo; al
aumentar el número de grafos disminuye la tendencia de crecimiento del algoritmo
Búsqueda de Conceptos con respecto a la tendencia del algoritmo SubdueCL.
77
Agrupamiento Spectral_SOM
90
80
70
Tiempo [Segundos] 60
50
40
30
20
10
0
0 500 1000 1500 2000 2500 3000
Número de grafos
Figura 5.13. Tendencia de crecimiento en tiempo del agrupamiento realizado con la red
Spectral_SOM con el conjunto de datos generado artificialmente. Se varía el número de
grafos, el número de enlaces y vértices permanece constante.
78
Figura 5.14. Tendencia en tiempo al aumentar el número de vértices y el soporte
mínimo utilizando el algoritmo CL_COBRA.
A continuación, se probó con los mismos datos, pero utilizando el algoritmo SubdueCL
con un beam de 10. En la Figura 5.15 se observa que con este conjunto de ejemplos la
tendencia de crecimiento del tiempo de ejecución de SubdueCL es menor que la obtenida
por CL_COBRA. Esta tendencia es menor gracias a la estrategia de búsqueda beam que
implementa SubdueCL, y principalmente por la representación de los datos del PTC ya que
son grafos con pocos enlaces.
79
Figura 5.15. Comparación del algoritmo de CL_COBRA con el algoritmo SubdueCL
al utilizar ejemplos sintéticos en los que varía el número de vértices y de enlaces.
Cabe mencionar que implementar este tipo de algoritmos es muy complicado, ya que
se requiere utilizar estructuras muy eficientes. El algoritmo de SubdueCL se encuentra
implementado en el software Subdue, el cual ha sido optimizado continuamente en cuanto a
estructuras de datos; su última versión se publicó el año 2011. La versión del algoritmo
implementada en esta tesis mejoraría utilizando un indexado inverso para el manejo de
listas. Un aporte que ayudaría a disminuir la complejidad del algoritmo es disminuir el
número de subgrafos que son evaluados innecesariamente, esto se podría hacer incluyendo
la estrategia del punto de corte desarrollado por Gago (Gago, 2010).
80
Los patrones encontrados por los dos algoritmos fueron evaluados utilizando el
software Test de Subdue. Test recibe un conjunto de patrones y un conjunto de prueba,
luego entonces clasifica los elementos del conjunto de prueba utilizando el conjunto de
patrones. Un ejemplo se clasifica como positivo si contiene a alguno de los elementos del
conjunto de patrones, si no contiene ningún elemento entonces se clasifica como negativo.
Los resultados obtenidos por los dos algoritmos se analizan calculando el área bajo la curva
ROC (descrita en el capítulo de Marco Teórico).
El área bajo la curva ROC, obtenida con los resultados del CL_COBRA con un soporte
de 1%, activando la bandera eliminar ejemplos es de 0.62 en 2939 segundos. Utilizando el
algoritmo SubdueCL con un beam de 20 y 70 iteraciones, se obtuvo un área bajo la curva
ROC de 0.61 en 784 segundos. Las gráficas de las curvas ROC se muestran en la Figura
5.16. La curva ROC fue trazada utilizando un único punto ya que el clasificador solo
devuelve verdadero o falso. Se requiere un clasificador que devuelva un porcentaje de
certeza para obtener más puntos en la curva ROC.
81
Gráfica ROC - CL_COBRA y SUBDUE_CL con
datos del conjunto PTC
1
0.9
0.8
Tasa de verdaderos positivos
0.7
0.6
0.5 No significativo
0.4 SUBDUE_CL
CL_COBRA
0.3
0.2
0.1
0
0 0.2 0.4 0.6 0.8 1
Tasa de falsos positivos
Figura 5.16. Curvas ROC obtenidas con el algoritmo CL_COBRA y SubdueCL con los
datos del PTC sin considerar datos no estructurales ni vértices para los electrones.
CL_COBRA con soporte mínimo de 1% y activada la bandera de eliminar ejemplos,
SUBDUE_CL con un beam de 20 y 70 iteraciones.
Se puede concluir que los patrones obtenidos por el algoritmo CL_COBRA son
competitivos con los obtenidos por el algoritmo SubdueCL en este conjunto de datos y en
algunos casos pueden ser mejores. Además el algoritmo CL_COBRA puede disminuir su
tiempo de ejecución aumentando el soporte mínimo aunque en este caso no es conveniente
ya que se eliminan ejemplos representativos de la base de datos. Los ejemplos se eliminan
por que la base de datos no está balanceada. El problema de clases desbalanceadas no se
trabaja en esta tesis.
82
Tabla 5.7. Ejecución del algoritmo KODISSOM_COBRA con redes SOM de 10x10,
5x5, también se varía el agrupamiento incluyendo vecinos a 1 posición de distancia (1) y
agrupamiento de positivos considerando en cada grupo a los negativos (-1).
5.7 Discusión
83
También se evaluaron los resultados con la función de similaridad de agrupamientos
propuesta por Rand (Rand, 1971), el algoritmo Spectral_SOM obtuvo mejores resultados
que GraphClust con su configuración por defecto.
84
Capítulo 6. Conclusiones, aportaciones
y trabajo futuro
Los grafos son una poderosa herramienta de representación que ha sido ampliamente
utilizada en el área de aprendizaje automático y minería de datos. Una forma de buscar
patrones novedosos y útiles para la toma de decisiones es realizando pruebas de sub-
isomorfismo. Estas pruebas son un problema NP-Completo. En este trabajo se presentan
algoritmos para buscar información relevante tratando de disminuir el tiempo de ejecución.
85
resultados en algunos casos y requirió menor tiempo de ejecución puesto que su
complejidad es polinomial en cambio la complejidad de GraphClust es exponencial.
6.1 Conclusiones
En el estado del arte, puede notarse que los algoritmos que calculan el espectro de
grafos solo consideran las etiquetas de los vértices (Schaeffer, 2007). Si se desea extender
esos algoritmos para considerar las etiquetas de los enlaces, una alternativa sería aumentar
vértices que contengan las etiquetas de los enlaces. En consecuencia, se aumentaría
86
notablemente el tiempo de ejecución ya que el cálculo del espectro depende del número de
vértices. En comparación, el espectro propuesto permite aumentar la información de las
etiquetas de los enlaces sin la necesidad de aumentar nuevos vértices al grafo. En este
mismo sentido, el algoritmo Spectral_SOM es un algoritmo de agrupamiento de grafos
etiquetados que tiene un orden polinomial. Este algoritmo se puede aprovechar mejor en
escenarios donde los grafos tienen muchos enlaces, o están cerca de ser completos ya que el
proceso de mayor complejidad depende del número de vértices y no del número de enlaces.
Por otro lado, los algoritmos basados en crecimiento de patrones en el peor de los casos
revisan todos los enlaces, teniendo su peor escenario cuando se manejan grafos altamente
conexos.
6.2 Aportaciones
87
considera mayor información. Basado en el espectro propuesto se desarrolló el algoritmo de
agrupamiento de grafos etiquetados Spectral_SOM.
Fonseca, R. S., Gómez-Gil, P., González, J. A., & Olmos, I. (2011). Finding Patterns in
Labeled graphs Using Spectrum Feature Vectors in a SOM Network. International Joint
Conference on Neural Networks IJCNN 2011 (pág.77-85). San Jose, California: IEEE.
88
Dado que el tiempo de ejecución de los algoritmos que buscan subgrafos
discriminativos depende del número de enlaces de los grafos, se propone investigar la
aplicabilidad y eficacia que se podría conseguir al trabajar con grafos no conexos que
representen a los datos. Por un lado se aprovecharían las ventajas de la información
estructural que sería la parte conexa, y por otro lado se utilizaría también la información no
estructural, sin aumentar enlaces que incrementan el tiempo de ejecución de los algoritmos.
89
90
Referencias
Aggarwal, C. C., & Wang, H. (2010). Managing and Mining Graph Data (First ed.). New
York, United States of America: Springer.
Agrawal, R., & Srikant, R. (1994). Fast Algorithms for Mining Association Rules.
Proceedings of the 1994 International Conference on Very Large Data Bases (VLDB’94),
(pp. 487-499). Santiago, Chile.
Brassard, G., & Bratley, P. (1996). Fundamentals of Algoritmics (First ed.). (I. Zucker, Ed.)
New Jersey, United States of America: Prentice Hall.
Bunke, H., & Riesen, K. (2011). Recent advances in graph-based pattern recognition with
applications in document analysis. Pattern Recognition , 1057–1067.
Caicedo Barrera, A., Wagner de García, G., & Méndez Parra, R. M. (2010). Introducción a
la teoría de grafos (Primera edición ed.). Armenia, Quindío: Elizcom.
Da San Martino, G., & Sperduti, A. (2010). Mining Structured Data. IEEE Computational
Intelligence Magazine , 5 (1), 42-49.
Djoko, S., Cook, D. J., & Holder, L. B. (1995). Analyzing the benefits of domain
knowledge in substructure discovery. Proceedings of the First International Conference on
Knowledge Discovery and Data Mining (pp. 75-80). Montreal, Canada: American
Association for Artificial Intelligence.
91
Eberle, W., & Holder, L. (2011). Graph-based Knowledge Discovery: Compression vs.
Frequency. International Conference of the Florida Artificial Intelligence Research Society
(FLAIRS) (pp. 1-2). Florida: Florida Artificial Intelligence Research Society.
Fayyad, U., Piatetsky-Shapiro, G., & Smyth, P. (1996). From Data Mining to Knowledge
Discovery in Databases. 17 (3), 37-54.
Fonseca, R. S., Gómez-Gil, P., González, J. A., & Olmos, I. (2011). Finding Patterns in
Labeled graphs Using Spectrum Feature Vectors in a SOM Network. International Joint
Conference on Neural Networks 2011 (p. Por publicar). San Jose, California: IEEE.
Garey, M. R., & Johnson, D. S. (1979). Computers and Intractability, A Guide to the
Theory of NP-Completeness. W. H. Freeman and Company.
Giudici E., R., & Bris Lluch, Á. (1997). Introducción a la teoría de grafos. Caracas,
Venezuela: EQUINOCCIO.
Godsil, C., & Royle, G. (2001). Algebraic Graph Theory (Primera edición ed.). (S. Axler,
F. Gehring, & K. Ribet, Eds.) New York, USA: Springer-Verlang.
Gómez Gil, M. d. (2010, 07). Notas del curso de Redes Neuronales Avanzadas. Retrieved
from "Redes Neuronales Avanzadas": http://ccc.inaoep.mx/~pgomez
92
González Bernal, J. A. (2001). Empirical and Theorical Analysis of Relational Concept
Learning using a Graph-Based Representation, Phd Dissertation. Arlington: The
University of Texas at Arlington.
González, J. A., Holder, L. B., & Cook, D. J. (2001). Graph-Based Concept Learning.
Proceedings of the Florida Artificial Intelligence Research Symposium. Florida: FLAIRS.
González, J., Holder, L., & Cook, D. (2001). Application of Graph-Based Concept
Learning to the Predictive Toxicology Domain. Proc. of the Predictive Toxicology
Challenge Workshop .
Günter, S., & Bunke, H. (2002). Self-organizing map for clustering in the graph domain.
Pattern Recognition Letters , 23, 405–417.
Hagenbuchner, M., Tsoi, A. C., Sperduti, A., & Kc, M. (2008). Efficient Clustering of
Structured Documents Using Graph Self-Organizing Maps. In Focused Access to XML
Documents (Vol. 4862, pp. 207-221). Berlin / Heidelberg: Springer.
Hamerly, G., & Elkan, C. (2003). Learning the k in k-means. Seventeenth Annual
Conference on Neural Information Processing Systems (NIPS) (pp. 281-288). Vancouver:
NIPS.
Han, J., & Kamber, M. (2006). Graph Mining. In J. Han, & M. Kamber, Data Mining:
Concepts and Techniques (2da ed.). University of Illinois at Urbana-Champaign.
Haykin, S. (2005). Neural Networks (Second ed.). Delhi, India: Pearson Prentice Hall.
Helma, C., & Kramer, S. (2003). A survey of the Predictive Toxicology Challenge 2000-
2001. BIOINFORMATICS , 1179-1182.
Holder, L. B., & Cook, D. J. (2005). Graph-Based Data Mining. In J. Wang (Ed.),
Encyclopedia of Data Warehousing and Mining. Idea Group Publishing.
Holder, L. B., Cook, D. J., & Djoko, S. (1994). Substructure Discovery in the SUBDUE
System. Procedings of the AAAI Workshop on Knowledge Discovery in Databases (pp.
169-180). AAAI.
93
Huan, J., Wang, W., & Prins, J. (2003). Efficient Mining of Frequent Subgraph in the
Presence of Isomorphism. Proceedings of the 3rd IEEE International Conference on Data
Mining (ICDM), (pp. 549-552). Melbourne.
Huan, J., Wang, W., Prins, J., & Yang, J. (2004). SPIN: mining maximal frequent
subgraphs from graph databases. Proceedings of the tenth ACM SIGKDD international
conference on Knowledge discovery and data mining, (pp. 581-586). Seattle.
Inokuchi, A., Washio, T., & Motoda, H. (2000). An A priori-Based Algorithm for Mining
Frequent Substructures from Graph Data. In D. Zighed, J. Komorowski, & J. Zytkow
(Eds.), Principles of Data Mining and Knowledge Discovery (pp. 13-23). Osaka, Japón:
Springer Berlin.
Jolliffe, I. T. (2002). Principal component analysis (Segunda edición ed.). New York,
USA: Springer-Verlag.
Ketkar, N. S., Holder, L. B., & Cook, D. J. (2009). Empirical comparison of graph
classification algorithms. Computational Intelligence and Data Mining, (pp. 259-266).
Nashville, TN.
Kohonen, T. (1990). The self-organizing map. Proceedings of the IEEE , 78 (9), pp. 1464-
1480.
Kuramochi, M., & Karypis, G. (2001). Frequent Subgraph Discovery. IEEE International
Conference on Data Mining. California: IEEE International Conference on Data Mining.
Martí, M. A., & Llisterri, J. (2002). Tratamiento del Lenguaje Natural. Barcelona:
Universitat de Barcelona.
Mathai, A. M. (2008). Linear Algebra Part II Determinats And EigenValues. Pala, Kerala,
India: Centre for Mathematical Sciences South, Pala and Hill Area Campuses.
94
Morales, E., & Sucar, E. (2011, 04 25). Notas del curso Inteligencia Artificial. Retrieved
from "Inteligencia Artificial":
http://ccc.inaoep.mx/~emorales/Cursos/Representa/principal.html
Ng, R. T., & Han, J. (1994). Efficient and Effective Clustering Methods for Spatial Data
Mining. Proceedings of the 20th International Conference on Very Large Data Bases (pp.
144-155). San Francisco, CA, USA: Morgan Kaufmann Publishers Inc.
Nijssen, S., & Kok, J. N. (2004). A quickstart in frequent structure mining can make a
difference. KDD '04: Proceedings of the tenth ACM SIGKDD international conference on
Knowledge discovery and data mining (pp. 647-652). Seattle, WA, USA: ACM.
Olmos, I., González, J. A., & Osorio, M. (2006). Inexact Graph Matching: A Case of
Study. Florida Artificial Intelligence Research Society Conference. Florida: FLAIRS.
Press, W. H., Teukolsky, S. A., Vetterling, W. T., & Flannery, B. P. (1988). Numerical
Recipes in C, The Art of Scientific Computing. New York: CAMBRIDGE UNIVERSITY
PRESS.
Rand, W. M. (1971). Objective Criteria for the Evaluation of Clustering Methods. Journal
of the American Statistical Association , 66 (336), 846-850.
Ranu, S., & Singh, A. K. (2009). GraphSig: A Scalable Approach to Mining Significant
Subgraphs in Large Graph Databases. IEEE International Conference on Data
Engineering, (pp. 844-855). Santa Barbara.
Reforgiato, D., Gutierrez, R., & Shasha, D. (2008). GraphClust: A Method for Clustering
Dabase of Graphs. World Scientific , 7 (4), 231-241.
95
Smalter, A., Huan, J., Jia, Y., & Lushington, G. (2010). GPD: A Graph Pattern Diffusion
Kernel for Accurate Graph Classification with Applications in Cheminformatics.
IEEE/ACM Transactions on Computational Biology and Bioinformatics , 7 (2), 197 - 207.
Soussi, R., Aufaure, M. A., & Baazaoui, H. (2010). Towards Social Network Extraction
Using a Graph Database. Second International Conference on Advances in Databases,
Knowledge, and Data Applications, (pp. 28-34). Menuires, France.
Tarjan, R. (1971). Depth-first search and linear grajh algorithms. Foundations of Computer
Science, Annual IEEE Symposium on , 0, 114-121.
Toivonen, H., Srinivasan, A., King, R. D., Kramer, S., & Helma, C. (2003). Statistical
evaluation of the Predictive Toxicology Challenge 2000–2001. BIOINFORMATICS , 19
(10), 1183-1193.
Vesanto, J., & Alhoniemi, E. (2000). Clustering of the Self-Organizing Map. IEEE
Transactions on Neural Networks , 11 (3), 586-600.
Vicens Salort, E., Órtiz Bas, Á., & Guarch Bertolín, J. J. (1997). Métodos Cuantitativos
(Vol. I). Valencia, España: Servicio de Publicaciones.
Yan, X., & Han, J. (2002). gSpan: Graph-Based substructure Pattern Mining. Proceedings
of the 2002 IEEE International Conference on Data Mining (pp. 721-724). Washington:
IEEE Computer Society.
Zeng, Z., Tung, A. K., Wang, J., Feng, J., & Zhou, L. (2009). Comparing stars: on
approximating graph edit distance. Proceedings of the VLDB Endowment , 2 (1), 25-36.
96
Anexo A. Definiciones generales
Propiedad de clausura Descendente
Tipos de grafos
Los enlaces y sus características ayudan a definir tipos de grafos. Todos los enlaces
indican la dirección de incidencia desde el vértice origen al vértice destino sin embargo,
pero al tener una relación bidireccional es más cómodo no indicarla explícitamente,
teniendo de esta manera grafos dirigidos cuando se especifica la dirección de la relación o
no dirigidos en el caso contrario. Por otro lado, un grafo es simple cuando no existen
enlaces que tengan como origen el mismo vértice de destino. Un grafo es llamado completo
si cada par de vértices son adyacentes, y el grafo completo de vértices se denota por .
Un grafo sin enlaces pero con al menos un vértice se denomina vacío. El grafo sin vértices
ni enlaces es el grafo nulo. Una trayectoria es el camino que se recorre para llegar desde un
vértice a otro, la conforman los vértices y enlaces visitados. Si existe una trayectoria que
regrese al vértice origen se dice que el grafo tiene ciclos. Cuando existen trayectorias entre
cualquier par de vértices se tiene un grafo conexo (o conectado) (Vicens Salort, Órtiz Bas,
& Guarch Bertolín, 1997).
Un grafo pesado no dirigido (posiblemente con lazos) tiene asociado a él una función
de pesos satisfaciendo y . Por consiguiente,
si , entonces . Los grafos no pesados son un caso especial donde los
pesos son 0 o 1 (Godsil & Royle, 2001). Los grafos tienen múltiples representaciones, una
de ellas es la matriz de adyacencia12.
12
Ver definiciones formales y conceptos básicos en el anexo de definiciones generales.
97
Definición 2. Grafo etiquetado
En un grafo etiquetado los vértices tienen etiquetas al igual que los enlaces. Un grafo
se puede representar por la 6-tupla conformada por el conjunto de vértices , el conjunto
de enlaces , la lista de etiquetas de vértices y la lista de etiquetas de enlaces .
Adicionalmente, se tienen las funciones de obtención de etiquetas tanto de vértices
como de enlaces . De esta manera, el grafo queda definido por la expresión
(Olmos Pineda, 2006). La frecuencia de un vértice, en un grafo
etiquetado, se puede obtener contando el número de veces que se repite su etiqueta.
Representaciones de grafos
98
Definición 5. Eigenvalores y eigenvectores
Los valores propios o valores característicos son definidos únicamente para matrices
cuadradas. Sea una matriz . Considerando la ecuación (Mathai, 2008)
(A.1)
(A.2)
(A.3)
Los valores propios también se pueden definir como las raíces de la ecuación
"determinantal" (Mathai, 2008).
99
Definición 6. Laplaciano generalizado
(A.4)
Donde es el grado del vértice . Sea T la matriz diagonal formada por los grados de
los vértices. El Laplaciano de G se define por
(A.5)
En otras palabras:
(A.6)
Hay relaciones entre los vértices que no se expresan por medio de pesos, sino usando
etiquetas. Este tipo de grafos se denominan grafos etiquetados.
Distancia y Similaridad
100
Definición 8. Distancia
1.
2.
3.
La primera de las propiedades dice que todas las distancias deben ser no negativas o
visto de otra manera. ¿Qué sentido puede tener una distancia negativa? La segunda
propiedad dice que cada caso no puede distar de sí mismo y la última de las propiedades
establece la simetría. Es decir, que la distancia que puede haber de un caso a otro caso es
la misma que del caso al . En general, cuanto mayor sea la distancia , más
diferentes entre sí serán los casos y .
Definición 9. Similaridad
101
Tal que:
1.
2.
3.
“La primera propiedad dice que la similaridad debe ser no negativa y establece una
escala. La segunda, que cada caso se parece a sí mismo más que a cualquier otro caso y la
última establece la simetría. Y en cuanto a la interpretación se puede decir que cuanto
mayor sea la similaridad , más parecidos entre sí serán los casos y ” (Irigoien &
Arenas, 2006).
102
La distancia de edición de grafos se define como la distancia entre y , denotada
por , y es el costo total de operaciones de edición en el alineamiento óptimo que
lleva del grafo a .
Una red neuronal SOM consta de las siguientes fases (Haykin, 2005):
Adaptación sináptica.- Este último mecanismo, les permite a las neuronas activadas
incrementar sus valores individuales de la función discriminante; en relación a la entrada de
patrones a través de un adecuado ajuste de los pesos sinápticos. El ajuste es tal que mejora
la respuesta ante un patrón de entrada similar. El coeficiente de aprendizaje debe
disminuir con el tiempo . Este requerimiento se satisface con una disminución
exponencial como el propuesto en (Haykin, 2005).
(A.7)
Donde es otra constante de tiempo del algoritmo SOM. La neurona ganadora se define
como la neurona cuyo peso tiene la menor distancia con el vector de entrada, y sigue:
(A.8)
(A.9)
(A.10)
103
Vecindario basado en las posiciones
a) 4 b) 8 c) 12
Vecinos Vecinos Vecinos
d) 16 e) 20 f) 24
Vecinos Vecinos Vecinos
Figura A.1. Vecindarios de 4, 8, 12, 16, 20 y 24 vecinos.
Fase de convergencia.- Esta segunda fase del proceso adaptivo es necesaria para afinar el
mapa de características, para proveer una cuantificación estadística precisa del espacio de
104
entrada. Como regla general, el número de iteraciones debe ser de al menos 500 veces el
número de neuronas en la red (Haykin, 2005).
Aprendizaje de conceptos
Crecimiento de Patrones
Un grafo puede ser extendido adicionándole una nueva arista . Hay dos formas de
realizar esta extensión en dependencia de que la arista esté compuesta por dos vértices de
(extensiones cerradas), o un vértice en y un vértice nuevo (extensiones por vértice).
105
(A.11)
(A.12)
La exactitud se refiere a cuán cerca del valor real se encuentra el valor medio.
(A.13)
(A.14)
(A.15)
Prueba de hipótesis
Una suposición que se hace acerca de la distribución de una variable aleatoria se denomina
una hipótesis estadística. Una prueba de hipótesis es un procedimiento en el cual se utiliza
una muestra con el fin de determinar cuándo se puede “no rechazar” (“aceptar”) la hipótesis
(Kreyszig, 1982).
106
Comparación de las medias de dos distribuciones
Caso A. Las muestras tienen el mismo tamaño. Además, a cada valor de la primera muestra
corresponde precisamente a un valor de la otra.
Caso B. Las dos muestras son independientes y no necesariamente del mismo tamaño.
El caso B requiere una prueba considerando dos variables, mayor información se puede
encontrar en (Kreyszig, 1982).
107
108
Anexo B. Documentación del software
En esta sección está la documentación del software desarrollado para esta tesis. La
primera parte resume los requerimientos generales del sistema. A continuación, está el
manual de usuario de los ejecutables utilizados para los experimentos. La descripción
detallada de las clases construidas se incluye en la carpeta documentación del software, esta
carpeta se encuentra en el CD adjunto.
109
en función del espectro se encuentra en el archivo "somespectral.cpp". El tercer caso de uso
necesita realizar un crecimiento de patrones para poder realizar la tarea de aprendizaje de
conceptos basada en grafos. En este punto se implementó el algoritmo CL_COBRA. El
código se encuentra en el archivo "busqueda.cpp".
System
Framework de Trabajo KODISSOM_COBRA
Usuario
El código está escrito en ANSI C++, por esta razón se puede compilar en la mayoría de
arquitecturas de hardware existentes. Las pruebas se realizaron en Linux y el manual de
instalación está asociado con este sistema operativo.
Instalación en Linux
Lo primero es compilar los ejecutables necesarios, para ello se debe tener instalado
g++ y a continuación ejecutar el comando: sh compilar.sh. Este comando va a generar un
conjunto de archivos con extensión .exe, copie estos archivos en el directorio de
ejecutables.
110
Una vez descargado siga las instrucciones de instalación que vienen con el software y copie
el ejecutable de test en el directorio donde va a tener todos los ejecutables del sistema.
CL_COBRA
KODISSOM_COBRA
111
de la forma Agrupamiento con la neurona ganadora, finalmente, a cada grupo se le
aumentan todos los grafos negativos.
El proyecto se puede abrir con Visual Studio 2010 en el Sistema Operativo Windows
XP o Windows 7, también se puede abrir en Linux con Netbeans 7.0.1 más el plug-in de
C++. Si se desea utilizar Netbeans en Windows es necesario instalar cygwin siguiendo el
manual de Netbeans que se encuentra en: http://netbeans.org/community/releases/60/cpp-
setup-instructions_es.html.
112
Anexo C. SubdueCL
El algoritmo SubdueCL se muestra en a la tabla C.1 y la tabla C.2. La función principal
(tabla C.1) recibe como parámetros los ejemplos positivos , los ejemplos negativos , el
tamaño del Beam y el límite del número de subestructuras a incluir en la búsqueda. La
función principal llama a la función SubdueCL (Tabla C.2) para formar hipótesis que
describen a los ejemplos positivos (González Bernal, 2001).
Función
Entrada:
Salida:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
113
maneras posibles y se evalúa según la ecuación (2.6). El parámetro se utiliza para
generar tantas subestructuras como el valor del , pero si la lista está vacía
después de generar los candidatos, el límite se incremente un hasta encontrar por lo
menos un candidato (González Bernal, 2001). En esta tesis se compara el algoritmo
propuesto con SubdueCL.
Función
Entrada:
Salida:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
114