Professional Documents
Culture Documents
Y AGRUPAMIENTO.
ESTUDIO DEL COMPORTAMIENTO.
Tesista:
Mayo 2007
Mayo 2007
Agradecimientos
Al Dr. Garca Martnez por darme la posibilidad de finalizar mi carrera de grado
gozando de aprender y ayudarme a desafiar mi intelecto de forma permanente. Por
haber aportado a mi formacin sin limitarse a lo acadmico. Por su gran dedicacin
plasmada, entre otras cosas, en la enorme cantidad de horas de su tiempo dedicadas a
mi tesis.
A la M. Ing. Britos por su continua orientacin y por hacer tan ameno nuestro
trabajo. Al M. Ing. Rancn por su dedicacin y paciencia en ayudarme a no dejar
ningn detalle sin atender.
A mi hermano Jonathan por su forma de ser vertiginosa, por nunca permitir que
un da sea igual (de tranquilo) al anterior, logrando as mantenerme conectado con lo
verdaderamente importante. Por traer la alegra a la casa y por su gran sinceridad
cuando tiene algo que ensearme.
A mis padres, por haberme transmitido el valor sin igual de la educacin. Por su
apoyo permanente. Por haber dedicado todos sus esfuerzos a brindarme las
condiciones para formarme sin otra preocupacin que la de estudiar.
A mi padre por sus pragmticos consejos y su enseanza mediante el ejemplo.
Y a mi madre quien con esta tesis finaliza la carrera conmigo, despus de haber vivido
como propio cada momento de estudio y festejado (ms que yo) la aprobacin de cada
examen.
Resumen
En esta tesis se estudia cmo se comporta la integracin de los algoritmos de
agrupamiento e induccin al ir variando sus parmetros en condiciones de laboratorio.
Adicionalmente se intentar medir la calidad de las reglas obtenidas y la degradacin
de dicha calidad como consecuencia de la variacin de los parmetros controlados en
los experimentos.
Abstract
This thesis studies the behavior of the integration of induction and clustering
algorithms varying its parameters under laboratory conditions. The quality of the
obtained rules will try to be measured as a consequence of the variation of the
parameters being controlled on the experiments.
ndice
1
Introduccin ..............................................................................................................1
2.1.1
2.1.2
Aplicaciones ...............................................................................................12
2.2
2.2.1
2.2.2
2.2.3
2.2.4
4.2
Definiciones ......................................................................................................26
4.2.1
4.2.2
4.2.3
4.3
4.3.1
4.3.2
4.4
4.4.1
Funcionalidades .........................................................................................35
4.4.2
Experimentacin ......................................................................................................39
5.1
5.2
5.3
5.4
5.5
5.5.1
Requerimientos .........................................................................................44
5.5.2
Solucin Adoptada.....................................................................................44
ndice
Ariel Kogan
5.5.3
5.5.4
5.6
5.6.1 Variacin del nmero de clases que rigen el dominio para distinta
cantidad de atributos que tienen los ejemplos .......................................................47
5.6.2 Variacin del nmero de clases que rigen el dominio para distinta
cantidad de valores que puede tomar cada atributo ..............................................49
5.6.3 Variacin del nmero de clases que rigen el dominio para distinta
cantidad de reglas que indican la pertenencia a cada clase ...................................51
5.6.4 Variacin del nmero de reglas que indican la pertenencia a cada
clase para distinta cantidad de atributos que tienen los ejemplos ........................53
5.6.5 Variacin del nmero de reglas que indican la pertenencia a cada
clase para distinta cantidad de clases que rigen el dominio ...................................55
5.6.6 Variacin del nmero de posibles valores que puede tomar cada
atributo para distinta cantidad de atributos que conforman los ejemplos ............57
5.6.7 Variacin del nmero de posibles valores que puede tomar cada
atributo para distinta cantidad de reglas que indican la pertenencia a cada
clase
...................................................................................................................59
5.6.8 Variacin del nmero de atributos que conforman los ejemplos
para distinta cantidad de posibles valores que puede tomar cada uno .................61
5.6.9 Variacin del nmero de atributos que conforman los ejemplos
para distinta cantidad de clases que rigen el dominio ............................................63
5.6.10 Variacin del nmero de atributos que conforman los ejemplos
para distinta cantidad de reglas que indican la pertenencia a cada clase ..............65
5.6.11 Estudio de dominios variando la especificidad del cubrimiento de
cada regla sobre sus ejemplos asociados, para distinta cantidad de estos ............67
5.6.12 Estudio de dominios variando la especificidad del cubrimiento de
cada regla sobre sus ejemplos asociados, para distinta concentracin de las
reglas que indican la pertenencia a cada clase .......................................................69
5.6.13 Estudio de dominios variando la concentracin de las reglas que
indican la pertenencia a cada clase, para distinta cantidad de ejemplos que
dan soporte a cada regla .........................................................................................71
5.6.14 Estudio de dominios variando la concentracin de las reglas que
indican la pertenencia a cada clase, para distinta especificidad del
cubrimiento de cada regla sobre sus ejemplos asociados ......................................73
5.6.15 Estudio de dominios variando el nmero de ejemplos que dan
soporte a cada regla, para distinta especificidad del cubrimiento de cada
regla sobre sus ejemplos asociados ........................................................................75
5.6.16 Estudio de dominios variando el nmero de ejemplos que dan
soporte a cada regla, para distinta concentracin de las reglas que indican la
pertenencia a cada clase .........................................................................................77
ii
Ariel Kogan
ndice
5.7
5.7.1
5.7.2
Conclusiones ............................................................................................................84
6.1
Aportes ..............................................................................................................84
6.2
Referencias ..............................................................................................................88
Metodologa ............................................................................................................92
A.1
Requerimientos.................................................................................................92
A.2
Anlisis ..............................................................................................................92
A.2.1
Diagrama de Clases....................................................................................92
A.2.2
A.2.3
A.3
Diseo ...............................................................................................................97
A.3.1
A.3.2
A.3.3
A.4
Codificacin .......................................................................................................99
A.5
Implementacin ..............................................................................................100
A.5.1
A.6
Pruebas ...........................................................................................................102
A.6.1
A.6.2
A.6.3
A.6.4
A.6.5
A.6.6
A.7
A.7.1
A.7.2
A.7.3
ndice
Ariel Kogan
iii
B.1.1
B.1.2
B.1.3
B.1.4
B.2
Requerimientos...............................................................................................115
B.2.1
B.2.2
PostgreSQL...............................................................................................115
B.2.3
JFreeChart ................................................................................................116
B.3
B.3.1
Classpath..................................................................................................116
B.3.2
B.4
iv
Introduccin ....................................................................................................113
B.4.1
B.4.2
B.4.3
B.4.4
Graficacin ...............................................................................................126
Ariel Kogan
ndice
ndice de tablas
Tabla 4.1: Parmetros identificados del problema ........................................................ 26
Tabla 5.1: Definicin de variabilidad o no de cada uno de los parmetros ................... 40
Tabla 5.2: Rango de variacin de las variables ............................................................... 41
Tabla 5.3: Rango de variacin de las variables involucradas en la figura 5.1 ................ 43
Tabla 5.4: Origen de pertenencia de las variables ......................................................... 45
Tabla 5.5: Combinacin de variables de los experimentos a realizar ............................ 46
Tabla 5.6: Diccionario de parmetros segn el enfoque ............................................... 47
ndice de tablas
Ariel Kogan
ndice de Figuras
Figura 2.1: Estructuras de los mapas .................................................................................5
Figura 2.2: Vecindario de una neurona .............................................................................6
Figura 2.3: Funciones de vecindario ..................................................................................9
Figura 2.4: Tasas de aprendizaje .....................................................................................10
Figura 2.5: U-Matrix.........................................................................................................11
Figura 4.1: Definicin grfica de una clase que rige el dominio......................................29
Figura 4.2: Atributos de un ejemplo del dominio ...........................................................33
Figura 4.3: Valores posibles que pueden tomar los atributos de un ejemplo ................33
Figura 4.4: Definicin grfica de una clase que rige el dominio......................................34
Figura 4.5: Definicin grfica de reglas que indican la pertenencia a una clase .............34
Figura 4.6: Experimento en 3 pasos ................................................................................37
Figura 5.1: Ejemplo de una de las grficas como resultado de un experimento.
Estudio de dominios variando la cantidad de reglas que indican la
pertenencia a cada clase, para distinta cantidad de atributos que tienen las
reglas. ......................................................................................................................43
Figura A.1: Diagrama de clases fundamentales del banco de pruebas...........................93
Figura A.2: Diagrama de casos de uso de alto nivel de abstraccin ...............................94
Figura A.3: Diagrama de casos de uso de ejecucin de experiencias .............................95
Figura A.4: Diagrama de casos de uso de iteraciones .....................................................96
Figura A.5: Diagrama de transicin de estados de ejecucin de experiencias ...............97
vi
Ariel Kogan
ndice de Figuras
ndice de Grficas
Grfica 5.1: Estudio de dominios variando la cantidad de clases que los rigen,
para distinta cantidad de atributos que tienen los ejemplos .................................48
Grfica 5.2: Estudio de dominios variando la cantidad de clases que los rigen,
para distinta cantidad de valores posibles que pueden tomar cada atributo ........50
Grfica 5.3: Estudio de dominios variando la cantidad de clases que los rigen,
para distinta cantidad de reglas que indican la pertenencia a cada clase ..............52
Grfica 5.4: Estudio de dominios variando la cantidad de reglas que indican la
pertenencia a cada clase, para distinta cantidad de atributos que conforman
los ejemplos .............................................................................................................54
Grfica 5.5: Estudio de dominios variando la cantidad de reglas que indican la
pertenencia a cada clase, para distinta cantidad de clases que rigen los
dominios ..................................................................................................................56
Grfica 5.6: Estudio de dominios variando la cantidad de valores posibles que
puede tomar cada uno de los atributos que tienen las reglas, para distinta
cantidad de atributos que tienen las reglas ............................................................58
Grfica 5.7: Estudio de dominios variando la cantidad de valores posibles que
puede tomar cada uno de los atributos que conforman las reglas, para
distinta cantidad de reglas que indican la pertenencia a cada clase ......................60
Grfica 5.8: Estudio de dominios variando la cantidad de atributos que
conforman los ejemplos, para distinta cantidad de valores posibles que
pueden tomar cada uno de estos atributos ............................................................62
Grfica 5.9: Estudio de dominios variando la cantidad de atributos que tienen las
reglas, para distinta cantidad clases que rigen los dominios ..................................64
Grfica 5.10: Estudio de dominios variando la cantidad de atributos que tienen
las reglas, para distinta cantidad de reglas que indican la pertenencia a cada
clase .........................................................................................................................66
Grfica 5.11: Estudio de dominios variando la especificidad del cubrimiento de
cada regla sobre sus ejemplos asociados, para distinta cantidad de estos ............68
ndice de Grficas
Ariel Kogan
vii
viii
Ariel Kogan
ndice de Grficas
Introduccin
Introduccin
Ariel Kogan
Ariel Kogan
Introduccin
Introduccin
Ariel Kogan
2.1
2.1.1
Ariel Kogan
La neurona tiene las mismas dimensiones que los vectores de entrada (datos de
entrada), es decir que es n-dimensional. Las neuronas estn conectadas a las neuronas
adyacentes por una relacin de vecinos. Esta dicta la topologa, o la estructura, del
mapa; usualmente, las neuronas estn conectadas unas con otras en una topologa
hexagonal o rectangular. En la figura 2.1 podemos observar (a) una estructura
rectangular y (b) una estructura hexagonal.
Ariel Kogan
2.1.1.1
Los datos que alimentan al SOM incluyen toda la informacin que toma la red.
Si se le presenta informacin errnea, el resultado es errneo o de mala calidad.
Entonces, el SOM, tanto como los otros modelos de redes neuronales, deben eliminar
la informacin basura para que no ingrese al sistema. Por lo cual se debe trabajar
con un subconjunto de los datos; estos deben ser relevantes para el modelo a analizar.
Tambin se deben eliminar los errores en los datos; si los mismos se obtienen a travs
de una consulta a una base de datos, el resultado puede incluir datos errneos debido
a la falta de integridad de la base; entonces estos deben ser filtrados usando
conocimientos previos del dominio del problema y el sentido comn.
Ariel Kogan
2.1.1.2
Inicializacin
2.1.1.3
Entrenamiento
=
=1
Ariel Kogan
donde:
: corresponde al valor de la componente del vector .
: corresponde a la dimensin del vector .
Por lo tanto, la distancia Eucldea en trminos de la diferencia de la norma
Eucldea entre dos vectores se define como:
, =
donde:
: corresponde al vector .
: corresponde al vector .
La BMU, usualmente denotada con , es el patrn que ms se parece al
vector de entrada . Se define formalmente como la neurona para la cual
= min
donde:
: corresponde al vector de entrada .
: corresponde al vector que representa la BMU.
: corresponde a la neurona .
: corresponde al vector que representa la neurona .
Luego de encontrar la BMU, se actualizan todas las neuronas del SOM. Durante
el procedimiento de actualizacin, la BMU se actualiza para acercarse an ms al
vector de entrada. Los vecinos topolgicos de la BMU tambin se actualizan de manera
similar utilizando una tasa de aprendizaje de menor valor. Este procedimiento acerca a
la BMU y a sus vecinos topolgicos hacia la muestra ingresada.
El esfuerzo computacional consiste en encontrar una BMU entre todas las
neuronas y actualizar cada uno de los patrones en el vecindario de la unidad ganadora.
Si el vecindario es grande, entonces ms patrones debern ser actualizados; este es el
caso que se presenta en el comienzo del entrenamiento, donde se recomienda utilizar
vecindarios grandes. En el caso de redes con muchas neuronas, gran parte del tiempo
se utiliza buscando a la ganadora. Obviamente que dependiendo del diseo del
software utilizado y el hardware estas consideraciones sern ms o menos
significativas.
A travs del procedimiento de actualizacin descripto, la red forma una red
elstica que durante el aprendizaje cae en una nube formada por los datos de entrada.
Los patrones tienden a posicionarse all donde los datos son densos, mientras que se
tiende a tener pocos patrones donde los datos de entrada estn ms dispersos. Por lo
Ariel Kogan
2
2 2
Ariel Kogan
10
Ariel Kogan
2.1.1.4
Visualizacin
En la figura 2.5 podemos observar las neuronas indicadas por un punto negro.
La representacin revela que existe una clase separada en la esquina superior derecha
de la red. Las clases estn separadas por una zona negra. Este resultado se logra con
aprendizaje no supervisado, es decir, sin intervencin humana. Ensear a un SOM y
representarla con la U-Matrix ofrece una forma rpida de analizar la distribucin de los
datos.
2.1.1.5
Validacin
Ariel Kogan
11
2.1.2
Aplicaciones
2.2
La familia de los Top Down Induction of Decision Trees (TDIDT) pertenece a los
mtodos inductivos del aprendizaje automtico que aprenden a partir de ejemplos
preclasificados; en minera de datos, sta se utiliza para modelar las clasificaciones en
los datos mediante rboles de decisin.
2.2.1
2.2.2
Los rboles TDIDT, a los cuales pertenecen los generados por el ID3 y por el
C4.5, se construyen a partir del mtodo de Hunt [Hunt et al., 1966]. El esqueleto de
este mtodo para construir un rbol de decisin a partir de un conjunto de datos de
entrenamiento se detalla a continuacin; sean las clases 1 , 2 , , , existen tres
posibilidades:
1. contiene uno o ms casos, todos pertenecientes a una nica clase :
El rbol de decisin para es una hoja identificando la clase .
12
Ariel Kogan
2.2.2.1
+
= +
+
Ariel Kogan
13
H Si =
log
=1
H Si , =
=1
2.2.2.2
Existen varias razones para la poda de los rboles generados por los mtodos
de TDIDT [Michalski et al., 1998], entre ellas podemos nombrar la sobregeneralizacin, la evaluacin de variables poco importantes o significativas, y el gran
tamao del rbol obtenido. En el primer caso, un rbol puede haber sido construido a
partir de ejemplos con ruido, con lo cual algunas ramas del rbol pueden ser
engaosas; en cuanto a la evaluacin de variables no relevantes, stas deben podarse
ya que slo agregan niveles en el rbol y no contribuyen a la ganancia de informacin.
Por ltimo, si el rbol obtenido es demasiado profundo o demasiado frondoso, se
dificulta la interpretacin por parte del usuario, con lo cual hubiera sido lo mismo
utilizar un mtodo de caja negra.
Existen dos enfoques para podar los rboles: la pre-poda (preprunning) y la
post-poda (postprunning). En el primer caso se detiene el crecimiento del rbol cuando
la ganancia de informacin producida al dividir un conjunto no supera un umbral
determinado, en la post-poda se podan algunas ramas una vez que se ha terminado de
construir el rbol. El primer enfoque, tiene la ventaja de que no se pierde tiempo en
14
Ariel Kogan
construir una estructura que luego ser simplificada en el rbol final; el mtodo tpico
en estos casos es buscar la mejor manera de partir el subconjunto y evaluar la
particin desde el punto de vista estadstico mediante la teora de la ganancia de
informacin, reduccin de errores, etc., si esta evaluacin es menor que un lmite
predeterminado, la divisin se descarta y el rbol para el subconjunto es simplemente
la hoja ms apropiada; sin embargo, este tipo de mtodo tiene la contra de que no es
fcil detener un particionamiento en el momento adecuado, un lmite muy alto puede
terminar con la particin antes de que los beneficios de particiones subsiguientes
parezcan evidentes, mientras que un lmite demasiado bajo resulta en una
simplificacin demasiado leve. El segundo enfoque utilizado por el ID3 y el C4.5,
procede a la simplificacin una vez construido el rbol segn los criterios propios de
cada uno de los algoritmos.
2.2.2.3
Ariel Kogan
15
2.2.3
2.2.3.1
El mtodo divide y reinars realiza en cada paso una particin de los datos del
nodo segn una prueba realizada sobre la mejor variable. Cualquier prueba que
divida a en una manera no trivial, tal que al menos dos subconjuntos distintos
no estn vacos, eventualmente resultar en una particin de subconjuntos de una
nica clase, an cuando la mayora de los subconjuntos contengan un solo ejemplo. Sin
embargo, el proceso de construccin del rbol no apunta meramente a encontrar
cualquier particin de este tipo, sino a encontrar un rbol que revele una estructura
del dominio y, por lo tanto, tenga poder predictivo. Para ello, se necesita un nmero
importante de casos en cada hoja o, dicho de otra manera, la particin debe tener la
menor cantidad de clases posibles. En el caso ideal, se busca elegir en cada paso la
prueba que genere el rbol ms pequeo; es decir, se busca un rbol de decisin
compacto que sea consistente con los datos de entrenamiento. Para ello se pueden
explorar todos los rboles posibles y elegir el ms simple, pero desafortunadamente
un nmero exponencial de rboles debera ser analizado. El problema de encontrar el
rbol de decisin ms pequeo consistente con un conjunto de entrenamiento es de
complejidad NP-completa.
La mayora de los mtodos de construccin de rboles de decisin, incluyendo
el C4.5 y el ID3, no permiten volver a estados anteriores, es decir, son algoritmos
golosos sin vuelta atrs. Una vez que se ha escogido una prueba para particionar el
conjunto actual, tpicamente basndose en la maximizacin de alguna medida local de
progreso, la particin se concreta y las consecuencias de una eleccin alternativa no se
exploran. Por este motivo, la eleccin debe ser bien realizada.
2.2.3.1.1
16
Ariel Kogan
, =
=1
_ =
=1
log 2
Ariel Kogan
17
,
_
2.2.3.2
Construccin de rboles
2.2.3.2.1
ID3
18
Ariel Kogan
Ariel Kogan
19
20
Ariel Kogan
2.2.3.2.2
C4.5
Ariel Kogan
21
22
Ariel Kogan
clasificacin para los nuevos casos, produciendo un rbol menos complejo, y por lo
tanto, ms comprensible.
2.2.4
Ariel Kogan
23
24
Ariel Kogan
Solucin Propuesta
4.1
Nemotcnico
attributesNumber
classPossibleValues
Solucin Propuesta
instancesByRule
Ariel Kogan
25
4.2
Definiciones
4.2.1
26
Ariel Kogan
Solucin Propuesta
Regla a cubrir:
1
Regla a cubrir:
Este ejemplo cumple con la regla a cubrir, pero no con la regla que cubre, ya
que el valor del 6 atributo no es 5. Sin embargo, como se dijo, bajo el criterio definido
para el presente trabajo, la primera regla s cubre a la segunda.
El motivo por el cual el criterio utilizado para el presente trabajo hace esta
concesin se debe a que, de acuerdo a lo observado de forma experimental, la
determinacin al azar de los valores de los atributos libres, puede arrojar ejemplos en
los cuales varias veces se repite el mismo valor. Es decir que para la original:
Solucin Propuesta
Ariel Kogan
27
Supuesto ejemplo 1
Supuesto ejemplo 2
Supuesto ejemplo 3
4.2.2
28
Ariel Kogan
Solucin Propuesta
Para considerar que una regla original ha sido correctamente cubierta, las
reglas descubiertas que la cubren deben cubrir al menos la misma cantidad de
ejemplos que la regla original.
4.2.3
v1
v1
v1
v1
v2
v2
v2
v2
v3
v3
v3
v3
v4
v4
v4
v4
v5
v5
v5
v5
v6
v6
v6
v6
v7
v7
v7
v7
v8
v8
v8
v8
v8
v8
v7
v7
v6
v6
v5
A6
v5
v4
A5
v4
v3
A4
v3
v2
A3
v2
v1
A2
v1
A1
Solucin Propuesta
Ariel Kogan
29
4.3
4.3.1
4.3.1.1
Conjuntos utilizados
Sea = 1 , 2 , ,
el conjunto de valores posibles que
puede tomar cada atributo, de cardinalidad = y que verifica
que , .
Sea = 1 , 2 , , un ejemplo del dominio compuesto por
attributesNumber atributos que verifican que , .
Sea = 1 , 2 , ,
el conjunto de clases que rigen el
dominio, de cardinalidad = .
Sea = 1 , 2 , ,
el conjunto de subndices de los atributos
sobre los que se imponen condiciones para la generacin de las reglas que indican la
pertenencia a la clase , de cardinalidad = .
Considerando:
30
= 1
, 2
, ,
Ariel Kogan
100
sea
Solucin Propuesta
.
Se define la cantidad de elementos del conjunto de reglas que indicarn la
pertenencia a cada una de las clases (rulesPerClass).
Sea = 1 , 2 , ,
el conjunto de reglas que indican la
pertenencia a la clase , de cardinalidad = y que verifica que
donde
Sea = 1 , 2 , ,
es de la forma = / / .
Sea =
Sea =
=1
=1
4.3.1.2
Solucin Propuesta
Ariel Kogan
31
100.
4.3.2
Para una mejor comprensin del significado de algunos de los parmetros del
problema, se propone un ejemplo de generacin de un dominio, para dejar de
manifiesto el papel que juega cada uno de estos en la ejecucin del experimento.
La siguiente tabla indica los valores asignados a algunos de los parmetros:
Parmetro
Valor
attributesNumber
6
attPossibleValues
8
classPossibleValues
5
rulesPerClass
4
instancesByRule
10
attUsedInRule
2
classAttPossibleValuesPercentage
50
32
Ariel Kogan
Solucin Propuesta
A1
A2
A3
A4
A5
A6
A1
A2
A3
A4
A5
A6
Figura 4.3: Valores posibles que pueden tomar los atributos de un ejemplo
Hasta aqu cada uno de los ejemplos es libre de tomar en cada uno de sus
atributos, alguno de los valores posibles.
Geomtricamente, cada ejemplo puede ser visto como un punto en un
hiperespacio de 6 dimensiones, en el cual cada una de sus coordenadas puede tomar
un valor que va del 1 al 8.
Con el objetivo de generar ejemplos que respondan a patrones comunes, se
imponen limitaciones sobre el hiperespacio de modo tal de crear nubes que agrupen
a los ejemplos de cada patrn.
La clase es la primera limitacin a los ejemplos. De acuerdo a lo definido en el
presente trabajo, sta consiste en determinar al azar cules son los atributos sobre los
que se impondrn condiciones y para cada uno de estos, determinar tambin al azar
cules son los valores posibles que podr tomar cada atributo.
Una representacin grfica de una clase se sintetiza en la figura 4.4:
Solucin Propuesta
Ariel Kogan
33
A1
A2
A3
A4
A5
A6
Los atributos griseados son aquellos sobre los cuales la clase impone
condiciones. Estos son 2, tal como indica el parmetro attUsedInRule. Para la presente
clase, cada uno de estos puede tomar determinados valores, los cuales son elegidos al
azar entre los valores posibles que pueden tomar cada uno de los atributos. Tanto A2
como A4 pueden tomar 4 valores, nmero que corresponde al 50% de la cantidad total
de valores posibles, as como lo indica el parmetro classAttPossibleValuesPercentage.
Una vez definida la clase, es necesario definir las reglas que indican la
pertenencia a sta. Las reglas de una clase impondrn condiciones sobre los mismos
atributos que lo hace la clase, pero se tratarn de condiciones de es igual a alguno de
los valores posibles para dicho atributo, elegido al azar. Es as como un conjunto de
posibles reglas de la clase anterior son:
Figura 4.5: Definicin grfica de reglas que indican la pertenencia a una clase
34
Ariel Kogan
Solucin Propuesta
Y el siguiente ejemplo:
4
Es simple apreciar que ambas reglas cubren el ejemplo. Esta situacin puede
ser deseable o no. Mediante el parmetro allowMultipleCoverage se indica al banco de
pruebas si se desea trabajar de esta manera o no. En los experimentos realizados para
esta tesis, se determin que cada ejemplo poda responder a una nica regla.
4.4
4.4.1
Funcionalidades
El Banco de Pruebas provee las siguientes funcionalidades:
Solucin Propuesta
Ariel Kogan
35
4.4.1.1
Definicin de dominios
4.4.1.2
Generacin de ejemplos
Para los dominios definidos por el banco de pruebas, ste es capaz de generar
un conjunto de ejemplos que d soporte a cada uno de estos.
4.4.1.3
4.4.1.4
4.4.1.5
Contrastacin de reglas
36
Debe ser til para la evaluacin sobre dominios generados, con las
problemticas que esto pueda llegar a provocar.
Ariel Kogan
Solucin Propuesta
4.4.2
Paso 3:
COMPARACIN DE
LOS CONJUNTOS DE
REGLAS
Generacin de clases.
Generacin de reglas
que indican la
pertenencia a cada
clase.
INDUCCIN
Reglas de clasificacin
Reglas descubiertas
Si .
.
Entonces ...
Si .
.
Entonces ...
Si .
.
Entonces ...
Si .
.
Entonces ...
Grupos (clases) formados a partir de los
ejemplos del dominio
Generacin de ejemplos:
Generacin de ejemplos que
dan soporte a cada una de las
reglas.
AGRUPAMIENTO
Paso 1:
Paso 2:
PREPARACIN DEL
EXPERIMENTO
EJECUCIN DEL
EXPERIMENTO
Solucin Propuesta
Ariel Kogan
37
38
Ariel Kogan
Solucin Propuesta
Experimentacin
5.1
Definicin de Variables
Nemotcnico
Variable
attributesNumber
attPossibleValues
classPossibleValues
rulesPerClass
attUsedInRule
instancesByRule
Experimentacin
Ariel Kogan
39
mix
No
allowMultipleCoverage
No
allowedCoverageDesviation
No
somTrainingIterationsMultiplier
No
somMapWidth
No
somMapHeight
No
5.2
40
Ariel Kogan
Experimentacin
Variable (nemotcnico)
Mn Mx Med
attributesNumber
10
10
attPossibleValues
100
classPossibleValues
10
10
rulesPerClass
15
8 12
15
instancesByRule
20
10
5 10 15
20
attUsedInRule (%)
100
50 20 40 60 80 100
classAttPossibleValuesPercentage
100
20 20 40 60 80 100
20 20 40 60 80 100
Experimentacin
Ariel Kogan
41
en dicho rango y sern los utilizados para cuando la variable sea el parmetro de serie
en un experimento.
La seleccin de los valores medios da lugar al denominado dominio patrn, el
cual es descripto a continuacin.
5.3
Dominio Patrn
5.4
Ariel Kogan
Experimentacin
Para una explicacin ms clara, se toma como ejemplo una de las grficas que
ms adelante ser analizada en profundidad. El objetivo en la presente instancia es
comprender la grfica como mtodo de presentacin de los resultados.
Figura 5.1: Ejemplo de una de las grficas como resultado de un experimento. Estudio de dominios
variando la cantidad de reglas que indican la pertenencia a cada clase, para distinta cantidad de
atributos que tienen las reglas.
10
6 2 4 6
8 10
rulesPerClass
15
5 1 4 8 12 15
Experimentacin
Ariel Kogan
43
5.5
Estrategia de Rastrillaje
5.5.1
Requerimientos
5.5.2
Solucin Adoptada
44
Ariel Kogan
Experimentacin
5.5.3
attributesNumber
attPossibleValues
rulesPerClass
attributesNumber
classPossibleValues
attPossibleValues
attributesNumber
rulesPerClass
classPossibleValues
attPossibleValues
classPossibleValues
rulesPerClass
Nmero de graph_id
Experimento
1
2
3
4
5
13
14
15
25
27
6
7
31
33
8
9
10
37
38
39
11
12
5
6
No incluido
No incluido
Experimentacin
instancesByRule
classAttPossibleValuesPercentage
Ariel Kogan
45
classAttPossibleValuesPercentage
classAttPossibleValuesPercentage
instancesByRule
instancesByRule
instancesByRule
13
11
attUsedInRule
14
12
attUsedInRule
classAttPossibleValuesPercentage
15
16
23
24
5.5.4
Variable
(nemotcnico)
Descripcin segn el
enfoque orientado al
dominio
attributesNumber
Cantidad de atributos de
cada ejemplo.
attPossibleValues
Cantidad de posibles
valores que puede tomar
cada atributo.
classPossibleValues
rulesPerClass
attUsedInRule
46
Ariel Kogan
Experimentacin
instancesByRule
classAttPossibleValuesPercentage
5.6
5.6.1
5.6.1.1
Experimentacin
Ariel Kogan
47
5.6.1.2
Resultados obtenidos
Los resultados obtenidos se resumen en la siguiente grfica:
Grfica 5.1: Estudio de dominios variando la cantidad de clases que los rigen, para distinta cantidad de
atributos que tienen los ejemplos
5.6.1.3
48
Ariel Kogan
Experimentacin
Proposicin Experimental 2:
La efectividad del mtodo propuesto es mayor mientras menor es la cantidad
de atributos que tienen los ejemplos del dominio, al ser evaluado para distinta
cantidad de clases que lo rigen.
5.6.2
5.6.2.1
5.6.2.2
Resultados obtenidos
Los resultados obtenidos se resumen en la siguiente grfica:
Experimentacin
Ariel Kogan
49
Grfica 5.2: Estudio de dominios variando la cantidad de clases que los rigen, para distinta cantidad de
valores posibles que pueden tomar cada atributo
5.6.2.3
50
Ariel Kogan
Experimentacin
5.6.3
5.6.3.1
5.6.3.2
Resultados obtenidos
Los resultados obtenidos se resumen en la siguiente grfica:
Experimentacin
Ariel Kogan
51
Grfica 5.3: Estudio de dominios variando la cantidad de clases que los rigen, para distinta cantidad de
reglas que indican la pertenencia a cada clase
5.6.3.3
52
Ariel Kogan
Experimentacin
5.6.4
5.6.4.1
5.6.4.2
Resultados obtenidos
Los resultados obtenidos se resumen en la siguiente grfica:
Experimentacin
Ariel Kogan
53
Grfica 5.4: Estudio de dominios variando la cantidad de reglas que indican la pertenencia a cada
clase, para distinta cantidad de atributos que conforman los ejemplos
5.6.4.3
54
Ariel Kogan
Experimentacin
5.6.5
5.6.5.2
Resultados obtenidos
Los resultados obtenidos se resumen en la siguiente grfica:
Experimentacin
Ariel Kogan
55
Grfica 5.5: Estudio de dominios variando la cantidad de reglas que indican la pertenencia a cada
clase, para distinta cantidad de clases que rigen los dominios
5.6.5.3
56
Ariel Kogan
Experimentacin
5.6.6
5.6.6.1
5.6.6.2
Resultados obtenidos
Los resultados obtenidos se resumen en la siguiente grfica:
Experimentacin
Ariel Kogan
57
Grfica 5.6: Estudio de dominios variando la cantidad de valores posibles que puede tomar cada uno
de los atributos que tienen las reglas, para distinta cantidad de atributos que tienen las reglas
5.6.6.3
58
Ariel Kogan
Experimentacin
5.6.7
5.6.7.1
5.6.7.2
Resultados obtenidos
Los resultados obtenidos se resumen en la siguiente grfica:
Experimentacin
Ariel Kogan
59
Grfica 5.7: Estudio de dominios variando la cantidad de valores posibles que puede tomar cada uno
de los atributos que conforman las reglas, para distinta cantidad de reglas que indican la pertenencia
a cada clase
5.6.7.3
60
Ariel Kogan
Experimentacin
5.6.8
5.6.8.1
5.6.8.2
Resultados obtenidos
Los resultados obtenidos se resumen en la siguiente grfica:
Experimentacin
Ariel Kogan
61
Grfica 5.8: Estudio de dominios variando la cantidad de atributos que conforman los ejemplos, para
distinta cantidad de valores posibles que pueden tomar cada uno de estos atributos
5.6.8.3
62
Ariel Kogan
Experimentacin
Proposicin Experimental 3:
A partir de determinada cantidad de posibles valores que puede tomar cada
atributo, si se sigue aumentando esta cantidad, no se observan mejoras significativas
en la efectividad del mtodo propuesto.
5.6.9
5.6.9.1
5.6.9.2
Resultados obtenidos
Los resultados obtenidos se resumen en la siguiente grfica:
Experimentacin
Ariel Kogan
63
Grfica 5.9: Estudio de dominios variando la cantidad de atributos que tienen las reglas, para distinta
cantidad clases que rigen los dominios
5.6.9.3
Al comparar dominios para los cuales la cantidad de clases que rigen el dominio
es distinta, es posible formular la siguiente proposicin experimental:
Proposicin Experimental 2:
Mientras menor es la cantidad de clases que rigen el dominio, mayor es la
efectividad del mtodo propuesto.
64
Ariel Kogan
Experimentacin
Proposicin Experimental 3:
A partir de determinada cantidad de clases que rigen el dominio, el aumento de
este parmetro no genera un decremento mayor en la efectividad del mtodo.
5.6.10
5.6.10.1
5.6.10.2
Resultados obtenidos
Ariel Kogan
65
Grfica 5.10: Estudio de dominios variando la cantidad de atributos que tienen las reglas, para distinta
cantidad de reglas que indican la pertenencia a cada clase
5.6.10.3
66
Ariel Kogan
Experimentacin
5.6.11
5.6.11.1
: 5
: Especificidad del cubrimiento de cada regla sobre sus
ejemplos asociados
Parmetro de serie : Cantidad de ejemplos por regla
5.6.11.2
Resultados obtenidos
Experimentacin
Ariel Kogan
67
Grfica 5.11: Estudio de dominios variando la especificidad del cubrimiento de cada regla sobre sus
ejemplos asociados, para distinta cantidad de estos
5.6.11.3
68
Ariel Kogan
Experimentacin
5.6.12
5.6.12.1
: 6
: Especificidad del cubrimiento de cada regla sobre sus
ejemplos asociados
Parmetro de serie : Concentracin de las reglas que indican la pertenencia a cada
clase
Parmetro
Valor
attributesNumber
6
attPossibleValues
20
classPossibleValues
5
rulesPerClass
5
instancesByRule
10
5.6.12.2
Resultados obtenidos
Experimentacin
Ariel Kogan
69
Grfica 5.12: Estudio de dominios variando la especificidad del cubrimiento de cada regla sobre sus
ejemplos asociados, para distinta concentracin de reglas que indican la pertenencia a cada clase
5.6.12.3
70
Ariel Kogan
Experimentacin
5.6.13
5.6.13.1
: 11
: Concentracin de las reglas que indican la pertenencia a cada
clase
Parmetro de serie : Cantidad de ejemplos que dan soporte a cada regla
5.6.13.2
Resultados obtenidos
Experimentacin
Ariel Kogan
71
Grfica 5.13: Estudio de dominios variando la concentracin de las reglas que indican la pertenencia a
cada clase, para distinta cantidad de ejemplos que dan soporte a cada regla
5.6.13.3
72
Ariel Kogan
Experimentacin
5.6.14
5.6.14.1
graph_id
Parmetro a variar
: 12
: Concentracin de las reglas que indican la pertenencia a cada
clase
Parmetro de serie : Especificidad del cubrimiento de cada regla sobre sus
ejemplos asociados
Parmetro
Valor
attributesNumber
6
attPossibleValues
20
classPossibleValues
5
rulesPerClass
5
instancesByRule
10
5.6.14.2
Resultados obtenidos
Experimentacin
Ariel Kogan
73
Grfica 5.14: Estudio de dominios variando la concentracin de las reglas que indican la pertenencia a
cada clase, para distinta especificidad del cubrimiento de cada regla sobre sus ejemplos asociados
5.6.14.3
74
Ariel Kogan
Experimentacin
Proposicin Experimental 3:
Mientras ms especfico es el cubrimiento de cada regla sobre sus ejemplos
asociados, ms pronunciado es el crecimiento de la efectividad del mtodo propuesto
con el decremento de la concentracin de las reglas que indican la pertenencia a cada
clase.
5.6.15
Experimentacin
Ariel Kogan
75
5.6.15.2
Resultados obtenidos
Grfica 5.15: Estudio de dominios variando el nmero de ejemplos que dan soporte a cada regla, para
distinta especificidad del cubrimiento de cada regla sobre sus ejemplos asociados
5.6.15.3
Al comparar dominios cuyas reglas cubren sus ejemplos asociados con distinta
especificidad, es posible formular las siguientes proposiciones experimentales:
76
Ariel Kogan
Experimentacin
Proposicin Experimental 2:
Mientras ms especfico es el cubrimiento de cada regla sobre sus ejemplos
asociados, mayor es la efectividad del mtodo propuesto.
Proposicin Experimental 3:
Mientras ms especfico es el cubrimiento de cada regla sobre sus ejemplos
asociados, ms pronunciado es el crecimiento de la efectividad del mtodo propuesto
con el incremento de la cantidad de ejemplos que dan soporte a cada regla.
5.6.16
5.6.16.1
Experimentacin
Ariel Kogan
77
Parmetro
Valor
attributesNumber
6
attPossibleValues
20
classPossibleValues
5
rulesPerClass
5
attUsedInRule
3
5.6.16.2
Resultados obtenidos
Grfica 5.16: Estudio de dominios variando el nmero de ejemplos que dan soporte a cada regla, para
distinta concentracin de las reglas que indican la pertenencia a cada clase
5.6.16.3
78
Ariel Kogan
Experimentacin
5.7
Los resultados obtenidos han sido agrupados en dos enfoques, los cuales
responden a la diferenciacin del origen de pertenencia de cada variable, planteada en
la seccin 5.5.3
5.7.1
Experimentacin
Ariel Kogan
79
80
Ariel Kogan
Experimentacin
Experimentacin
Ariel Kogan
81
5.7.2
82
Ariel Kogan
Experimentacin
Experimentacin
Ariel Kogan
83
Conclusiones
6.1
Aportes
84
Ariel Kogan
Conclusiones
6.2
6.2.1
Conclusiones
Ariel Kogan
85
6.2.2
86
Ariel Kogan
Conclusiones
6.2.3
Conclusiones
Ariel Kogan
87
Referencias
Alander J., Frisk M., 1991. Process error detection using self-organizing feature maps.
Artificial Neural Networks, volume II, pp 1229-1232. Amsterdam,
Netherlands.
Alhoniemi E., 1995. Monitoring of complex processes using the self-organizing map.
Masters thesis, Helsinki University of Technology.
Beveridge M., 1996. Self Organizing Maps.
http://www.dcs.napier.ac.uk/hci/martin/msc/node6.html
Blurock, Eduard S. (1996). The ID3 Algorithm. Research Institute for Symbolic
Computation, Austria.
Britos, P., Grosser, H., Sierra, H. y Garca Martnez, R. 2006. Unusual Changes in
Consumption Detection in Mobile Phone Users. Research in Computing
Science Journal, 21: 195-204.
Britos, P., Hossian, A., Garca-Martinez, R. y Sierra, E. 2005. Minera de Datos Basada
en Sistemas Inteligentes. Editorial Nueva Librera. 1124 pginas. ISBN 9871104-30-8.
Chen, M., Han, J., Yu, P. (1996). Data mining: An overview from database perspective.
IEEE Transactions on Knowledge and Data Eng.
Chen, S., Alahakoon, D., Indrawan, M. 2005. Background Knowledge Driven Ontology
Discovery. Proceedings IEEE International Conference on e-Technology, eCommerce and e-Service Pg. 202-207.
Cogliati, M., Britos, P. Garca-Martnez, R. 2006. Patterns in Temporal Series of
Meteorological Variables Using SOM & TDIDT. Lecture Notes in Artificial
Intelligence (por aparecer). Springer Verlag.
Cumming S., 1993. Neural Networks for monitoring of engine condition data. Neural
Computing & Applications, pp. 96-102.
Essenreiter R., Treitel S., 1999. Identification and classification of multiple reflections
with self-organizing maps. Geophysical Institute, University of Karlsruhe,
Germany.
Evangelos, S., Han, J. (1996). Proceedings of the Second International Conference on
Knowledge Discovery and Data Mining. Portland, EE.UU.
88
Ariel Kogan
Referencias
Referencias
Ariel Kogan
89
Ian H. Witten and Eibe Frank (2005) "Data Mining: Practical machine learning tools and
techniques", 2nd Edition, Morgan Kaufmann, San Francisco, 2005.
Joachims, T., Freitag, D., Mitchell, T. (1995). Web Watcher: A Tour Guide for the World
Wide Web. School of Computer Science, Carnegie Mellon University,
EE.UU.
Kaski, S. 1997. Data exploration using self-organizing maps. Acta Polytechnica
Scandinavica, Mathematics, Computing and Management in Engineering
Series No. 82, 57 pp. Published by the Finnish Academy of Technology. ISSN
1238-9803.
Kohonen, T. (1982) Self-organized formation of topologically correct feature maps.
Biological Cybernetics, 43:59-69.
Kohonen, T. (1990) The Self-Organizing Map. Proceedings of the IEEE, 78:1464-1480.
Kohonen, T. (1995) Self-Organizing Maps. Springer, Berlin.
Kohonen, T., Oja, E., Simula, O., Visa, A., and Kangas, J. (1996). Engineering applications
of the self-organizing map. Proceedings of the IEEE, 84:1358-1384.
Mannila, H. (1997). Methods and problems in data mining. In Proc. of International
Conference on Database Theory, Delphi, Greece.
Michalski, R. 1983. A Theory and Methodology of Inductive Learning, Artificial
Intelligence, 20:111-161.
Michalski, R. Bratko, I. Kubat, M (eds.) 1998. Machine Learning and Data Mining,
Methods and Applications, John Wiley & Sons Ltd, West Sussex, England
Mitchell, T. (2000). Decision Trees. Cornell University, EE.UU.
Pandey, S., B. Mishra, R. 2005. Knowledge Discovery and Ontology-based services on
the Grid (a survey report). Proceedings Sixth International Conference on
Parallel and Distributed Computing Applications and Technologies. Pg.
1033-1038
Perez-Rey, D., Maojo, V., Garcia-Remesal, M., Alonso-Calvo R. 2004. Biomedical
Ontologies in Post-Genomic Information Systems. Proceedings Fourth IEEE
Symposium on Bioinformatics and Bioengineering. Pg. 207.
Piatetski-Shapiro, G., Frawley, W.J., Matheus, C.J. 1991. Knowledge discovery in
databases: an overview. AAAI-MIT Press, Menlo Park, California.
Quinlan, J. R. 1986. Induction of Decision Trees, Machine Learning,1:81-106
90
Ariel Kogan
Referencias
Quinlan, J.R. (1993a). The effect of noise on concept learning. En R.S. Michalski, J.G.
Carbonell, & T.M. Mitchells (Eds.) Machine learning, the artificial
intelligence approach. Morgan Kaufmann, Vol. I, Captulo 6, pginas 149167. San Mateo, CA: Morgan Kaufmann, EE.UU.
Quinlan, J.R. (1993b). Learning efficient Classification Procedures and Their Application
to Chess Games. En R.S. Michalski, J.G. Carbonell, & T.M. Mitchells (Eds.)
Machine learning, the artificial intelligence approach. Morgan Kaufmann,
Vol. II, Captulo 15, pginas 463-482, EE.UU.
Quinlan, J.R. (1993c). Programs for machine learning. Morgan Kaufmann publishers,
San Mateo, California, EE.UU.
Quinlan, J.R. (1995). MDL and categorical theories. Basser department of computer
science, University of science, Australia.
Quinlan, J.R., Cameron-Jones, R.M. (1995). Oversearching and layered search in
empirical learning. Basser department of computer science, University of
science, Australia.
Rancn, C., Pesado, P. y Garca-Martnez, R. 2007. Toward Integration of
Knowledge Based Systems and Knowledge Discovery Systems. Journal of
Computer Science & Technology, 7(1): 91-97.
Ritter H., Martinetz T., Schulten K., 1992. Neural Computation and Self-Organizing
Maps. Addison-Wesley Publishing Company.
Salgueiro, F., Cataldi, Z., Britos, P., Sierra, E. y Garca Martnez, R. Selecting Pedagogical
Protocols using SOM. Research in Computing Science Journal, 21: 205-214.
2006.
Servente, M. y Garca Martnez, R. 2002. Algoritmos TDIDT Aplicados a la Minera
Inteligente. Revista del Instituto Tecnolgico de Buenos Aires, 26: 39-57.
ISSN 0326-1840.
Song, G., Qian, Y., Liu, Y., Zhang, K. 2006. Oasis: A Mapping and Integration Framework
for Biomedical Ontologies. Proceedings 19th IEEE Symposium on
Computer-Based Medical Systems. Pg. 611-616
Vapola M., Simula O., Kohonen T., 1994. Representation and identification of fault
conditions of an anaesthesia system by means of the Self-Organizing Map.
Int. Conference on Artificial Neural Networks, volume I, pp. 350-353,
London, UK.
Vesanto J., Alhoniemi E., 2000, Clustering of the Self-Organizing Map. IEEE transactions
on neural networks, Vol 11, No. 3.
Referencias
Ariel Kogan
91
Metodologa
A.1
Requerimientos
A.2
Anlisis
92
Metodologa
Scenario
Experience
-id
-attributesNumber
-attPosibleValues
-classPosibleValues
-rulesPerClass
-attUsedInRule
-instancesByRule
-classAttPossibleValuesPercentage
-mix
-allowMultipleCoverage
-allowedCoverageDesviation
-somTrainingIterationsMultiplier
-somMapWidth
-somMapHeight
-connection
-id
-scenario
-variableParameter
#from
#to
#iterationsPerValue
-description
-experienceIteration
#connection
*
1
1
*
ExperienceIteration
-id
-experience
#x
-rulesCorrectlyCoveredJ48
-rulesCorrectlyCoveredId3
-commonAttributesScoreJ48
-commonAttributesScoreId3
-generator
-som
-j48
-id3
-connection
SimpleRules
Som
J48
Id3
-attributesNumber
-attPosibleValues
-classPosibleValues
-rulesPerClass
-attUsedInRule
-instancesByRule
-classAttPossibleValuesPercentage
-mix
-allowMultipleCoverage
-ruleSet
-dataset
#mapWidth
#mapHeight
#mapTopology
#neighbourhoodFunction
#learningFunction
#neighbourhoodSize
#learningRate
#trainingIterations
#supervised
-m_root
-m_unpruned
-m_CF
-m_minNumObj
-m_useLaplace
-m_reducedErrorPruning
-m_numFolds
-m_binarySplits
-m_subtreeRaising
-m_noCleanup
-m_Seed
-m_Successors
-m_Attribute
-m_ClassValue
-m_Distribution
-m_ClassAttribute
Scenario:
Clase que caracteriza a un dominio, un escenario de experimentacin. Sus
atributos corresponden a los parmetros que rigen el banco de pruebas.
Experience:
Clase que caracteriza a una experiencia. Cada experiencia consiste en la
variacin del parmetro variableParameter desde su valor from a su valor to,
calculando el resultado para cada valor iterationsPerValue veces.
ExperienceIteration:
Clase que realiza cada una de las iteraciones de experimentacin. Posee una
referencia a su Experience, la cual tiene una referencia a Scenario, camino por el cual
Metodologa
93
SimpleRules:
Clase generadora de dominios, de acuerdo al mtodo descripto en la seccin
4.3.
Som:
Clase que implementa la red neuronal SOM como algoritmo de agrupamiento.
J48:
Clase que implementa el algoritmo J48 (C4.5) como rbol de induccin de
reglas TDIDT.
Id3:
Clase que implementa el algoritmo ID3 como rbol de induccin de reglas
TDIDT.
Correr experiencias
Graficar
experiencias
Experimentador
Unificar datos de
distintas DBs
94
Metodologa
Cargar o crear
Scenario
ExperienceRunner
Crear Experience
Correr Experience
Correr cada
ExperienceIteration
Metodologa
95
Generar el dominio
ExperienceIteration
Correr la SOM
Correr TDIDT
Determinar reglas
cubiertas de forma correcta
96
Metodologa
x = desde
X = hasta
X <= hasta
iteracin = 1
x=x+1
Iteracin = iteraciones
Correr ExperienceIteration
Persistir ExperienceIteration
iteracin = iteracin + 1
Se procesa cada uno de los valores del parmetro a variar, tantas veces como
se han indicado las iteraciones cuyos resultados ms tarde sern promediados.
A.3
Diseo
Metodologa
97
A.3.1.1 Scenario
Se trata de una clase de entidad que contiene informacin sobre los que han
sido definidos como parmetros del banco de pruebas. Mediante esta clase, es posible
definir las caractersticas de los dominios y las condiciones bajo las cuales se va a llevar
la experimentacin, lo cual termina conformando un escenario de experimentacin.
A.3.1.2 Experience
Esta clase toma un escenario y define un plan de experimentacin basado en
hacer variar un determinado parmetro en un rango de valores, calculando el
resultado obtenido para cada uno de los valores una cierta cantidad de veces. Estas
son las denominadas iteraciones y tienen como objetivo reducir el error proveniente
de la incidencia de la funcin azar como herramienta de determinacin del dominio.
A.3.1.3 ExperienceIteration
Cada instancia de esta clase responde a una instancia de Experience, ya que las
instancias de esta clase son las iteraciones realizadas para cumplir con la experiencia
definida en la clase Experience.
Cada atributo de esta clase, tiene adems una instancia de las clases que
permiten generar el dominio, aplicar SOM, aplicar TDIDT con el objetivo de evaluar el
porcentaje de reglas cubiertas de forma correcta tras la aplicacin de SOM y TDIDT
como mecanismo de descubrimiento de conocimiento.
A.3.1.4 SimpleRules
Esta clase es un generador que implementa la interfaz ClassificationGenerator
del conjunto de clases provistas por la Universidad de Waikato. Haciendo uso de este
generador, es posible crear dominios de acuerdo al mtodo descripto en la seccin 4.3.
A.3.1.5 Som
Clase escrita por Jason Brownlee que implementa en Java las funciones del
paquete de software SOM_PAK, como aportacin al conjunto de clases de la
Universidad de Waikato.
98
Metodologa
A.3.1.6 J48
Clase perteneciente al conjunto de clases de la Universidad de Waikato, que
implementa el algoritmo J48 (C4.5) como rbol de induccin de reglas TDIDT.
A.3.1.7 Id3
Clase perteneciente al conjunto de clases de la Universidad de Waikato, que
implementa el algoritmo ID3 como rbol de induccin de reglas TDIDT.
A.3.1.8 ExperienceRunner
Clase que permite definir una serie de experiencias a ser realizadas sobre el
banco de pruebas, corriendo en modo batch.
Esta clase no aparece en el diagrama de clases, debido a que es una clase de
control cuyo objetivo es disear las experiencias a realizar y ejecutarlas.
A.4
Codificacin
Metodologa
99
Tanto el cdigo fuente de todas las clases como los scripts de generacin de la
base de datos, se encuentran en el CD que acompaa a esta tesis.
A.5
Implementacin
Ejecucin de experiencias.
Graficacin de resultados.
Unificacin de los resultados obtenidos para su anlisis en conjunto.
Modo de
Ejecucin
Configuracin
de proceso
Salida
100
Metodologa
Modo de Ejecucin
Configuracin de
proceso
Salida
Modo de
Ejecucin
Configuracin de
proceso
Salida
Metodologa
101
A.6
Pruebas
Caractersticas a
probar
Caractersticas a no
probar
Cantidad de casos de
prueba
102
Metodologa
3 Correr una
experiencia
donde el
parmetro a
variar toma 3
valores y se
ejecuta 1
iteracin por
valor
4 Correr una
experiencia
donde el
parmetro a
variar toma 3
valores y se
ejecutan 10
iteraciones por
valor
Metodologa
Accin
Entrada
Ejecutar
Indicar para la
ExperienceRunner experiencia un
escenario que
no existe
Resultado esperado
El escenario debe ser
creado en la base de
datos y la
experiencia debe
referenciar a ste
Ejecutar
Indicar para la
No debe crearse
ExperienceRunner experiencia un
ningn escenario en
escenario que s la base de datos y la
existe
experiencia debe
referenciar al
preexistente con las
caractersticas dadas
Ejecutar
Indicar para la
Se deben haber
ExperienceRunner experiencia que creado 3 iteraciones
el parmetro a para la experiencia,
variar toma 3
cada una con un
valores y se
valor distinto de x,
ejecuta 1
pero
iteracin por
correspondientes a
valor.
los valores a tomar
por el parmetro que
vara.
Ejecutar
Indicar para la
Se deben haber
ExperienceRunner experiencia que creado 30
el parmetro a iteraciones para la
variar toma 3
experiencia, 10 para
valores y se
cada uno de los
ejecutan 10
valores a tomar por
iteraciones por el parmetro que
valor.
vara.
103
5 Correr una
experiencia en la
cual la cantidad
de atributos
sobre los que se
imponen
condiciones es
igual a la
cantidad de
atributos de los
ejemplos.
6 Migrar
experiencias de
una base de
datos a otra,
referenciando las
experiencias en
origen
escenarios
presentes en
destino.
7 Migrar
experiencias de
una base de
datos a otra,
referenciando las
experiencias en
origen
escenarios no
existentes en
destino.
8 Migrar
experiencias
inexistentes en la
base de datos
origen.
Ejecutar
Indicar iguales
ExperienceRunner la cantidad de
atributos sobre
los que se
imponen
condiciones y la
cantidad de
atributos de los
ejemplos.
Ejecutar
DbMerger
Indicar
experiencias a
migrar que
referencien
escenarios
preexistentes
en destino
Las experiencias
migradas deben
referenciar a los
escenarios
preexistentes en
destino y no deben
crearse nuevos
escenarios.
Ejecutar
DbMerger
Indicar
experiencias a
migrar que
referencien
escenarios no
existentes en
destino
Ejecutar
DbMerger
9 Generar grficas
definidas en la
base de datos.
Ejecutar
GraphDrawer
Indicar
experiencias a
migrar no
existentes en la
base de datos
origen.
Indicar grficas
a generar
existentes en la
base de datos.
10 Generar grficas
no definidas en
la base de datos.
Ejecutar
GraphDrawer
104
Indicar grficas
a generar
inexistentes en
la base de
datos.
Metodologa
Entrada
Indicar para la
experiencia un
escenario que no existe
Indicar para la
experiencia un
escenario que s existe
3 Ejecutar
ExperienceRunner
Indicar para la
experiencia que el
parmetro a variar
toma 3 valores y se
ejecuta 1 iteracin por
valor.
Ejecutar
Indicar para la
ExperienceRunner experiencia que el
parmetro a variar
toma 3 valores y se
ejecutan 10 iteraciones
por valor.
Ejecutar
Indicar iguales la
ExperienceRunner cantidad de atributos
sobre los que se
imponen condiciones y
la cantidad de atributos
de los ejemplos.
Ejecutar DbMerger Indicar experiencias a
migrar que referencien
escenarios
preexistentes en
destino
Ejecutar DbMerger Indicar experiencias a
migrar que referencien
escenarios no
existentes en destino
Resultado esperado
El escenario debe ser creado en
la base de datos y la experiencia
debe referenciar a ste
No debe crearse ningn
escenario en la base de datos y
la experiencia debe referenciar
al preexistente con las
caractersticas dadas
Se deben haber creado 3
iteraciones para la experiencia,
cada una con un valor distinto
de x, pero correspondientes a
los valores a tomar por el
parmetro que vara.
Se deben haber creado 30
iteraciones para la experiencia,
10 para cada uno de los valores
a tomar por el parmetro que
vara.
Se debe arrojar una excepcin y
no generar ninguna iteracin
para la experiencia.
105
9 Ejecutar
GraphDrawer
10 Ejecutar
GraphDrawer
Indicar grficas a
generar existentes en la
base de datos.
Indicar grficas a
generar inexistentes en
la base de datos.
Accin
1 Ejecutar
ExperienceRunner
2 Ejecutar
ExperienceRunner
3 Ejecutar
ExperienceRunner
4 Ejecutar
ExperienceRunner
5 Ejecutar
ExperienceRunner
106
Entrada
Indicar para la
experiencia un
escenario que no
existe
Indicar para la
experiencia un
escenario que s
existe
Resultado esperado
Resultado
obtenido
Excelente
Metodologa
6 Ejecutar
DbMerger
7 Ejecutar
DbMerger
8 Ejecutar
DbMerger
9 Ejecutar
GraphDrawer
10 Ejecutar
GraphDrawer
Indicar
experiencias a
migrar que
referencien
escenarios
preexistentes en
destino
Indicar
experiencias a
migrar que
referencien
escenarios no
existentes en
destino
Indicar
experiencias a
migrar no
existentes en la
base de datos
origen.
Indicar grficas a
generar existentes
en la base de
datos.
Indicar grficas a
generar
inexistentes en la
base de datos.
Las experiencias
migradas deben
referenciar a los
escenarios preexistentes
en destino y no deben
crearse nuevos
escenarios.
Los escenarios deben ser
migrados a la base de
datos destino (creados
en sta), as como las
experiencias, las cuales
deben pasar a
referenciar los
escenarios recin
creados.
Se debe arrojar una
excepcin y detener el
proceso.
Excelente
Excelente
Excelente
A.7
Gestin de configuracin
Metodologa
107
Objetivo de
la aplicacin
Ciclo de vida
del software
Fases del
ciclo de vida
Lneas base
establecidas
108
Metodologa
Sistema:
Pedido por:
Resultado de la evaluacin:
Cambio solicitado:
Metodologa
BDP
Aceptado
Fecha
dd/mm/aaaa
Rechazado
109
Solucin propuesta:
Plan de pruebas:
BDP
Fecha:
N solicitud:
dd/mm/aaaa
110
Metodologa
BDP
Fecha
dd/mm/aaaa
N solicitud
Fecha de solicitud dd/mm/aaaa
Prioridad asignada:
Estado actual del pedido:
Rechazado
Fecha
N solicitud
Descripcin breve del problema:
dd/mm/aaaa
dd/mm/aaaa
Metodologa
111
dd/mm/aaaa
dd/mm/aaaa
dd/mm/aaaa
dd/mm/aaaa
dd/mm/aaaa
112
Metodologa
Manual de Usuario
B.1
Introduccin
Manual de Usuario
113
B.1.3.1 Weka
Weka [Ian & Frank, 2005] es una coleccin de algoritmos de aprendizaje
automtico para tareas de minera de datos. Los algoritmos pueden ser aplicados
directamente sobre conjuntos de datos o bien ser llamados desde cdigo Java propio,
el cual es el uso que se ha hecho en este sistema.
Weka cuenta con una serie de herramientas para el pre-procesamiento de
datos, clasificacin, regresin, agrupamiento, reglas de asociacin y visualizacin.
Asimismo, permite utilizar de forma simple nuevos esquemas desarrollados.
Es as como se ha desarrollado sobre la base de Weka, una serie de
herramientas para realizar las labores de experimentacin de esta tesis.
De la misma manera, gracias a las herramientas provistas por Weka y la
plataforma de experimentacin provista por el banco de pruebas, es posible realizar
labores de experimentacin sobre otros algoritmos de forma muy simple.
Weka es software libre publicado bajo Licencia Pblica General GNU.
http://wekaclassalgos.sourceforge.net/
http://www.cis.hut.fi/research/som_pak/
114
Manual de Usuario
Un nico archivo jar que recopila las libreras utilizadas de Weka, WCA, y las
incorporaciones realizadas.
Archivos de extensin sql que contienen los scripts SQL para la creacin y
mantencin del esquema de base de datos utilizado como soporte de la
informacin de experimentacin y sus resultados.
B.2
Requerimientos
B.2.2 PostgreSQL
PostgreSQL es el motor de base de datos elegido para el almacenamiento de los
datos de los experimentos y sus resultados.
Adems del servidor de base de datos, hay disponibles clientes de
administracin y drivers JDBC. La instalacin de estos componentes se detalla a
continuacin.
Manual de Usuario
115
Una vez instalado el servidor de base de datos, es conveniente crear un rol con
el cual se va a trabajar. La documentacin sobre esta operacin se puede encontrar en
http://www.postgresql.org/docs/8.2/interactive/sql-createrole.html.
B.2.3 JFreeChart
El componente del sistema que permite graficar los resultados obtenidos en la
experimentacin, hace uso de una biblioteca de graficacin para Java llamada
JFreeChart.
La
misma
puede
ser
descargada
de
http://www.jfree.org/jfreechart/download.html.
B.3
B.3.1 Classpath
El classpath es el camino por el cual el entorno de ejecucin Java busca las
clases y otros archivos de recursos necesario para la ejecucin de cierto cdigo.
Para la correcta ejecucin de los distintos componentes del banco de pruebas,
estos deben tener en su classpath las libreras a las cuales hace llamados. Es por eso
que el correcto establecimiento del classpath es fundamental para ejecucin de las
operaciones.
Instrucciones para establecer el classpath tanto en ambientes Unix como
Windows, se pueden encontrar en:
116
Manual de Usuario
Windows
http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/classpath.html
Linux y
Solaris
http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/classpath.html
Que los saltos de lnea son nicamente para exhibir de forma clara la sentencia
en este documento, pero que en realidad va todo en una misma lnea y no hay
espacios entre los componentes del classpath (aquellos paths separados por
coma).
Unificacin de datos:
java -cp .;"<jar_dir>\weka-bdp-1.0.jar";
"<jar_dir>\postgresql-8.1-407.jdbc3.jar"
ar.com.arikogan.bdp.DbMerger
Graficacin de resultados:
java cp .;
"<jar_dir>\weka-bdp-1.0.jar";
"<jar_dir>\postgresql-8.1-407.jdbc3.jar";
"<jar_dir>\jfreechart-1.0.1.jar"
ar.com.arikogan.bdp.GraphDrawer
Manual de Usuario
117
B.4
Donde:
118
Manual de Usuario
<host>
<port>
<db>
<user>
<password>
Windows
http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/javac.html
Suponiendo:
Que los saltos de lnea son nicamente para exhibir de forma clara la sentencia
en este documento, pero que en realidad va todo en una misma lnea y no hay
espacios entre los componentes del classpath (aquellos paths separados por
coma).
Manual de Usuario
119
Unificacin de datos:
javac -cp .;"<jar_dir>\weka-bdp-1.0.jar";
"<jar_dir>\postgresql-8.1-407.jdbc3.jar"
ar.com.arikogan.bdp.DbMerger
Graficacin de resultados:
javac cp .;
"<jar_dir>\weka-bdp-1.0.jar";
"<jar_dir>\postgresql-8.1-407.jdbc3.jar";
"<jar_dir>\jfreechart-1.0.1.jar"
ar.com.arikogan.bdp.GraphDrawer
B.4.1.3.1
120
Manual de Usuario
B.4.1.3.2
B.4.1.3.3
En el caso que la rutina sea invocada desde una consola remota (ej.: SSH),
existe la posibilidad que sta se desconecte y con la muerte de su proceso, mueran
todos sus hijos.
Con el fin de evitar esta situacin y permitir que el comando siga corriendo a
pesar que la consola que lo invoc se desconecte, se puede hacer uso del comando
nohup con el objetivo de resguardar al comando invocado de las seales SIGHUP.
La sentencia para hacer el llamado en una consola, es la siguiente:
nohup <comando>
B.4.1.3.4
Ejecucin en background
Manual de Usuario
121
B.4.1.3.5
B.4.1.3.6
Un ejemplo unificador
Manual de Usuario
Manual de Usuario
123
En resumen, el cdigo que se tuvo que escribir para realizar este experimento
es:
public void runSampleExperience() throws SQLException, Exception
{
int attributesNumber = 6;
int attPossibleValues = 20;
int classPossibleValues = 5;
int rulesPerClass = 5;
int attUsedInRule = 3;
int instancesByRule = 10;
int classAttPossibleValuesPercentage = 20;
boolean mix = true;
boolean allowMultipleCoverage = false;
double allowedCoverageDesviation = 20;
int somTrainingIterationsMultiplier = 100;
int somMapWidth = 4;
int somMapHeight = 4;
Connection con = openConnection();
Scenario scenario = new Scenario(attributesNumber,
attPossibleValues,
classPossibleValues,
rulesPerClass,
124
Manual de Usuario
Manual de Usuario
125
Tras
esto,
el
nico
B.4.4 Graficacin
B.4.4.1 Descripcin de las tablas de organizacin
La rutina de graficacin hace uso de 2 tablas para definir las grficas a realizar.
stas deben ser pobladas para que la clase GraphDrawer tome de sta los datos
necesarios para generar las grficas. A continuacin se describen.
Una tabla es graph, en la se indica cul es el parmetro que se variar en el
eje x y cul es aquel que tomar distintos valores discretos en cada una de las series
graficadas. Adems, se puede incluir una descripcin para cada una de las grficas.
Un ejemplo de algunas filas de esta tabla es:
126
Manual de Usuario
graph_id
13
variable_parameter
CLASS_POSSIBLE_VALUES
series_parameter
ATTRIBUTES_NUMBER
14
CLASS_POSSIBLE_VALUES
ATT_POSSIBLE_VALUES
15
CLASS_POSSIBLE_VALUES
RULES_PER_CLASS
description
Dominio patrn variando
classPossibleValues para
distintos
attributesNumber
Dominio patrn variando
classPossibleValues para
distintos
attPossibleValues
Dominio patrn variando
classPossibleValues para
distintos rulesPerClass
graph_experience_id
60
61
62
63
65
66
67
68
69
70
71
72
73
graph_id experience_id
13
148
13
149
13
150
13
151
14
153
14
154
14
155
14
156
15
157
15
158
15
159
15
160
15
161
place
1
2
3
4
1
2
3
4
1
2
3
4
5
Manual de Usuario
127
128
Manual de Usuario