Un Ambiente Integrado de Clasificación, Selección y Ponderación

Anuncio
UN AMBIENTE INTEGRADO DE CLASIFICACION,
SELECCION Y PONDERACION DE REGLAS BASADO
EN SISTEMAS INTELIGENTES
TESIS DE GRADO EN INGENIERIA EN INFORMATICA
FACULTAD DE INGENIERIA
UNIVERSIDAD DE BUENOS AIRES
TESISTA: Sr. Gastón Schulz
DIRECTORES: Prof. M. Ing. Paola Britos
Prof. Ing. Arturo Servetto
Laboratorio de Sistemas Inteligentes
2
UN AMBIENTE INTEGRADO DE CLASIFICACION,
SELECCION Y PONDERACION DE REGLAS BASADO
EN SISTEMAS INTELIGENTES
TESIS DE GRADO EN INGENIERIA EN INFORMATICA
Laboratorio de Sistemas Inteligentes
FACULTAD DE INGENIERIA
UNIVERSIDAD DE BUENOS AIRES
3
4
Resumen
Actualmente no existe un ambiente que integre y complemente las funciones de
clasificación de instancias, extracción o inducción de reglas de decisión y ponderación
de estas reglas, para lograr una profunda y completa investigación de las características
de las poblaciones que se desean estudiar. Esta falencia hace que cada vez que se quiera,
por ejemplo, extraer las reglas de producción que dan como consecuencia la
clasificación de una población, se necesite primero clasificar a los individuos de una
población en un ambiente de clasificación, para luego ingresar a estos individuos
clasificados en un ambiente diferente, capaz de inducir y extraer las reglas. Aquí se
propone desarrollar un ambiente capaz de integrar las tres funciones, para que se
complementen unas con otras.
Palabras clave: Data mining, ambiente integrado, clasificación de instancias, reglas de
decisión, ponderación de reglas.
Abstract
Actually there not exists a ambient capable to integrate the mechanisms of
classification of instances, selection and weighting of rules, and that uses each one of
these mechanisms as a complement one of the other, to obtain a complete investigation
of the characteristics of the populations that are desired to study. This does that
whenever it is wanted, for example, to extract the rules that give the classification of a
population, it is needed first to classify the individuals of the population in a
classification ambient, and then to enter these classified individuals in a different
ambient, able to induce and to extract the rules. Here we propose to develop a tool able
to integrate these three mechanisms, to let then complement one with each other.
Key words: Data mining, integrated ambient, clasification of instances, decision rules,
weighting of rules.
5
ÍNDICE
1. INTRODUCCIÓN ______________________________________________ 9
2. ESTADO DEL ARTE __________________________________________ 11
2.1. Ambientes de minería de datos actuales _____________________________________________ 11
2.2. Redes neuronales competitivas en la clasificación de instancias__________________________ 13
2.2.1. Introducción _________________________________________________________________ 13
2.2.2. Redes SOM (Self Organizing Maps) ______________________________________________ 14
2.3. Árboles de decisión e inducción de reglas ____________________________________________
2.3.1. Inducción de árboles de decisión._________________________________________________
2.3.2. La familia TDIDT de sistemas de aprendizaje_______________________________________
2.3.3. Árboles de decisión____________________________________________________________
2.3.4. La tarea de inducir ____________________________________________________________
2.3.5. Tamaño correcto del árbol de decisión. Poda _______________________________________
2.3.6. ID3_________________________________________________________________________
2.3.7. Incorporando valores continuos __________________________________________________
22
22
23
25
27
30
31
40
2.4. Redes Bayesianas y ponderación de reglas ___________________________________________
2.4.1. Teorema de Bayes_____________________________________________________________
2.4.2. Introducción a redes Bayesianas _________________________________________________
2.4.3. Estimación de la estructura de la red Bayesiana _____________________________________
2.4.4. Clasificadores basados en redes Bayesianas ________________________________________
41
41
44
46
48
3. DESCRIPCIÓN DEL PROBLEMA ________________________________ 55
3.1. Generalidades ___________________________________________________________________ 55
3.2. El problema a resolver ____________________________________________________________ 55
4. SOLUCIÓN PROPUESTA ______________________________________ 59
4.1. El ambiente integrado ____________________________________________________________ 59
4.2. Representación de los datos de entrada ______________________________________________ 64
4.2.1. El Standard XML _____________________________________________________________ 65
4.3. Características necesarias de los datos de entrada _____________________________________ 72
5. DISEÑO DEL AMBIENTE. LA METODOLOGÍA UML ________________ 75
5.1. Generalidades ___________________________________________________________________ 75
5.2. Casos de Uso ____________________________________________________________________
5.2.1. Población____________________________________________________________________
5.2.2. Clasificador __________________________________________________________________
5.2.3. Selector _____________________________________________________________________
5.2.4. Ponderador __________________________________________________________________
5.2.5. El menú _____________________________________________________________________
75
76
78
80
82
85
7
5.3. Transición de estados en el ambiente ________________________________________________ 88
5.4. La interfase grafica_______________________________________________________________
5.4.1. Población____________________________________________________________________
5.4.2. Clasificador __________________________________________________________________
5.4.3. Selector _____________________________________________________________________
5.4.4. Ponderador __________________________________________________________________
90
90
91
92
94
5.5. Casos de Prueba _________________________________________________________________ 96
5.5.1. Población____________________________________________________________________ 96
5.5.2. Clasificador __________________________________________________________________ 98
5.5.3. Selector ____________________________________________________________________ 100
5.5.4. Ponderador _________________________________________________________________ 103
5.5.5. El menú ____________________________________________________________________ 105
6. COMPARACIÓN EXPERIMENTAL CON OTROS AMBIENTES _______ 109
6.1. Introducción ___________________________________________________________________ 109
6.2. Clasificador de instancias ________________________________________________________ 110
6.3. Inducción de reglas ______________________________________________________________ 111
6.4. Ponderación de reglas ___________________________________________________________ 116
7. CONCLUSIONES ____________________________________________ 119
BIBLIOGRAFÍA _______________________________________________ 121
8
1. Introducción
Actualmente no existe un ambiente capaz de integrar y complementar las
funciones de clasificación de instancias, inducción o selección de reglas de decisión y
ponderación de estas reglas, para lograr una profunda y completa investigación de las
características de las poblaciones que se desean estudiar. Esta falencia hace que cada
vez que se quiera, por ejemplo, extraer las reglas de producción que dan como
consecuencia la clasificación de una población, se necesite primero clasificar a los
individuos de una población en un ambiente de clasificación, para luego ingresar a estos
individuos clasificados en un ambiente diferente, capaz de inducir y extraer las reglas.
La misma necesidad haría falta si se quieren ponderar luego esas reglas obtenidas.
Aquí se propone desarrollar un ambiente capaz de integrar las tres funciones, y
hacer además que estas funciones logren complementarse.
Esta tesis se encuentra estructurada a lo largo de 7 capítulos.
El capítulo 2 describe el estado actual de los campos de estudio relacionados con
esta tesis. En la sección 2.1 se presenta un listado de las herramientas actuales más
conocidas o utilizadas en el mercado para el estudio de poblaciones con sus
características, la sección 2.2 presenta los conceptos y teorías importantes relativas a las
redes competitivas en general y a las SOM en particular, utilizadas para la clasificación
de individuos. A lo largo de la sección 2.3 se presentan los árboles de decisión, dándole
una especial atención a los ID3. En la sección 2.4 se presentan las redes Bayesianas, y
junto con ellas se da una introducción a la utilización de estas redes como
clasificadoras, describiéndose las características de las redes Naive Bayes y TAN.
En el capítulo 3 se presenta el contexto de nuestro problema de interés.
En el capítulo 4 se presentan todos los aspectos relativos de la solución
propuesta. En la sección 4.1 se describen las características y el flujo de procesos que
conformarán el ambiente integrado propuesto como solución. En la sección 4.2 se
9
describe el estándar XML, utilizado para la representación de los datos de entrada que
serán analizados por el ambiente y ya en la sección 4.3 se describen y especifican las
características que deben cumplir (dentro del estándar XML) los datos de entrada que
serán analizados.
En el capitulo 5 se desarrolla la metodología de diseño y desarrollo de sistemas
denominada UML aplicada al diseño y desarrollo del ambiente a implementar.
Primeramente, en la sección 5.1, se hace una reseña del lenguaje utilizado, ambientes de
desarrollo y demás características del software utilizado para la construcción y
compilado del software. En la sección 5.2 se presentan los casos de uso. Luego, en la
sección 5.3 se presenta la transición de estados en el ambiente, y en la sección 5.4 se
presenta el diseño de las distintas pantallas desarrolladas. A continuación, en la sección
5.5, se describen las pruebas que se realizaron sobre los casos de uso, para evaluar la
efectividad de la solución propuesta.
En el capitulo 6 se realiza una comparación entre los resultados experimentales
obtenidos con el ambiente desarrollado y otros ambientes existentes, respecto a cada
una de las funciones que el ambiente desarrollado provee.
Y por último, en el capitulo 7, se describen las conclusiones obtenidas.
10
2. Estado del arte
Este capítulo presenta el estado actual de los aspectos relacionados con el
estudio de esta tesis. Se comienza dando una reseña respecto a los diferentes ambientes
de minería de datos actualmente disponibles en el mercado (Sección 2.1). Luego, se
presenta el estado actual de las redes competitivas, y en especial a las redes
denominadas mapas autoorganizados, utilizadas como redes clasificadoras de datos
(Sección 2.2).
Se comienza dando una introducción de lo que son las redes
competitivas (Sección 2.2.1) en general, para después detallar a las redes SOM en
particular (Sección 2.2.2). A continuación se presentan los árboles de decisión,
utilizados como solución a la inducción de reglas (Sección 2.3). Primero se explica el
concepto de inducción mediante árboles de decisión (Sección 2.3.1). Después se
presenta a la familia TDDI de árboles de decisión (Sección 2.3.2). Luego se detallan
puntualmente los árboles de decisión (Sección 2.3.3) para después explicar a que se
refiere la tarea de inducir dentro de los árboles (Sección 2.3.4), continuar explicando lo
que es la poda en árboles de decisión (Sección 2.3.5) y finalizar dando una reseña,
dentro de la familia TDDI, al algoritmo ID3 (Sección 2.3.6). Se describe luego un
método probabilístico para lograr la ponderación de las reglas inducidas, como son las
redes Bayesianas (Sección 2.4), presentado también diferentes algoritmos de redes
Bayesianas utilizadas como clasificadoras de datos (Sección 2.4.3), detallando
puntualmente las Naive Bayes y las TAN.
2.1. Ambientes de minería de datos actuales
Existen numerosos ambientes utilizados en forma exitosa tanto para clasificar a
una población de individuos, para inducir reglas inherentes a las características de una
población o para ponderar reglas. Sistemas que utilizan a las redes neuronales son un
ejemplo de eso, ya que dependiendo de la arquitectura de redes que utilicen, se
comportan muy bien como clasificadores de elementos de un dominio; los sistemas que
implementan árboles de decisión tales como ID3 [Quinlan, 1986] o C4.5 [Quinlan,
1993], por otro lado, son también muy comunes en lo que se refiere a la extracción de
11
reglas de dominios; y también están aquellos sistemas que utilizan a las redes
Bayesianas como modelos de ponderación de reglas.
A continuación se detallan varios
ambientes actualmente disponibles en el
mercado, junto con una pequeña reseña de las funciones que proveen y de las técnicas
utilizadas para brindar esas características.
AMBIENTE DESCRIPCION
AC2
AC2 es un ambiente de data mining diseñado para usuarios conocedores
de la materia. AC2 tiene un modelado grafico orientado a objetos y
librerías en C y C++. Soporta la edición interactiva del árbol que se
genera. Se comporta como una librería multiplataforma de funciones de
data mining. Provee como funciones: clusterización, clasificación,
predicción, segmentación. Utiliza como técnica árboles de decisión
[AC2].
AnswerTree
AnswerTree es un ambiente de SPSS utilizado para construir árboles de
decisión. Como ambiente de data mining apunta perfilar a grupos para
la comercialización y las ventas. Utiliza cuatro algoritmos de árboles de
decisión. Incluidos están dos algoritmos CHAID, los cuales SPSS ha
extendido para manejar categorización nominal, ordinal y variables
continuas dependientes. Provee como funciones: Clasificación. Utiliza
como técnicas: Árboles de decisión (CHAID, CHAID Exhaustivo,
C&RT (variación de CART), QUEST). [AnswerTree]
CART
CART es un ambiente de árbol de decisión que utiliza el algoritmo
CART. Para poder manejar la falta de información, los datos son
manejados a través de reglas de backup que no siempre asumen que
todos los datos de un atributo incierto es el mismo. Se utilizan siete
criterios diferentes de splitting (incluyendo el Gini). Debido al uso del
motor de traducción de datos, DBMS/Copy, se pueden utilizar datos de
diferentes tipos de formato (incluyendo Excel, Informix, Lotus, Oracle).
Provee como funciones: Clasificación. Utiliza como técnicas: Árboles
de decisión (CART). [CART], [Breiman L, 1984].
Clementine utiliza iconos descriptivos como interfaz, el usuario crea
descripciones de flujos de datos de las funciones que se realizarán. Cada
icono representa un paso en el proceso total de minería de datos.
Existen incluidos iconos para funciones tales como el acceso a datos,
preparación de datos, visualización y modelado. Para asistir a la
creación de secuencias, Clementine utiliza Capri. Además puede utilizar
grandes conjuntos de datos usando un modelo de cliente/ servidor.
Cuando es posible, el servidor convierte peticiones del acceso a los
datos en las consultas SQL, que pueden entonces tener acceso a una
base de datos emparentada. Provee como funciones: Reglas de
asociación, clasificación, clusterización, análisis de factor, pronostico,
predicción. Utiliza como técnicas: Apriori, BIRCH, CARMA, árboles
Clementine
12
AMBIENTE DESCRIPCION
de decisión (C5.0, C&RT variación de CART), clusterización K-means,
redes neuronales (Kohonen, MLP, RBFN), regresión (lineal, logística)
inducción de reglas (C5.0, GRI). [Clementine]
Elvira
El programa Elvira está destinado a la edición y evaluación de modelos
gráficos probabilistas, concretamente redes Bayesianas y diagramas de
influencia. Elvira cuenta con un formato propio para la codificación de
los modelos, un lector-intérprete para los modelos codificados, una
interfaz gráfica para la construcción de redes, con opciones específicas
para modelos canónicos (puertas OR, AND, MAX, etc.), algoritmos
exactos y aproximados (estocásticos) de razonamiento tanto para
variables discretas como continuas, métodos de explicación del
razonamiento, algoritmos de toma de decisiones, aprendizaje de
modelos a partir de bases de datos, fusión de redes, etc. [Elvira]
Sipina
Sipina está diseñado especialmente para la inducción de árboles de
decisión. Sipina es un software con el cual se puede extraer
conocimiento de los datos. Sipina aprende tanto de datos cualitativos
como cuantitativos, y produce un grafico enrejado. Los algoritmos que
provee Sipina para la generación de árbol de decisión son: SIPINA,
ID3, C4.5, CART, Chi2-link, Elisee, QR_MDL y WDTaiqm. [Sipina]
Weka
Weka contiene y se focaliza en algoritmos de clasificación, regresión, y
clusterización de patrones. Weka es un software gratuito y open-source
bajo la licencia al público en general del GNU (GLP). Las técnicas que
utiliza son: Naïve Bayes, Nearest neighbor, Linear models, OneR,
Decision trees, Covering rules, K-means, EM, Cobweb. [Weka]
2.2. Redes neuronales competitivas en la clasificación de instancias
2.2.1. Introducción
En las redes neuronales con aprendizaje competitivo y cooperativo, las neuronas
compiten y cooperan unas con otras con el fin de llevar a cabo una tarea dada. Con este
tipo de aprendizaje se pretende que cuando se presente a la red cierta información de
entrada, solo una de las neuronas de salida de la red se active o alcance su valor de
respuesta máximo. Es por eso que las neuronas compiten para activarse, quedando
finalmente una como neurona ganadora, mientras que el resto quedan anuladas. Como
se mencionó anteriormente, el objetivo de este aprendizaje es clusterizar los datos que
se introducen en la red. Debido a esto, los individuos con características similares son
clasificados formando parte de la misma categoría y por lo tanto deben activar la misma
13
neurona de salida. Un punto que vale la pena destacar es el hecho de que en este tipo de
redes las clases o categorías que la red clasificará deberán ser creadas por la propia red,
puesto que se trata de un aprendizaje no supervisado a través de las correlaciones entre
los datos de entrada. Las clases o categorías en las que se va a dividir el conjunto de
entrada están directamente relacionadas con la estructura que tenga la red competitiva,
ya que la cantidad de nodos que tenga la red dará lugar a la cantidad máxima de clases
en las que ésta podrá clusterizar a las entradas.
2.2.2. Redes SOM (Self Organizing Maps)
Una de las implementaciones que más se destacan en este tipo de redes son los
mapas autoorganizados (SOM., Self Organizing Maps). Esta implementación permite a
la red clasificar entradas en las cuales las neuronas que estuviesen en un vecindario
cercano a la neurona ganadora, respondieran a entradas similares.
Los mapas autoorganizados están compuestos por un conjunto de nodos
definidos por un vector de pesos, y una topología que indica la vecindad de los nodos
entre sí. Todos los nodos reciben el mismo vector de entradas, y su salida es la distancia
euclídea entre el vector de entradas y el de pesos. De todos los nodos que forman el
mapa, solo uno será el responsable de generar la salida, y será aquel cuyo vector de
pesos sea el más parecido a la entrada actual. Esta red utiliza un aprendizaje no
supervisado de tipo competitivo.
En cuanto a la topología de vecindad entre los nodos, esta puede ser muy
variada:
14
-
lineal,
-
lineal en forma de anillo,
-
plana con retículo rectangular,
-
plana con retículo hexagonal,
-
toroidal
En la Figura 1 se muestran algunos ejemplos de vecindad en los mapas
autoorganizados. Es posible también tener mapas autoorganizados con topologías de
dimensiones más altas, pero la utilización, y sobre todo la representación de los
resultados en dimensiones superiores a dos resulta más incómoda, o impracticable.
Figura 1. Ejemplos de vecindad en los mapas autoorganizado
El aspecto geométrico de la disposición de las neuronas de una red en los mapas
autoorganizados o SOM es la base de un caso particular de aprendizaje competitivo
introducido por Kohonen en 1982 [Kohonen, 1982], el cual es aplicado a una
disposición bidimensional de las neuronas de salida, que permiten obtener mapas
topológicos o topográficos en los que de algún modo estarían representadas las
características principales de las informaciones presentadas a la red. La idea es que si la
red recibe informaciones con características similares, se generarán mapas parecidos,
debido a que serían afectadas neuronas de salidas próximas entre sí, y no solo la
neurona supuestamente ganadora.
15
El modelo presentado por Kohonen se trataba de un modelo de red neuronal con
capacidad para formar mapas de características de manera similar a como ocurre en el
cerebro; el objetivo de Kohonen era demostrar que un estímulo externo o información
de entrada por sí solo, suponiendo una estructura propia y una descripción del
comportamiento de la red, era suficiente para forzar la formación de los mapas. En la
etapa de aprendizaje de este tipo de redes, se distinguen dos etapas: una etapa de
entrenamiento y una etapa de funcionamiento.
En la etapa de entrenamiento se fijan los valores de las conexiones
(feedfordward) entre la capa de entrada y la de salida. Esta red utiliza un aprendizaje no
supervisado de tipo competitivo, las neuronas de la capa de salida compiten por
activarse y sólo una de ellas permanece activa ante una determinada información de
entrada a la red, los pesos de las conexiones se ajustan en función de la neurona que
haya resultado vencedora.
Durante la etapa de entrenamiento, se le presenta a la red un conjunto de
información de entrada para que ésta establezca en función de la semejanza entre los
datos las diferentes categorías, las cuales serán una por neurona de salida, que servirán
durante la etapa de funcionamiento para realizar clasificaciones de nuevos datos que se
le presenten a la red. En el caso de existir más patrones de entrenamiento que neuronas
de salida, es lógico pensar que más de un patrón deberá asociarse con la misma neurona,
o sea pertenecerán a la misma clase.
En este modelo el aprendizaje no concluye después de presentarle una vez todos
los patrones de entrada, sino que habrá que repetir el proceso varias veces para refinar el
mapa topológico de salida, de tal forma que cuantas más veces se presenten los datos,
tanto más se reducirán las zonas de neuronas que se deben activar ante entradas
parecidas, consiguiendo que la red pueda realizar una clasificación más selectiva.
Como se mencionó anteriormente, un concepto muy importante en la red de
Kohonen es la zona de vecindad, o vecindario alrededor de la neurona vencedora i*. Los
pesos de las neuronas que se encuentran en esta zona, a la que se le dará el nombre de
16
X(q), serán actualizados junto con el peso de la neurona ganadora, en un claro ejemplo
de aprendizaje cooperativo.
El algoritmo de aprendizaje utilizado para establecer los valores de los pesos de
las conexiones entre las N neuronas de entrada y las M de salida es el siguiente:
1. En primer lugar se inicializan los pesos wij con valores aleatorios pequeños y
se fija la zona de vecindad entre las neuronas de salida.
2. A continuación se presenta a la red una información de entrada, la cual
deberá aprender, en forma de vector p=(p1,p2,…,pn), cuyas componentes pi
serán valores continuos.
3. Puesto que se trata de un aprendizaje competitivo, se determina la neurona
vencedora de la capa de salida. Ésta será aquella cuyo vector de pesos wi
será el más parecido a la información de entrada p. Para ello se calculan las
distancias o diferencias entre ambos vectores, considerando una por una
todas las neuronas de salida. Suele utilizarse la distancia euclídea o la
siguiente expresión, muy similar:
di = ∑ (pj - wij)2 1 <= i <= M
4. Una vez localizada la neurona ganadora i*, se actualizan los pesos de las
conexiones entre las neuronas de entrada y dicha neurona, así como los de
las conexiones entre las de las entradas y las neuronas vecinas de la
vencedora. En realidad lo que se consigue con este mecanismo es asociar la
información de entrada con una cierta zona de la capa de salida. Esto se
realiza mediante la siguiente ecuación:
w(q) = w(q-1) + a(q)(p(q)-w(q-1)) para i ε X(q)
El tamaño de X(q) se puede reducir en cada iteración del proceso de ajuste
de los pesos, con lo que el conjunto de neuronas que pueden considerarse
vecinas cada vez será menor como se observa en la Figura 2. Sin embargo,
17
en la práctica es habitual considerar una zona fija en todo el proceso de
entrenamiento de la red.
Figura 2. Posible evolución de la vecindad en una red de Kohonen
El termino a(q) es el coeficiente de aprendizaje o parámetro de ganancia, con
un valor entre 0 y 1 y el cual decrece con el numero de iteración q del
proceso de entrenamiento, de tal forma que cuando se ha presentado un gran
numero de veces todo el juego de patrones de aprendizaje, su valor es
prácticamente nulo, con lo que la modificación de los pesos es insignificante.
La forma de la función a(q) si la suponemos continua durante toda la
interacción es como la mostrada en la Figura 3, que proporciona un ajuste
positivo o refuerzo en las proximidades del nodo ganador, que va
decreciendo hasta volverse negativo o inhibidor según se va alejando, para
volver a crecer hasta hacerse cero en los nodos más lejanos.
Figura 3. La función sombrero mejicano para la
interacción lateral en un mapa autoorganizado.
18
5. El proceso deberá repetirse, volviendo a presentar todo el juego de patrones
de aprendizaje p1, p2,…,pn hasta obtener la salida deseada.
En forma simplificada, en la Figura 4 puede observarse las conexiones de una
red de Kohonen.
A modo de ejemplo, y para demostrar como trabaja una red competitiva, se
creará una red que clasifique los siguientes vectores:
p1=(-0.216, 0.993), p2=(0.216, 0.993), p3=(0.993, 0.216),
p4=(0.993, -0.216), p5=(-0.622, -0.873), p6=(-0.873, -0.622)
Supondremos que la red tendrá tres neuronas, por lo tanto los vectores de
entrada serán clasificados en tres clases o grupos. Esta es una de las principales
características de las redes competitivas, ellas pueden agrupar los patrones de entrada en
clases que no se conocen. Los pesos normalizados escogidos aleatoriamente son:
w1=(0.7071, -0.7071), w2=(0.7071, 0.7071), w3=(-1.000, 0.000). W = (w1, w2, w3).
Figura 4. Conexiones de una red de Kohonen
19
Los vectores de datos y los pesos asignados pueden visualizarse en la Figura 5.
Se presenta a la red el vector p2. El vector de la segunda neurona w2 estaba más
cercano a p2, por lo tanto ganó la competición (i*=2) y su salida es 1. Ahora se aplicara
la regla de Kohonen a la neurona ganadora con una rata de aprendizaje de α=0,5.
w2 nuevo = w2 + α (p2 – w2), lo que hace w2 nuevo = (0.9527, 0.5641).
La regla de Kohonen hace que w2 tienda a p2 como puede verse en la Figura 5b,
si continuamos escogiendo vectores de entrada aleatoriamente y presentándoselos a la
red, en cada interacción el vector de pesos se acercará más al vector de entrada.
Cada vector de pesos apuntará hacia una clase diferente del vector de entrada,
convirtiéndose en un prototipo para esa clase. Cuando termine el proceso de
entrenamiento, los pesos finales se verá como aparece en la Figura 5c.
Figura 5. a) Vectores de entrada y vector de pesos. b) Proceso
de entrenamiento. c) Pesos finales
20
Las redes competitivas son bastante eficientes para resolver problemas de
clasificación, sin embargo presentan algunos problemas. El primero de los problemas es
la elección de una rata de aprendizaje que permita hallar un punto de equilibrio entre
velocidad de convergencia y la estabilidad final de los vectores de peso. Una rata de
aprendizaje cercana a cero, torna el aprendizaje muy lento pero garantiza que cuando un
vector haya alcanzado el centro de la clase objetivo, se mantendrá allí indefinidamente.
En contraste, una rata de aprendizaje cercana a uno genera un aprendizaje rápido, pero
los vectores de peso continuarán oscilando aun después de que se haya alcanzado
convergencia. La indecisión que se presenta al escoger la rata de aprendizaje puede ser
empleada como una ventaja si se inicia el entrenamiento con una rata de aprendizaje alta
y se decrementa en el transcurso del proceso de entrenamiento cuando sea necesario.
Desafortunadamente esta técnica no funciona si la red necesita continuamente ser
adaptada a nuevos argumentos de los vectores de entrada, por ejemplo en el caso de que
la red se trabaje On-Line.
Un problema de estabilidad más serio se presenta cuando las clases están muy
juntas; en ciertos casos, un vector de pesos tratando de apuntar hacia una clase
determinada, puede entrar al territorio de otro vector de pesos. En la Figura 6 pueden
observarse con círculos azules, como dos vectores de entrada son presentados repetidas
veces a la red; el resultado es que los vectores de pesos que representan las clases de la
mitad y de la derecha se encuentran a la derecha. Con seguridad, se presentará el caso
en que una de las clases de la derecha será clasificada por el vector de pesos del centro.
Figura 6. Aprendizaje Inestable
Un tercer problema con redes competitivas, es que es posible que el vector de
pesos inicial de una neurona se encuentre muy lejos de cualquiera de los vectores de
21
entrada y por lo tanto nunca gane la competición. La consecuencia será la muerte de la
neurona, lo que por supuesto no es recomendable. En la Figura 7 el vector de pesos w3
nunca ganará la competición, sin importar cuál sea el orden en que se presenten los
vectores de entrada. Una solución a este problema consiste en adicionar una ganancia
negativa a la entrada neta de cada neurona y decrementar así la ganancia total cada vez
que la neurona gane la competición; esto hará que difícilmente una neurona gane varias
veces la competición. A este mecanismo se lo llama conciencia.
Otro problema con el que nos enfrentamos en las redes competitivas, es el hecho
de que una capa competitiva tiene tantas clases como neuronas, lo que podría complicar
algunas implementaciones, ya que el número de clases no se conoce de antemano. En
capas competitivas, cada clase consiste de una región convexa del espacio de entrada,
las capas competitivas no pueden formar clases con regiones no convexas o clases que
sean la unión de regiones no conectadas.
Figura 7. Causa de la muerte de una neurona
2.3. Árboles de decisión e inducción de reglas
2.3.1. Inducción de árboles de decisión.
La investigación sobre el aprendizaje está constituida en diferentes campos. Por
un lado están los sistemas adaptativos que monitorean su propia performance y tienden
a mejorar esa performance ajustando parámetros internos. Esta aproximación,
22
característica de una gran cantidad de los primeros trabajos sobre aprendizaje, produce
sistemas que auto mejoran. Una aproximación diferente ve al aprendizaje como a la
adquisición de conocimiento estructurado en la forma de conceptos.
La importancia práctica del aprendizaje automático en esta última aproximación
ha sido subrayada con la llegada de los sistemas expertos basados en conocimiento.
Como su nombre sugiere, estos sistemas están fundados por conocimiento representado
en forma explícita más que de forma implícita en los algoritmos. El conocimiento
necesario para conducir a los sistemas expertos pioneros estaba codificado a través de
una larga interacción entre un experto en el dominio y el ingeniero en conocimiento.
Mientras el ritmo típico de adquisición de conocimientos por este método es de algunas
reglas por día, un sistema experto para una tarea compleja puede necesitar cientos e
incluso miles de esas reglas. El tiempo necesario para esto resulta muy excesivo.
Feigenbaum [Feigenbaum, 1981] llamó a este problema como “cuello de botella”. Esta
percepción estimuló investigaciones sobre métodos de aprendizaje para explicar el
conocimiento.
2.3.2. La familia TDIDT de sistemas de aprendizaje
Carbonell, Michalski y Mitchell [Carbonell, Michalski y Mitchell 1983]
identifican tres dimensiones principales en las que el aprendizaje automático puede ser
clasificado:
•
las técnicas subyacentes de aprendizaje
•
la representación del conocimiento adquirido por el sistema
•
el dominio de aplicación del sistema
El dominio de aplicación de estos sistemas no se limita a ningún área en
particular, sino que pueden ser aplicados a cualquier área. Y aunque sean sistemas de
propósito general, las aplicaciones a las que son dirigidos conllevan consigo la
clasificación. El resultado del aprendizaje es un procedimiento que puede asignar un
23
objeto desconocido a una de las distintas clases específicas. Ejemplos de clasificación
son:
•
el diagnostico de una condición medica a partir de síntomas, en donde las
diferentes clases específicas pueden ser o bien distintas enfermedades o
posibles terapias.
•
determinar el valor teórico de una determinada posición de ajedrez, cuyas
clases pueden ser blancas ganan, negras gana o tablas.
Puede parecer que la tarea de clasificación es solo una pequeña parte de los
procedimientos, pero hasta actividades de planificación interna de robots pueden ser
reclasificadas como tareas de clasificación.
Los miembros de esta familia están fuertemente caracterizados por representar
el conocimiento adquirido como árboles de decisión. Esto es un formalismo
relativamente simple que carece del poder expresivo de las redes semánticas o de otras
representaciones de primer orden. Como consecuencia de esta simplicidad, las
metodologías usadas en la familia TDIDT son considerablemente menos complejas que
las empleadas por los sistemas que pueden expresar los resultados de su aprendizaje en
un lenguaje más poderoso. Sin embargo, sigue siendo posible generar conocimiento con
la forma de árboles de decisión que es capaz de resolver problemas difíciles de
significado práctico.
La técnica subyacente del aprendizaje es del tipo no incremental a partir de
ejemplos. A los sistemas se les presenta un conjunto de casos relevantes para la tarea de
clasificación y deben desarrollar un árbol de decisión descendente (top-down),
guiándose por la frecuencia de información en los ejemplos pero no por el orden
particular en que esos ejemplos son presentados. Esto contrasta con los métodos
incrementales donde un dialogo es llevado a cabo con un instructor para depurar
conceptos parcialmente correctos o en aquellos métodos donde los ejemplos son
analizados uno a uno, cada uno de ellos produciendo un pequeño cambio en el
desarrollo del concepto; en esos métodos, el orden en el que los ejemplos son
24
presentados es muy importante. Los sistemas descriptos aquí buscan patrones dentro de
los ejemplos presentados, por lo que deben ser capaces de examinar y re-examinar todos
los ejemplos en sus diversas etapas durante el aprendizaje.
En resumen, los sistemas descritos aquí desarrollan árboles de decisión para
tareas de clasificación. Estos árboles están construidos empezando por la raíz del árbol y
descendiendo hacia las hojas. La familia destaca que sus miembros desarrollan
Inducción descendente de los árboles de decisión (Top Down Induccion of Decision
Trees).
2.3.3. Árboles de decisión
Los árboles de decisión son una forma estructurada y secuencial de representar
reglas subyacentes en los datos. Un árbol de decisión puede ser utilizado para la
exploración de datos en una o más de las siguientes formas:
•
Descripción: para reducir el volumen de datos transformándolos en una
forma más compacta la cual preserva las características esenciales y provee
un resumen exacto.
•
Clasificación: descubriendo si los datos contienen clases de objetos bien
diferenciadas, de tal forma que dichas clases puedan ser interpretadas
significativamente en el contexto.
•
Generalización: descubriendo un mapeo de variables independientes a
dependientes que es valioso para predecir el valor de la variable dependiente
en un futuro.
Las ventajas más significativas de los árboles de decisión son respecto a otros
mecanismos son:
25
•
La adquisición del conocimiento a través de ejemplos preclasificados evita
los cuellos de botella de la adquisición de conocimientos mediante un
experto.
•
Los métodos son exploratorios en lugar de inferenciales. También son no
paramétricos. Debido a que solo unas pocas asunciones son hechas en
relación al modelo y a la distribución de los datos, los árboles de decisión
pueden modelar a un gran rango de distribuciones de datos.
•
La descomposición jerárquica implica el mejor uso de las características
disponibles y una eficacia computacional en la clasificación.
•
Los árboles de decisión pueden ser utilizados tanto en problemas
determinísticos como en problemas incompletos.
•
Los árboles de decisión desarrollan la clasificación en una secuencia de tests
simples y fáciles de entender, cuya semántica es claramente intuitiva para los
expertos en el dominio.
Un árbol de decisión es una representación grafica de un procedimiento para
clasificar y evaluar un ítem de interés. Por ejemplo, dados un conjunto de síntomas de
un paciente, un árbol de decisión podría determinar el posible diagnostico o el
tratamiento recomendado para curar dichos síntomas. La Figura 8 muestra un árbol de
decisión para pronosticar si un paciente va a morir o no de hepatitis. Un árbol de
decisión representa una función que mapea cada elemento de su dominio a un elemento
de su rango, la cual es típicamente una clase etiquetada o un valor numérico. En cada
hoja del árbol de decisión se puede encontrar un elemento del rango o clase etiquetada.
En cada nodo interno del árbol, se puede encontrar un test que tiene una pequeña
cantidad de salidas posibles. Eligiendo la ramificación correcta en cada nodo interno, se
llega a la hoja que contiene la clase o el valor numérico que corresponde al ítem
evaluado. En la figura, cada hoja muestra el número de ejemplos de cada clase.
26
Figura 8. Árbol de decisión
Un árbol de decisión con un rango discreto de clases es llamado árbol de
clasificación, mientras que un árbol de decisión con un rango de valores numéricos es
denominado árbol de regresión. Un elemento del dominio es denominado instancia o
ejemplo o caso, dependiendo del contexto. Una instancia es representada por un
conjunto de valores de atributos. Cada atributo tiene su propio dominio de posibles
valores, generalmente discretos o continuos. El espacio de todas las posibles instancias
se define por el conjunto de posibles instancias que se pueden generar utilizando los
atributos y sus posibles valores (producto cartesiano). Los árboles de decisión son
atractivos porque muestran claramente como llegar a una decisión, y porque son fáciles
de construir a partir de instancias o ejemplos. Tres programas conocidos para construir
árboles de decisión son ID3 [Quinlan, 1986], C4.5 [Quinlan, 1993] y CART [Breiman,
Friedman Losen y Stone, 1984].
2.3.4. La tarea de inducir
La base de la tarea de inducir comienza con un universo de objetos, los cuales
son descriptos por una colección de atributos. Cada atributo mide alguna característica
importante del objeto y será limitado a tomar algún valor discreto. Por ejemplo, si el
27
objeto fuera el día Domingo y la tarea clasificatoria envolviese al clima, algunos
atributos podrían ser
Tiempo, con valores (soleado, nublado, lluvioso)
Temperatura, con valores (frío, templado, calor)
Humedad, con valores (alta, normal)
Viento, con valores (Si, No)
Tomados juntos, los atributos proveen un lenguaje para caracterizar objetos
dentro del universo. Un Domingo en particular podría ser descrito como
Tiempo: nublado
Temperatura: caluroso
Humedad: normal
Viento: No
Cada objeto o instancia del universo pertenece a una de un conjunto de clases
mutuamente excluyentes. Para simplificar el posterior tratamiento, asumiremos que solo
existen dos clases llamadas P y N.
El otro punto importante es el conjunto de datos de entrenamiento cuyas clases
son conocidas. La tarea de inducción es la de desarrollar una regla de clasificación que
pueda determinar la clase a la que pertenece cualquier objeto tomando como referencia
los valores de los atributos de dicho objeto. La pregunta inmediata es si los atributos
proveen o no suficiente información para realizar dicha tarea. En particular, si el
conjunto de datos de entrenamiento contiene dos objetos que tienen valores idénticos
para cada atributo y cada uno de ellos pertenece a una clase diferente, es claramente
imposible diferenciar entre esos dos objetos solo por los atributos dados. En este caso
los atributos serán inadecuados para el conjunto de elementos y por ende para la tarea
de inducir.
28
Las reglas de clasificación serán expresadas como un árbol de decisión. La Tabla
1 muestra un pequeño conjunto de entrenamiento que utiliza los atributos del objeto
Domingo. Se muestra además la clase a la que pertenece cada objeto o instancia. Un
árbol de decisión que correctamente clasifica a cada objeto del conjunto se muestra en la
Figura 9.
Nro
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Temperatura
calor
calor
calor
templado
Frío
Frío
Frío
templado
Frío
templado
templado
templado
Calor
templado
Atributos
Humedad
alta
alta
alta
alta
normal
normal
normal
alta
normal
normal
normal
alta
normal
alta
Clase
Viento
No
Si
No
No
No
Si
Si
No
No
No
Si
Si
No
Si
Tiempo
soleado
soleado
nublado
lluvioso
lluvioso
lluvioso
nublado
soleado
soleado
lluvioso
soleado
nublado
nublado
lluvioso
N
N
P
P
P
N
P
N
P
P
P
P
P
N
Tabla 1. Un pequeño conjunto de entrenamiento.
Si los atributos son adecuados, siempre es posible construir un árbol de decisión
que correctamente clasifique a cada objeto del conjunto de datos de entrenamiento, y
generalmente hay más de un árbol correcto. La esencia de la inducción es la de moverse
dentro del conjunto de datos de entrenamiento para construir un árbol de decisión que
no solo clasifique a los objetos del conjunto de datos de entrenamiento sino también
otros objetos de la misma manera. Para poder realizar esto, el árbol debe ser capaz de
capturar relaciones significativas entre los objetos de una clase y los valores de sus
atributos. Teniendo la posibilidad de elegir entre dos árboles de decisión, donde cada
uno clasifique correctamente los elementos de entrenamiento, pareciera correcto decir
que el que se preferiría sería el árbol más simple, ya que es más seguro que dicho árbol
capture la estructura inherente al problema. Se espera que el árbol más simple clasifique
correctamente a más objetos fuera del conjunto de datos de entrenamiento, mientras que
29
del árbol más grande puede esperarse que sea más una explicación de dicho conjunto de
datos de entrenamiento.
Figura 9. Un árbol de decisión simple.
2.3.5. Tamaño correcto del árbol de decisión. Poda
Una de las mayores dificultades de inducir una estructura recursivamente es
saber cuando parar.
Muchas técnicas se han sugerido para obtener el tamaño correcto de un árbol de
decisión. La más popular de estas técnicas es la llamada Poda.
La poda fue propuesta en [Breiman, 1984]. El procedimiento que se sugirió fue
el siguiente: construir el árbol completo y luego eliminar aquellos subárboles que no
contribuyen significativamente a la generalización.
30
La poda de un árbol de decisión se realiza reemplazando un subárbol entero por
un nodo hoja. El reemplazo se lleva a cabo si una regla de decisión establece que el
error esperado en el subárbol es mayor que en la hoja. Por ejemplo, si se obtiene el árbol
de decisión de la Figura 10 con un caso de entrenamiento Rojo Éxito y dos elementos de
entrenamiento Azul Fracaso, y luego en el conjunto de elementos de test encontramos
tres elementos Rojo Fracaso y uno Azul Éxito, podemos considerar reemplazar este
subárbol por un simple nodo Fracaso. Luego del reemplazo tendremos solo dos errores
en lugar de cuatro.
Figura 10. Ejemplo de poda
2.3.6. ID3
Una aproximación a la tarea de inducción podría ser la de generar todos los
posibles árboles de decisión que clasifiquen correctamente al conjunto de datos de
entrenamiento y seleccionar luego el más de simple de ellos. El número de esos árboles
es finito pero muy grande, es por eso que esta aproximación puede ser factible solo para
tareas pequeñas. El algoritmo ID3 fue diseñado justamente para espectros opuestos, o
sea donde el conjunto de entrenamiento contiene una gran cantidad de elementos con un
gran numero de atributos, pero donde un buen y razonable árbol de decisión es
requerido sin mucho esfuerzo computacional. Se ha demostrado que el algoritmo
construye árboles de decisión simples, pero la aproximación que utiliza no garantiza que
el árbol que construye sea el más óptimo.
La estructura básica de ID3 es iterativa. Un subconjunto del conjunto de
entrenamiento llamado ventana (window) es elegido al azar y se construye un árbol de
31
decisión a partir de esa ventana; este árbol de decisión clasifica correctamente a los
elementos de esta ventana. Todos los demás objetos del conjunto de datos de
entrenamiento son luego clasificados utilizando este árbol. Si el árbol correctamente
clasifica a esos objetos, entonces el proceso termina ya que el árbol es correcto para el
conjunto entero de datos de entrenamiento. Caso contrario, una selección de los objetos
incorrectamente clasificados es sumada a la ventana y el proceso continua.
Lo esencial del problema es como desarrollar un árbol de decisión a partir de una
colección de C objetos arbitrarios. Si C es vacío o contiene solo objetos de una clase, el
árbol de decisión más simple es solo una hoja etiquetada con dicha clase. De otro modo,
digamos que T sea cualquier test sobre un objeto con posibles salidas O1 , O2 ,..., Ow .
Cada objeto en C dará alguna de estas salidas para el test T, por lo que T produce una
partición {C1 , C 2 ,..., C w } de C con C i conteniendo aquellos objetos que tengan la salida
Oi . Esto se representa gráficamente por el árbol de la Figura 11. Si cada subconjunto
C i en esta figura pudiera ser reemplazado por un árbol de decisión para C i , el resultado
seria un árbol de decisión para todo C. Es más, mientras dos o más C i sean no vacíos,
cada C i es más pequeño que C. En el peor de los casos, esta estrategia de divide y
conquistarás dará como resultado subconjuntos de un solo objeto que satisface el
requerimiento de una sola clase para la hoja. Teniendo en cuenta que un test T que de
una partición no trivial de cualquier conjunto de objetos siempre se puede encontrar,
este procedimiento siempre producirá un árbol de decisión que correctamente clasifique
a cada objeto de C.
La elección del test T es crucial si lo que se quiere es que el árbol de decisión sea
simple. Por el momento, el test estará limitado a ramificarse en los valores de un
atributo, por lo que elegir el test se convierte en seleccionar un atributo para la raíz del
árbol. ID3 adopto un método que depende de dos asunciones. Si C contiene p objetos de
la clase P y n objetos de la clase N, las asunciones son:
1) Cualquier árbol de decisión correcto para C va a clasificar objetos en la
misma proporción que su representación en C. Un objeto arbitrario será
32
determinado a pertenecer a la clase P con probabilidad p/(p+n) y a la clase N
con probabilidad n/(p+n).
2) Cuando un árbol de decisión es utilizado para clasificar a un objeto, este
retorna una clase. Un árbol de decisión puede entonces ser considerado como
una fuente del mensaje P o N, con la esperada información necesaria para
generar este mensaje, dado por
l (n, p ) = −
p
p
n
n
log 2
−
log 2
p+n
p+n p+n
p+n
Figura 11. Un árbol estructurado de los objetos en C
Si el atributo A con valores { A1 , A2 ,..., Av } es utilizado para la raíz del árbol de
decisión, particionará a C en {C1 , C 2 ,..., C v } donde C i contiene aquellos objetos en C
que tienen el valor Ai para el atributo A. C i contiene pi objetos de la clase P y ni
objetos de la clase N. La información requerida esperada para el subárbol para C i es
l ( p i , ni ) . La información requerida esperada para el árbol can A como raíz es la
obtenida como el promedio de pesos
33
v
E ( A) = ∑
l =1
p i + ni
l ( p i , ni )
p+n
donde el peso para la i-esima ramificación es la proporción de objetos en C que
pertenecen a C i . La ganancia de información obtenida por haber ramificado en A es
gain(A )=l(p,n) – E(A)
Una buena regla será la de elegir aquel atributo para ramificar que tenga la
mayor ganancia de información. Debido a que l(n,p) es constante para todos los
atributos, maximizar la ganancia equivale a minimizar E(A). El algoritmo ID3 examina
todos los atributos candidatos y elige A para maximizar la ganancia gain(A), desarrolla
el árbol y luego utiliza el mismo proceso en forma recursiva hasta formar el árbol de
decisión para los subconjuntos restantes C1 , C 2 , …, C v .
Para ilustrar la idea, digamos que C es el conjunto de objetos en la Tabla 1. De
los 14 objetos, 9 pertenecen a la clase P y 5 a la clase N, por lo que la información
requerida para la clasificación es
l ( n, p ) = −
9
9
5
5
log 2 ( ) − log 2 ( ) = 0.940bits
14
14 14
14
Ahora consideremos al atributo Tiempo con sus valores [soleado, nublado,
lluvioso]. Cinco de los catorce objetos de C tienen su primer valor (soleado), dos de
ellos de la clase P y tres de ellos de la clase N, entonces
p1 = 2
n1 = 3 l ( p1 , n1 ) = 0.971
y en forma similar
34
p2 = 4
n2 = 0
l ( p 2 , n2 ) = 0
p3 = 3
n3 = 2
l ( p 3 , n3 ) = 0.971
La información esperada requerida después de testear este atributo es
E (Tiempo ) =
5
4
5
l ( p1 , n1 ) + l ( p 2 , n2 ) + l ( p 3 , n3 ) = 0.694bits
14
14
14
La ganancia de este atributo es entonces
gain(Tiempo)=0.940 – E(Tiempo) = 0.246 bits
Análisis similares dan
gain(Temperatura) = 0.029 bits
gain(Humedad) = 0.151 bits
gain(Viento) = 0.048 bits
ID3 puede concebirse como un proceso de búsqueda en un espacio de hipótesis,
para encontrar aquella hipótesis que se ajusta mejor a los datos de entrenamiento. El
espacio de hipótesis explorado por ID3 es el espacio de todos los árboles de decisión
posibles. El algoritmo lleva a cabo una búsqueda de lo simple a lo complejo,
comenzando por el árbol vacío, para considerar cada vez hipótesis más complejas. La
medida ganancia de información guía esta búsqueda de ascenso de colina (hillclimbing).
Considerando ID3 en términos de su espacio y estrategias de búsqueda, es
posible analizar sus capacidades y limitaciones:
•
El espacio de hipótesis de ID3 es completo con respecto a las funciones de
valores discretos que pueden definirse a partir de los atributos considerados.
De manera que no existe el riesgo que la función objetivo no se encuentre en
el espacio de hipótesis.
35
•
ID3 mantiene solo una hipótesis mientras explora el espacio de hipótesis
posibles. Esto contrasta, por ejemplo, con el algoritmo eliminación de
candidatos, que mantiene el conjunto de todas las hipótesis consistentes con
el conjunto de entrenamiento. Es por ello que ID3 es incapaz de determinar
cuantos árboles de decisión diferentes son consistentes con los datos.
•
El algoritmo básico ID3 no ejecuta vuelta atrás (backtracking) en su
búsqueda. Una vez que el algoritmo selecciona un atributo, nunca
reconsidera a esta elección. Por lo tanto, es susceptible a los mismos riesgos
que los algoritmos estilo ascenso de colina, por ejemplo, caer máximos o
mínimos locales. La vuelta atrás puede implementarse con alguna técnica de
poda.
•
ID3 utiliza todos los ejemplos de entrenamiento en cada paso de su búsqueda
guiada por el estadístico ganancia de información. Esto contrasta con los
métodos que usan los ejemplos incrementalmente, por ejemplo encuentra-S
o eliminación de candidatos. Una ventaja de usar propiedades estadísticas de
todos los ejemplos es que la búsqueda es menos sensible al ruido en los
datos.
Algunas consideraciones sobre la aplicación práctica del algoritmo básico de ID3,
incluyen mecanismos para:
•
determinar que tanto debe crecer el árbol en profundidad
•
procesar atributos con valores continuos;
•
procesar ejemplos de entrenamiento con valores faltantes;
•
introducir costos diferentes asociados a los atributos; así como para
determinar una buena métrica de selección de los atributos y mejorar la
eficiencia computacional del algoritmo.
36
Muchos de estos aspectos han sido incorporados en el sistema C4.5 [Quinlan,
1993].
El algoritmo básico de ID3 crece cada rama del árbol en profundidad hasta que
logra clasificar perfectamente los ejemplos de entrenamiento. Esta estrategia puede no
ser del todo satisfactoria si los datos de entrenamiento presentan ruido, o cuando el
conjunto de entrenamiento es demasiado pequeño, como para ofrecer un muestreo
significativo del concepto objetivo. En estos casos, ID3 puede producir árboles que se
sobre ajustan a los datos de entrenamiento.
Formalmente definimos el sobre ajuste como:
“Dado un espacio de hipótesis H, se dice que una hipótesis h ∈ H está sobre
ajustada a los ejemplos de entrenamiento, si existe una hipótesis alternativa
h'∈ H , tal que h’ tiene un error de clasificación más pequeño que h sobre la
distribución completa de los ejemplares del problema”.
Es común observar que a medida que el tamaño del árbol crece, en término de
número de nodos, su precisión sobre el conjunto de entrenamiento mejora.
¿Como es esto posible que un árbol h que tiene mayor precisión que h’ sobre el
conjunto de entrenamiento, luego tenga un desempeño menor sobre el conjunto de
prueba?
Una situación en la que esto ocurre es cuando el conjunto de entrenamiento
contiene ruido, por ejemplo, elementos mal clasificados. Considérese agregar el
siguiente ejemplo mal clasificado (clasificado como clase = N) al conjunto de
entrenamiento de la Tabla 1:
Tiempo = soleado, temperatura = calor, Humedad = Normal, Viento = Si
Al ejecutar ID3 sobre el nuevo conjunto de entrenamiento, este construirá un
árbol más complejo. En particular, el ejemplo con ruido seria filtrado junto con los
ejemplos Nro 9 y Nro 11 de la Tabla 1 (tiempo = Soleado y Humedad = normal), que
son ejemplos positivos.
37
Dado que el nuevo ejemplo es negativo, ID3 buscaría refinar el árbol a partir del
nodo humedad, agregando un atributo más al árbol. Este nuevo árbol h’ tiene mayor
precisión sobre los ejemplos de entrenamiento que h, puesto que se ha ajustado al
ejemplo con ruido. Pero h tendría mejor desempeño al clasificar nuevos ejemplares,
tomados de una misma distribución que los ejemplos de entrenamiento.
Existe la posibilidad de sobre ajuste, aún cuando el conjunto de entrenamiento
esté libre de ruido, por ejemplo, si el conjunto de entrenamiento tiene pocos elementos.
En conjuntos de entrenamiento pequeños es fácil encontrar regularidades accidentales
en donde un atributo puede particionar muy bien los ejemplos dados, aunque no esté
relacionado con el concepto objetivo.
Puesto que el sobre ajuste puede reducir la precisión de un árbol inducido por
ID3 entre un 10 a 25 %, diferentes enfoques han sido propuestos para evitar este
fenómeno. Los enfoques pueden agruparse en dos clases:
•
Enfoques que detienen el crecimiento del árbol anticipadamente, antes de
que alcance un punto donde clasifique perfectamente los ejemplos de
entrenamiento.
•
Enfoques en donde se deja crecer el árbol para después podarlo.
Aunque el primer enfoque parezca más directo, la poda posterior del árbol ha
demostrado tener más éxito en la práctica. Esto se debe a la dificultad de estimar en que
momento debe detenerse el crecimiento del árbol. Independientemente del enfoque
usado, una pregunta interesante es: ¿Cual es el tamaño correcto de un árbol? Algunos
enfoques para responder a esta pregunta incluyen:
•
Usar un conjunto de ejemplos, diferentes de los usados en el entrenamiento,
para evaluar la utilidad de eliminar nodos del árbol.
38
•
Usar los ejemplos disponibles para el entrenamiento, pero aplicando una
prueba para estimar cuando agregar o eliminar un nodo, podría producir una
mejora al clasificar nuevos ejemplares
•
Usar explícitamente una medida de complejidad para codificar los ejemplos
de entrenamiento y el árbol de decisión, deteniendo el crecimiento cuando el
tamaño codificado sea minimizado. Por ejemplo, el principio de descripción
mínima (MDL).
¿Cómo podemos usar un conjunto de ejemplos de validación para prevenir el
sobre ajuste?
Un enfoque llamado reduced-error pruning [Quinlan, 1987], consiste en
considerar cada nodo del árbol como candidato a ser podado. La poda consiste en
eliminar todo el subárbol que tiene como raíz el nodo en cuestión, convirtiéndolo así en
una hoja, cuya clase corresponde a valor más común de los ejemplares asociados a ese
nodo. Un nodo solo es eliminado si el árbol podado que resulta de ello, no presenta un
desempeño peor que el árbol original sobre el conjunto de validación. El efecto de esto,
es que los nodos que se han colocado en el árbol por coincidencias fortuitas en los datos
del entrenamiento, generalmente son eliminados debido a que las coincidencias suelen
no estar presentes en el conjunto de validación.
Este método es únicamente efectivo si contamos con suficientes ejemplos, de tal
forma que el conjunto de entrenamiento y el conjunto de validación sean significativos
estadísticamente. De otra forma, tomar ejemplos para el conjunto de validación reduce
aún más el tamaño del conjunto de datos entrenamiento, aumentando así la posibilidad
de sobre ajuste.
En la práctica, un método exitoso para encontrar el árbol de mayor precisión se
conoce como rule post-prunning [Quinlan, 1993] y está incorporado en el sistema C4.5
de Ross Quinlan. El procedimiento es el siguiente:
39
•
Inducir el árbol de decisión permitiendo sobre ajuste, por ejemplo, con
nuestro algoritmo básico ID3.
•
Convertir el árbol aprendido en un conjunto de reglas equivalente, esto es,
una conjunción por cada rama del árbol que va de la raíz a una hoja.
•
Podar (generalizar) cada regla, eliminando las precondiciones que resulten en
una mejora de la precisión estimada.
•
Ordenar las reglas por su precisión estimada, y aplicarlas en ese orden al
clasificar nuevos ejemplares.
Cabe mencionar que el método aplicado por C4.5 no es estadísticamente valido,
aunque ha demostrado ser una heurística útil. En la sesión de evaluación de hipótesis,
estudiamos técnicas estadísticamente robustas para estimar medias e intervalos de
confianza. Lo relevante aquíı es que la conversión del árbol en reglas ayuda a distinguir
los diferentes contextos en los que un atributo participa en la clasificación, es decir,
reglas diferentes; elimina la diferencia entre nodos ubicados cerca de la raíz y aquellos
ubicados cerca de las hojas; y aumenta la facilidad de comprensión por parte del
usuario.
2.3.7. Incorporando valores continuos
En el algoritmo básico de ID3 tanto el concepto objetivo, como los atributos
usados para describir los ejemplares, deben tener valores discretos. La segunda
restricción puede ser eliminada fácilmente, permitiendo el uso de atributos con valores
continuos. Esto se logra definiendo dinámicamente nuevos atributos discretos que
particionan los atributos de valores continuos, en intervalos discretos. Para un atributo
continuo A, el algoritmo puede crear dinámicamente un atributo discreto Ac que es
verdadero si A > c y falso en cualquier otro caso. La única consideración es como
seleccionar el mejor valor para el umbral c. Supongan que el atributo temperatura toma
valores discretos y que su relación con el concepto objetivo es la siguiente:
40
Temperatura 40
48
60
72
80
90
No
No
Si
Si
Si
No
Clase
¿Qué valor booleano basado en un umbral debemos definir para el atributo
temperatura?
Obviamente, necesitamos un umbral c, tal que este produzca la mayor ganancia
de información posible. Es posible generar candidatos a umbral, ordenando los ejemplos
de acuerdo a su valor en el atributo temperatura e identificando ejemplos adyacentes
que difieren en el valor de su atributo objetivo. Se puede demostrar que los umbrales c
que maximiza la ganancia de información, se encuentran en estos sitios.
Para el ejemplo presentado, dos umbrales pueden localizarse en los puntos (48 +
60)/2 y (80 + 90/2). La ganancia de información puede entonces calcularse para los
atributos temperatura>54 y temperatura>85. El atributo con mayor ganancia de
información, en este caso el primero, puede ser usado entonces para competir con otros
atributos en la construcción del árbol de decisión. Por supuesto, es posible también
mantener ambos atributos dinámicamente creados, usando múltiples intervalos.
2.4. Redes Bayesianas y ponderación de reglas
2.4.1. Teorema de Bayes
El Teorema de Bayes, dentro de la teoría probabilística, proporciona la
distribución de probabilidad condicional de un evento "A" dado otro evento "B"
(probabilidad posteriori), en función de la distribución de probabilidad condicional del
evento "B" dado "A" y de la distribución de probabilidad marginal del evento "A"
(probabilidad simple o apriori).
41
La probabilidad a priori es la probabilidad de una variable en ausencia de
evidencia. La probabilidad a posteriori es la probabilidad de una variable condicionada
a la existencia de una determinada evidencia; la probabilidad a posteriori de X cuando se
dispone de la evidencia e se calcula como P(X /e).
Partiendo de las fórmulas de probabilidad condicional, que dice que dadas dos
variables X e Y, la probabilidad de que ocurra A dado que ocurrió el evento B es la
probabilidad condicional de A dado B y se denota como P ( A / B ) .
P( A / B) =
P( A ∩ B)
P( B)
Análogamente, si se intercambia el orden de las variables:
P ( B / A) =
P( A ∩ B)
P ( A)
A partir de las dos fórmulas anteriores se obtiene:
P ( A / B) =
P ( A) P ( B / A)
P( B)
a esta expresión se conoce como el Teorema de Bayes.
Para eventos estadísticamente dependientes se procederá a enunciar el Teorema
de Bayes.
Sean A1 , A2 , …, An eventos mutuamente excluyentes tales que, cualquier evento
“B” en el espacio muestral pertenece a uno y sólo a uno de estos eventos. Entonces la
probabilidad de que ocurra cualquier evento Ak dado que ha ocurrido el evento “B” se
calculará por la siguiente fórmula:
42
P ( Ak / B ) =
P ( Ak ∩ B )
P(B)
Por lo tanto, sustituyendo la fórmula de probabilidad condicional, se obtiene la
fórmula general para el Teorema de Bayes:
P( Ak / B) =
P( Ak ) P( B / Ak )
P ( A1 ) P( B / A1 ) + P( A2 ) P( B / A2 ) + ... + P ( An ) P( B / An )
Donde:
El numerador es la probabilidad conjunta:
P( A ∩ B) = P ( B ) P ( A / B )
El denominador es la probabilidad marginal de que ocurra el evento “B”
P ( B ) = P ( A1 ) P ( B / A1 ) + P ( A2 ) P ( B / A2 ) + ... + P ( An ) P ( B / An )
Como "A" y "B" son eventos estadísticamente dependientes, el Teorema de
Bayes se puede representar también utilizando el diagrama de árbol.
Probabilidad conjunta
Dado un conjunto de variables {X, Y, …, Z}, la probabilidad conjunta especifica
la probabilidad de cada combinación posible de estados de cada variable
P( xi , y j ,..., zk )∀i, j ,..., k de manera que se cumple que:
∑ P( x , y ,..., z ) = 1
i
j
k
i , i ,..., k
43
2.4.2. Introducción a redes Bayesianas
Las redes Bayesianas o probabilísticas se fundamentan en la teoría de la
probabilidad y combinan la potencia del teorema de Bayes con la expresividad
semántica de los grafos dirigidos; las mismas permiten representar un modelo causal por
medio de una representación gráfica de las independencias / dependencias entre las
variables que forman parte del dominio de aplicación [Pearl, 1988].
Una red Bayesiana es un modelo gráfico que permite representar las relaciones
de dependencia entre un conjunto de variables y busca relaciones probabilísticas entre
las distintas variables del sistema. Los componentes básicos que componen una red
bayesiana incluyen:
•
Un conjunto de nodos { X i } que representan cada una de las variables del
modelo. Cada una de ellas tiene un conjunto exhaustivo de estados
{ xi } mutuamente excluyentes.
•
Un conjunto de enlaces o arcos ( X i , X j ) entre aquellos nodos que tienen una
relación causal. De esta manera todas las relaciones están explícitamente
representadas en el grafo.
•
Una tabla de probabilidad condicional asociada a cada nodo X i indicando la
probabilidad de sus estados para cada combinación de los estados de sus
padres. Si un nodo no tiene padres se indican sus probabilidades a priori.
La estructura de una red bayesiana se puede determinar de la siguiente manera:
•
Se asigna un vértice o nodo a cada variable ( X i ) y se indica de qué otros
vértices es una causa directa; a ese conjunto de vértices “causa del nodo X i ” se
lo denota como el conjunto π x i y se lo llamará “padres de X i ”.
•
Se une cada padre con sus hijos con flechas que parten de los padres y llegan a
los hijos.
44
•
A cada variable X i se le asigna una matriz P ( xi / π xi ) que estima la probabilidad
condicional de un evento X i = xi dada una combinación de valores de los π x i .
Una vez que se ha diseñado la estructura de la red y se han especificado todas la
s tablas de probabilidad condicional se está en condiciones de conocer la probabilidad
de una determinada variable dependiendo del estado de cualquier combinación del resto
de variables de la red; para ello se debe calcular la probabilidad a posteriori de cada
variable condicionada a la evidencia; estas probabilidades a posteriori se podrán obtener
de
forma
inmediata
a
partir
de
la
probabilidad
conjunta
de
todas
las
variables P ( x1 , x2 ,..., xi ) .
Cada nodo dentro del grafo dirigido de la red Bayesiana representa una variable
aleatoria que tiene asociada una función de probabilidad condicional. La estructura de la
red Bayesiana provee información sobre las relaciones de dependencia e independencia
condicional existentes entre las variables. Estas relaciones simplifican la representación
de la función de probabilidad conjunta como el producto de las funciones de
probabilidad condicional de cada variable.
Una red Bayesiana para un conjunto de variables aleatorias X = ( X 1 ,..., X n ) es
un par B = (G, P (Θ) ) , donde G es un gráfico acíclico dirigido, cuyos nodos se
encuentran en correspondencia uno a uno con las variables en X, y P es un conjunto de
funciones de probabilidad local definidas por un conjunto de parámetros Θ. Se usa Pa i
y pa i para denotar, respectivamente, a los padres y las configuraciones de los padres
del nodo X i en G. La función de probabilidad conjunta representada por la estructura G
está dada por
n
p ( X ) = p( X 1 ,..., X n ) = ∏ p ( X i / Pai )
i =1
Un arco en una red Bayesiana es la unión entre dos nodos y representa la
dependencia entre dos variables del modelo. Un arco queda definido por un par
45
ordenado de nodos (X, Y). Un Padre Pa i (nodo X) es un padre del nodo Y, si existe un
arco (X, Y) entre los dos nodos. Un nodo hijo Y es un hijo del nodo X, si existe un arco
(X, Y) entre los dos nodos.
Las funciones de probabilidad local P son las funciones de probabilidad
correspondientes a los términos de la ecuación anterior. Un ejemplo de red Bayesiana se
presenta en la Figura 12. La función de probabilidad conjunta representada en esta red
es p ( X 1 ,..., X 5 ) = p ( X 1/ X 2 , X 5 ) p ( X 2 ) p( X 3 / X 5 ) p ( X 4 / X 3 , X 5 ) p ( X 5 )
Figura 12. Red bayesiana.
2.4.3. Estimación de la estructura de la red Bayesiana
Existen dos metodologías para el problema de estimación de la estructura de una
red Bayesiana. La primera, llamada búsqueda y score, utiliza un criterio para medir que
tanto la estructura de la red estima el conocimiento a priori y un método de búsqueda
para encontrar el modelo que mejor estime el conjunto de datos. La segunda
metodología, llamada análisis de dependencia, mide el grado de relación de estas
dependencias usando alguna prueba estadística o la cantidad de información mutua.
Generalmente, la primera metodología tiene menor tiempo de complejidad pero puede
46
no encontrar la mejor solución debido a su naturaleza heurística. La segunda
metodología de algoritmos es generalmente asintóticamente correcta cuando la función
de probabilidad cumple ciertas condiciones. A continuación detallaremos la primera de
las metodologías.
Selección del modelo por búsqueda y store
Esta sección presenta algunos ejemplos de las medidas de calidad usadas para
calcular el score de una estructura de red, y los algoritmos de búsqueda sobre el espacio
posible de estructuras de red.
A) Medidas de calidad
Medidas de calidad Bayesianas. Estas medidas están relacionadas con la estadística
Bayesiana. La idea básica es asignar a cada red un valor en función de su probabilidad
posterior p(B/D). Un criterio frecuente es usar el logaritmo de la función de
probabilidad posterior
log p ( B / D ) = log p ( B ) + log p ( D / B )
El logaritmo es usado por conveniencia numérica. Este criterio tiene dos componentes:
el logaritmo de la a priori y el log de la verosimilitud marginal.
Medidas de mínima longitud de codificación. El score esta basado en el principio LDM
[Rissanen, J. , 1989] y la aplicación a las redes Bayesianas fue desarrollado por
Bouckaert [Bouckaert, 1994], Lam y Bacchus [Lam, 1994] y Suzuki [Suzuki, 1996].
Estos autores argumentan que usando solo la función de probabilidad posterior resulta
en un criterio que refiere redes con gráficos completos, por lo que se debe agregar un
factor que penalize el tamaño de la red.
q ( B, D ) =
log N
|| B || − LL ( B / D)
2
47
Donde ||B|| representa el tamaño de la red y LL el logaritmo de la función de
verosimilitud.
Medidas de información teórica. Otra forma de medir la calidad de una red es usando
las medidas de información. Estas medidas pueden considerarse como una
generalización de la medida LDM. Las más conocidas son
Criterio de información por máxima verosimilitud. La medida es el logaritmo de
la verosimilitud de una red Bayesiana, dado un conjunto de datos de
entrenamiento. A diferencia de otras medidas de información teórica, esta no
contiene penalización debido al tamaño de la red.
q (B,D) = LL(B/D)
Criterio de información de Akaike. [1] Esta medida no es consistente ya que el
mejor modelo no se encuentra entre las que reciben lo mayores scores [Schwarz,
1978].
q (B,D)=LL(B/D)−||B||
Criterio de información Bayesiana. También conocido como criterio de
información de Schwarz [Schwarz, 1978] es fácil de usar y no requiere la
evaluación de la función de probabilidad a priori. Consecuentemente, se trata de
un criterio práctico usado en circunstancias apropiadas. Cuando se aplica a redes
con distribución multinomial para las variables este criterio es parecido al
criterio LDM diferenciándose por un signo negativo.
q ( B, D) = − LL( B / D) −
log N
|| B ||
2
2.4.4. Clasificadores basados en redes Bayesianas
48
Supongamos que X 1 ,..., X n son variables aleatorias que permiten predecir el
valor de una variable C llamada clase. De acuerdo al teorema de Bayes, la probabilidad
de que una observación pertenezca a la clase c es
p (C = c / x1 ,..., x n ) =
P(C = c) p ( x1 ,..., x n / C = c)
p ( x1 ,..., x n )
El proceso de clasificación se realiza asignando la observación en aquella clase
que tenga la mayor probabilidad usando la ecuación anterior. Las redes Bayesianas
pueden ayudarnos a simplificar la representación de la función de probabilidad conjunta
p ( X 1 ,..., X n / C ) considerando las relaciones de dependencia que existen entre las
variables.
Clasificador Naive Bayes
El clasificador Naive Bayes y sus variantes se encuentran entre los algoritmos
más conocidos para construir clasificadores de documentos de texto [Kim S., Seo H. y
Rim H., 2003], filtración de correo electrónico [Sahami, M., Dumais, S., Heckerman, D.
y Horvitz E., 1998], clasificación de galaxias [Bazell D. y Aha D., 2001] y
reconocimiento de emociones [Sebe N., Lew M., Cohen I., Gary A. y Huang T., 2002].
A pesar de su simplicidad es comparable con clasificadores sofisticados como las redes
neuronales y los árboles de decisión, ya que posee alta precisión y velocidad cuando es
aplicada a conjuntos grandes de datos.
El clasificador Naive Bayes fue popularizado por Duda y Hart [Duda, R. O. & P.
E. Hart., 1973] gracias a su simplicidad, eficiencia y bajo error de clasificación. Este
clasificador supone que todas las variables son condicionalmente independientes dado el
valor de la clase.
Dos variables X e Y son independientes si la ocurrencia de una no tiene que ver
con la ocurrencia de la otra. Por definición se cumple que Y es independiente de X si y
sólo si:
49
P ( y j , xi ) = P ( y j ) P ( xi )∀i, j
Esto implica que:
P ( y j / xi ) = P ( y j )∀i, j
P ( xi / y j ) = P ( xi )∀i, j
Este supuesto simplifica la representación de p ( X 1 ,..., X n / C ) así como su
estimación a partir de la muestra de entrenamiento.
La estructura de este clasificador puede representarse usando una red Bayesiana
(Figura 13) en la que existe un nodo para la variable de clase C, que es padre de todas
las variables y en la que no existen arcos entre las variables.
El funcionamiento de este clasificador es algo sorprendente, ya que el supuesto
de independencia no es realista. Considere un clasificador para la evaluación del riego
en las solicitudes de crédito: es contra intuitivo ignorar las correlaciones entre edad,
nivel de educación e ingreso. El ejemplo anterior lleva a la necesidad construir un
clasificador que tome en consideración las relaciones de dependencia que existen en el
conjunto de variables.
Figura 13. La estructura de una red Naive Bayes.
50
Extensiones del clasificador Naive Bayes
En esta sección se examinan dos metodologías que mantienen la estructura
básica del clasificador Naive Bayes. Sin embargo para mejorar el comportamiento del
clasificador, se propone aumentar la estructura de Naive Bayes con arcos entre las
variables, cuando sean necesarios, desechando así el supuesto de independencia. Estas
estructuras son llamadas redes aumentadas Naive Bayes y estos arcos, arcos aumentados
[Friedman, N., Geiger, D. y Goldszmidt, M., 1997].
En una estructura aumentada, un arco desde X i hacia X j implica que la
influencia de X i en la asignación de la variable de clase C también depende del valor de
X j . Adicionar el mejor conjunto de arcos aumentados es un problema no manejable, ya
que equivale a encontrar la mejor red Bayesiana entre aquellas en las que C es una raíz.
Así, aunque el comportamiento del clasificador Naive Bayes pudiera mejorarse, el
esfuerzo computacional requerido puede no valer la pena. Sin embargo, imponiendo
restricciones aceptables es posible encontrar el conjunto óptimo de arcos aumentados en
un tiempo polinomial.
El propósito esta en encontrar una red Naive Bayes de árbol aumentado (TAN)
en la que la variable de clase no tenga padres y las variables restantes tengan como
padres a la variable de clase y a lo más alguna otra variable. Así, cada variable puede
tener un arco aumentado dirigido hacia él. La red de la Figura 14, es de hecho un
modelo TAN. El procedimiento para obtener estos arcos esta basado en el algoritmo de
Chow y Lui [Chow, C. and Lui, C., 1968] para estimar las relaciones de dependencia
entre un conjunto de variables usando una estructura de árbol.
Un gráfico acíclico dirigido sobre X 1 ,..., X n es una árbol si Pai contiene
exactamente un padre para todo X i excepto por una variable (esta variable es conocida
como raíz).
51
Figura 14. La estructura de una red TAN
Una red con estructura de árbol puede describirse identificando los padres de
cada variable. Una función π = {1,..., n
} a {0,..., n } se dice que define un árbol sobre
X 1 ,..., X n si existe exactamente un i tal que π (i) = 0 (llamada la raíz del árbol) y no
existe alguna secuencia i1 ,..., ik tal que π (i j ) = i j +1 para i≤ j<k y π (ik ) = i1 (es decir no
existen ciclos). Tal función define una red de árbol cuando Pai = { X π (i ) } si π (i ) > 0 y
Pai = θ si π (i ) = 0 .
Clasificador Naive Bayes de árbol aumentado (TAN)
El algoritmo de Chow y Lui [Chow, C. y Lui, C., 1968], a partir de una
colección D de N observaciones de X 1 ,..., X n , construye un árbol
Bt
que
maximiza LL ( Bt / D ) . Este resultado puede ahora adaptarse para encontrar la estructura
TAN de máxima verosimilitud. Sea X 1 ,..., X n un conjunto de variables y C la variable
de clase. Diremos que B es un modelo TAN si Pac = θ y existe una función π que
define un árbol sobre X 1 ,..., X n tal que Pa x i = {C , X π (i ) } si π (i ) > 0 , y Pa xi = {C} si
π (i ) = 0 . El problema de optimización consiste en encontrar una función π que defina
52
una estructura de árbol sobre X 1 ,..., X n tal que el logaritmo de la verosimilitud sea
maximizada.
Tal como se mostrara más adelante, el procedimiento que se denomina algoritmo
TAN resuelve este problema de optimización. Este procedimiento sigue el enfoque
general de Chow y Lui [Chow, C. y Lui, C., 1968], excepto que en lugar de usar la
información mutua entre dos variables, usa la información condicional mutua dada la
variable de clase
I ( X i ; X j / C) = ∑
xi
p ( xi , x j / c)
∑ ∑ p( x , x , c) log( p( x / c) p( x
i
xj
j
c
i
j
/ c)
)
Informalmente hablando, esta función mide la cantidad de información que X j
proporciona acerca de X i cuando el valor de C es conocido. El algoritmo TAN se
muestra a continuación.
Algoritmo TAN
1. Calcular I ( X i ; X j / C ) con i< j donde i, j = 1, 2,…, n. Asignar este valor como
peso al arco que conecta las variables X i y X j .
2. Ordenar I ( X i ; X j / C ) de mayor a menor.
3. Considerar un árbol inicial en el que no existen arcos entre las variables.
4. Asignar los dos arcos de mayor peso al árbol anterior.
5. Examinar el siguiente arco de mayor peso, y añadirla al árbol a no ser que forme
un ciclo, en cuyo caso se descarta y se examina el siguiente arco con mayor
peso.
6. Repetir 5 hasta seleccionar n −1 arcos.
7. Transformar el árbol no dirigido resultante en uno dirigido, escogiendo una
variable como raíz, para a continuación direccionar el resto de arcos.
8. Construir un modelo TAN añadiendo un nodo etiquetado como C y
posteriormente un arco desde C a cada variable predoctora X i .
53
54
3. Descripción del problema
En este capítulo se presenta el problema que mediante esta tesis se pretende
resolver. Primero se describen generalidades respecto a los ambientes de minería de
datos actualmente existentes (Sección 3.1), para luego pasar a describir el problema a
resolver (Sección 3.2).
3.1. Generalidades
Existen numerosos mecanismos utilizados en forma exitosa y repetida tanto para
predecir una población de individuos, clasificar a esos individuos o para extraer reglas
inducidas inherentes a una población. Las redes neuronales son un ejemplo de sistemas
inteligentes artificiales que, dependiendo de su arquitectura, se adaptan muy bien a la
predicción o la clasificación de elementos de un dominio; los árboles de decisión tales
como ID3 [Quinlan, 1986] o C4.5 [Quinlan, 1993], por otro lado, son mecanismos que
se utilizan mucho en la extracción de reglas.
3.2. El problema a resolver
El problema actual es que no existe un ambiente que integre y complemente las
funciones de clasificación de instancias, inducción o selección de reglas de decisión y
ponderación de estas reglas, para lograr una profunda y completa investigación de las
características de las poblaciones que se desean estudiar. Esta falencia hace que cada
vez que se quiera, por ejemplo, extraer las reglas de producción que dan como
consecuencia la clasificación de una población, se necesite primero clasificar a los
individuos de una población en un ambiente de clasificación, para luego ingresar a estos
individuos clasificados en un ambiente diferente, capaz de inducir y extraer las reglas.
Aquí se propone desarrollar una herramienta capaz de integrar las tres funciones.
En la Figura 15 se muestra un posible ambiente de la falencia mencionada. Allí
se observan que son necesarios tres ambientes distintos para poder extraer las reglas
inducidas de clasificación, los cuales se detallan a continuación:
55
1) Ambiente de Clasificación: Recibe como entrada los datos a clasificar. Su
función es la de clasificar a esos datos. La salida da como resultado los datos
clasificados, en formato A.
2) Ambiente de Transformación de Datos: Recibe como entrada datos clasificados
en un formato A. Su función será la de transformar esos datos que están en
formato A al formato B, para que sean entendidos por el ambiente 3.
3)
Ambiente de Selección de Reglas: Recibe como entrada los datos clasificados
en formato B. Su función es la de inducir y seleccionar las reglas que dieron
origen a la clasificación. Su salida son el conjunto de reglas inducidas en
formato B.
Figura 15. Tres posibles ambientes para inducir reglas de clasificación.
56
Se realizó un análisis de diferentes ambientes utilizados en minería de datos y se
pudo concluir lo siguiente:
•
No existe un escenario capaz de integrar y complementar en su
funcionamiento las funciones de:
o Clasificación de instancias
o Selección/inducción de reglas
o Ponderación de reglas
•
No es posible utilizar en un mismo ambiente a cada una de estas funciones
como complemento una de la otra.
57
58
4. Solución propuesta
En este capítulo se presentan los aspectos relativos de la solución propuesta.
Primero se describen las características y el flujo de procesos que conformarán el
ambiente integrado propuesto como solución (Sección 4.1). Luego se da una
introducción al estándar XML (Sección 4.2), utilizado para la representación de los
datos de entrada que serán analizados por el ambiente. Por último se describen y
especifican las características que deben cumplir (dentro del estándar XML) los datos de
entrada que serán analizados (Sección 4.3).
4.1. El ambiente integrado
Lo que se plantea con este trabajo es desarrollar un ambiente integrado que
provea las siguientes funciones:
•
clasificar a una población.
•
inducir las reglas que determinan que un determinado individuo pertenezca a
cierta clase
•
determinar la probabilidad de ocurrencia de una regla (ponderar).
Además esas capacidades, el ambiente va a tener que ser capaz de integrar y
complementar a cada una de ellas, logrando que cada una de esas funciones sea el
complemento de la otra. De esta manera, el ambiente va a permitir realizar lo siguiente:
•
clasificar a una población,
•
una vez clasificada la población, extraer o inducir las reglas que dieron
origen a dicha clasificación,
•
finalmente, una vez inducidas las reglas de producción, ponderar dichas
reglas para obtener la probabilidad de ocurrencia de cada una de las reglas.
Para lograr implementar cada uno de estos funciones, se van a utilizar redes
neuronales denominadas mapas autoorganizados [Kohonen, 1982] para la clasificación,
59
mediante árboles de decisión como lo son los ID3 [Quinlan, 1986] se buscará inducir
las reglas de clasificación, y se van a utilizar mecanismos probabilísticos, como lo son
las redes Bayesianas, para determinar la probabilidad de ocurrencia de una regla.
Para lograr la integración de estas funciones, en la Figura 16 se muestra el flujo
de información que va a existir dentro del ambiente. En dicha figura se observan los
procesos que conforman este flujo.
Figura 16. Flujo de procesos dentro del ambiente.
60
A continuación se detalla cada proceso, y se define en cada uno de ellos cuales
son las entradas al proceso, cuales son las salidas, y el procedimiento o función a
realizar por el proceso.
PROCESO
0. Ingresar población
1. Validar población
2. Seleccionar
atributos a considerar.
PROCEDIMIENTO
El usuario se limita a determinar cual va a ser el archivo que
representa a la población que se va a procesar. Una vez que el
usuario selecciona el archivo, el ambiente automáticamente
intenta buscar dentro del mismo directorio donde se encuentra
este archivo población, el archivo esquema que representa el
modelado de esta población. Para ello busca un archivo con el
mismo nombre que el de la población, pero con extensión xsd
en lugar de xml. Si no encuentra al archivo esquema, entonces
produce un error informando de la no existencia de este
archivo. Si el ambiente encuentra el archivo xsd, entonces se
procesan cada uno de los dos archivos, guardándose en
distintas instancias de objetos los datos característicos de cada
uno de estos archivos. A cada una de estas instancias
llamaremos Población y Modelo respectivamente.
En esta etapa se realiza la validación del dominio o población
que ingresó al ambiente. Para ello lo primero que se hace es
verificar que cada uno de los individuos de la población defina
los atributos especificados en el Modelo, y que los tipos de
datos de estos atributos sean válidos de acuerdo a lo que
especifica este Modelo. Una vez que se comprueba que lo
anterior es correcto, se recorre uno a uno los individuos del
objeto Población, y dentro de cada individuo se evalúa que
cada uno de los atributos que lo caracterizan tenga un valor
valido, de acuerdo a lo que se especifica en Modelo.
En caso de encontrase alguna inconsistencia en los datos de la
población, el sistema informará mediante un mensaje el motivo
por el cual no se pudo realizar la validación.
El usuario selecciona, del total de atributos que caracterizan a
la población, un subconjunto de estos atributos con los cuales
desea que se realice el análisis de la población en estudio. Estos
atributos son los que se considerarán de ahora en más en todo
el proceso, y determinarán a lo que llamaremos Población
valida’. Básicamente esta Población valida’ estará compuesta
de los mismos individuos que la Población válida, solamente
que estos individuos serán determinados por un subconjunto de
atributos, y no necesariamente por el total. Supongamos que los
atributos Edad, Peso y Altura son los atributos que caracterizan
a la población y el usuario elige como atributos a considerar
sólo Edad y Altura. De esta manera, lo que llamamos Población
valida’ serán individuos determinados solamente por estos dos
atributos.
61
PROCESO
3. Seleccionar
algoritmo
3.1. Ponderación de
reglas
3.1.1. Seleccionar
atributo clase
3.2. Inducir reglas
3.2.1. Seleccionar
atributo clase
3.3. Clasificar la
población
3.3.1. Agregar
atributo clase
62
PROCEDIMIENTO
Este es uno de los procesos donde la decisión del usuario es
fundamental para la continuación del flujo y procesos del
ambiente. Aquí el usuario decide que algoritmo va a utilizar
para continuar con el estudio de la población. Los posibles
algoritmos a elegir son los siguientes: Ponderación de reglas,
Inducir reglas o Clasificar población.
Al elegir este algoritmo, el usuario está determinando que el
único proceso que necesita realizarle a la población es la
ponderación de reglas de decisión que dieron origen a la
clasificación de la población. Obviamente al elegir este
algoritmo, se presupone que la población en estudio es una
población clasificada.
Previo a la generación de la red Bayesiana va a ser necesario
que el ambiente genere el árbol de decisión, para poder
determinar cuales son las reglas a inducir. Este punto es
transparente al usuario, pero necesario para poder determinar
las reglas.
En este proceso el usuario deberá seleccionar del subconjunto
de atributos que caracterizan a la población valida’ cual de
ellos es el atributo clase. A partir de esta elección, el sistema
deberá generar una red Bayesiana de clasificación, cuyo
atributo clase u objetivo es precisamente el atributo
seleccionado por el usuario.
Al elegir este algoritmo, la lectura que debemos hacer es que la
población que ha ingresado al ambiente es una población ya
clasificada, por lo que la necesidad del usuario recae en lograr
información sobre aspectos que no tienen que ver con una
clusterización de la población, sino con la de lograr determinar
las reglas de decisión que dieron por origen la clasificación de
esos individuos
Como la población que se ha ingresado al ambiente es ya una
población clasificada, hay que definirle al ambiente cual de
todos los atributos a considerar de la población es el que
determina a que clase pertenece cada individuo. Esto lo
determina el usuario.
Al elegir este algoritmo, lo que está planteando el usuario es
una necesidad de clusterizar primero a la población,
entendiéndose con esto que la población no tiene determinado
ningún atributo que describa a que clase pertenece cada
individuo. Esto significa que será el ambiente el encargado de
realizar esta tarea, y lo hará mediante un algoritmo que no
necesita de ninguna supervisión, por lo que el ambiente asume
la total responsabilidad de la tarea de clusterizar a la población.
Como la necesidad del usuario es de clusterizar a la población,
en este proceso es el sistema el que agrega un nuevo atributo,
denominado CLASE, al conjunto ya existente de atributos
característicos de la población. El valor que tome este nuevo
PROCESO
3.3.2. Clasificar
población
4. Generar árbol de
decisión
5. Seleccionar
Reporte
5.1. Reporte de
Reglas
5.1.1. Generar Reglas
PROCEDIMIENTO
atributo es el que determinará a que clase pertenecerá cada uno
de los individuos, una vez realizada la clasificación.
En este proceso se clusteriza a la población, determinándose el
valor que tomará, para cada uno de los individuos, el atributo
CLASE. La cantidad de clases en la que el ambiente intentará
clasificar a los individuos es un valor que el propio usuario del
ambiente determinará. La forma con la que se implementa este
proceso de clusterización es mediante la utilización redes
neuronales denominadas de aprendizaje competitivo y
cooperativo. Con este tipo de aprendizaje se pretende que
cuando se presente a la red cierta información de entrada, solo
una de las neuronas de salida de la red se active o alcance su
valor de respuesta máximo. Es por eso que las neuronas
compiten para activarse, quedando finalmente una como
neurona ganadora, mientras que el resto quedan anuladas. Los
individuos con características similares son clasificados
formando parte de la misma categoría y por lo tanto deben
activar la misma neurona de salida.
Las instancias del dominio o población con las clases a las que
pertenecen son presentadas al ambiente, quien como
consecuencia de realizar la tarea de inducción, generará un
árbol de decisión.
El usuario simplemente elige que tipo de reporte quiere obtener
del ambiente. Puede optar por el Reporte de Reglas, donde el
ambiente solamente presentará las reglas que dieron origen a la
clasificación, o puede elegir el Reporte de Reglas Ponderadas,
donde el ambiente además de presentar las reglas, también
determinará la probabilidad de ocurrencia para cada una de
esas reglas.
El árbol de decisión es recorrido desde la raíz hasta cada una de
las hojas, y se generarán las reglas de decisión interpretando o
mapeando cada bifurcación del árbol con su respectivo atributo
y valor que la bifurcación tome. Las reglas generadas serán del
estilo
SI
Atributo1 = valor1
Atributo2 = valor2
…
Y
AtributoN = valorN
ENTONCES
Clase = clase1.
5.2. Reporte de
Reglas Ponderadas
5.2.1. Generar red
Bayesiana
clasificadora
Y
Y
Las instancias del dominio o población clasificadas son
presentadas al ambiente. El ambiente utiliza estas instancias
como datos de entrenamiento para generar, mediante un
algoritmo de entrenamiento supervisado, de una red Bayesiana
63
PROCESO
PROCEDIMIENTO
clasificadora. El tipo de algoritmo a utilizar para el
entrenamiento de la red bayesiana es un dato que lo determina
el usuario del ambiente.
5.2.2. Generar reglas
ponderadas
El árbol de decisión generado a partir de las instancias
clasificadas es recorrido por el procesador de reglas, el cual
generará las reglas de decisión interpretando o mapeando cada
bifurcación del árbol con su respectivo atributo y valor que éste
tome en la bifurcación. Para cada una de estas reglas, utilizará a
la red bayesiana para poder determinar la probabilidad de
ocurrencia de esta regla. Las reglas generadas serán del estilo
SI
Atributo1 = valor1
Y
Atributo2 = valor2
Y
…
Y
AtributoN = valorN
ENTONCES
Clase = clase1.
PROBABILIDAD
% de probabilidad de ocurrencia de la
regla inducida
4.2. Representación de los datos de entrada
Uno de los factores importantes a considerar en el diseño del ambiente, además
de las funciones de clasificación de instancias, selección y ponderación de reglas, es la
forma en que se van a representar los datos que van a servir tanto de entrada al ambiente
(dominio o población) como así también las salidas del mismo (reglas inducidas).
Hay que tener en cuenta que el ambiente va a tener que ser capas de recibir
cualquier tipo de estructura de datos de la cual se quieran inducir reglas, lo que hace
suponer distintos tipos de datos (enteros, decimales, fechas, caracteres, etc.), distintos
nombres identificatorios de estos datos (nombre, edad, precio, etc.) y considerar
también distintos rangos y/o valores máximos y mínimos para estos datos. Ninguno de
estos aspectos es trivial al diseño del ambiente, por lo que es necesaria una correcta
definición de cómo se van a representar los datos.
Una de las formas de abordar este desafío es el de definir, mediante alguna
estructura fija, los datos propiamente dichos, y en un esquema aparte la representación y
el significado que esos datos tienen, o sea los metadatos. Esta podría ser una solución
64
que se podría implementar. El ambiente recibiría por cada archivo donde se informa la
población, un archivo aparte donde se indica cual es la estructura de dichos datos.
Sin embargo, existe un estándar que hoy en día puede resolver este
inconveniente, y es el estándar XML o Extensible Markup Lenguaje.
4.2.1. El Standard XML
Introducción a XML
Actualmente, las compañías confrontan muchos inconvenientes en lo que refiere
a la organización de datos debido a que deben cumplir con los siguientes
requerimientos:
•
Los datos deben ser leídos tanto por las computadoras como por los seres
humanos.
•
Tanto el contenido como la estructura de los datos debe ser definidos.
•
La estructura de los datos debe estar separada de la presentación de los datos.
•
La estructura de los datos debe ser abierta y extensible.
XML cumple con todos estos requerimientos asistiendo a las compañías y demás
en la organización de los datos.
¿Qué es XML?
XML es un formato universal que esta siendo utilizado para describir e
intercambiar documentos estructurados y datos. XML es un subconjunto del llamado
Standard Generalizad Markup Lenguaje (SGML), y esta definido por el consorcio de la
World Wide Web (W3C).
XML define la estructura de los datos en una manera abierta y auto descripta.
Esto permite que los datos puedan ser trasferidos entre diferentes aplicaciones y que los
65
mismo sean correctamente procesados por el receptor. XML describe como los datos se
estructuran, no como deberían los mismo ser mostrados al usuario o usados, a diferencia
de lo que hace HTML. Los documentos XML contienen tags que asignan significado al
contenido del documento. Estos tags permiten a los programadores además encontrar
datos que necesitan en el documento XML.
Sin embargo la pregunta no es tan simple de responder. En un primer nivel,
XML es un protocolo para contener y manejar información. En otro nivel, es una
familia de tecnologías que pueden hacer cualquier cosa desde formatear documentos
hasta filtrar datos. Y en un nivel superior, es una filosofía para el manejo de
información que busca el máximo uso y flexibilidad para los datos refiriéndose a su
pureza y su más estructurada forma. Un entendimiento completo de XML toca estos tres
niveles.
Analizaremos el primer nivel de XML: como contiene y maneja información con
markup. Este esquema empaquetador de datos universal es la creación necesaria para el
próximo nivel, donde XML se convierte realmente en interesante. Comprendiendo los
fundamentos del markup, documentos y presentación nos ayudará a comprender lo más
beneficioso de XML y sus accesorios.
Markup
Nótese que a pesar de su nombre, XML no es por si solo un lenguaje de markup,
sino una serie de reglas para construir lenguajes de markup. Pero ¿qué es exactamente
un leguaje de markup? Markup es información agregada a un documento que aumenta
su significado en cierto modo, identificando las partes y como se relacionan con cada
una. Por ejemplo, cuando se esta leyendo un periódico, uno puede identificar los
artículos separadamente ya sea por su posición o su espaciado entre cada uno de ellos, y
también por las diferentes fuentes y tamaños de las letras tanto para encabezados como
para el articulo en si mismo. El markup trabaja de una forma similar, excepto que en
lugar de espaciado utiliza símbolos. Un leguaje markup es un conjunto de símbolos que
66
pueden ser puestos en el texto de un documento para demarcar y etiquetar las diferentes
partes del documento.
Markup es importante en los documentos electrónicos, a los cuales nos
referiremos a partir de ahora al referirnos a documentos, debido a que éstos son
procesados por programas de computadoras. Si un documento no está etiquetado,
entonces el programa no va a saber como tratar el pedazo de texto para distinguirlo de
cualquier otra parte. Esencialmente, el programa va a tener que trabajar con el
documento entero como si fuera una unidad, limitando las cosas interesantes que se
podrían hacer con el contexto. Paralelamente, un periódico sin espaciado entre los
artículos y con un solo estilo de fuente seria como una gran bola de texto in entendible.
Probablemente uno podría darse cuenta donde empieza y donde termina cada articulo,
pero debería tomarse mucho trabajo para hacerlo. Un programa de computadora ni
siquiera podría hacer eso.
Por suerte, el markup es una solución a estos problemas. Aquí hay un ejemplo de
cómo el markup XML se ve cuando es embebido en un pedazo de texto:
<mensaje>
<exclamación>Hola, mundo!</exclamación>
<párrafo>XML es<enfatizar>divertido</enfatizar>y
<enfatizar>fácil</enfatizar>de usar.
<graficfileref=”smiley_face.pict”/>
</párrafo>
</mensaje>
Este retazo incluye los siguientes símbolos markup, o tags:
•
Los tags <mensaje> y </mensaje> marcan el principio y el final del
fragmento XML.
•
Los tags <exclamación> y </exclamación> enmarcan el texto Hola,
mundo!.
•
Los tags <párrafo> y </párrafo> enmarcan una región grande de
texto y tags.
67
•
Algunos tags <enfatizar> y </enfatizar> etiquetan palabras
individuales.
De este ejemplo se pueden sacar algunos patrones. Algunos tags funcionan como
sujetalibros, marcando el principio y final de regiones, mientras que otros marcan un
lugar en el texto. Hasta el más simple documento aquí contiene mucha información:
Limites
Un pedazo de texto comienza en un lugar y termina en otro. Los tags
<mensaje> y </mensaje> definen el comienzo y final de una
colección de texto y markup, el cual es etiquetado como mensaje.
Roles
Que es una región de texto en el documento? Aquí, los tags <párrafo>
y <párrafo> etiquetan texto como un párrafo, y no como un titulo o
lista u algún otro tipo.
Posiciones
Un pedazo de texto viene después de algunas cosas y antes que otras. El
párrafo aparece después del texto etiquetado como exclamación, por lo
que probablemente será impreso en esa forma.
Contención
El texto divertido esta dentro del elemento <enfatizar>, el cual está
dentro de un <párrafo>, que está dentro de un <mensaje>. Este
anidamiento de elementos es tenido en cuanta por el software de
procesamiento de XML, el cual tratará cada contexto de diferente
manera, dependiendo de donde aparezca cada uno. Por ejemplo, un titulo
puede llegar a tener un tamaño de fuente diferente dependiendo si es el
titulo del periódico o el titulo de un artículo.
Relaciones
68
Un pedazo de texto puede ser linkeado a algún recurso en cualquier otro
lugar. Por ejemplo, el tag <graficfileref=”smiley_face.pict”/>
crea una relación (link) entre el fragmento de XML y un nombre de
archivo smiley_face.pict. La intención es la de importar información
grafica del archivo y mostrarlo en este fragmento.
En XML, tanto los markups como los contextos contribuyen al valor de la
información en el documento. Los markup permiten a programas de computadora
determinar las funciones y limites de cada parte de un documento. El contexto (texto
regular) es lo importante para el lector, pero necesita ser presentado en una forma que
tenga sentido. XML ayuda a la computador formatear el documento para hacerlo mas
comprensible a los humanos.
Documentos
Cuando uno escucha la palabra documento, probablemente piense en una
secuencia de palabras divididas dentro de párrafos, secciones y capítulos, componiendo
un registro legible por el ser humano, como ser un libro, articulo o ensayo. Pero en
XML un documento es mucho más general que esto. Un documento en XML es la
unidad básica de información, compuesta de elementos y markups en un paquete
ordenado. Puede contener texto como en un artículo, pero no es que deba contener
necesariamente texto. Podría consistir en una base de números, o alguna estructura
abstracta de representación de una ecuación molecular. De hecho, una de las más
promisorias aplicaciones de XML es utilizarlo como un formato de intercambio de datos
entre aplicaciones. Tengamos en cuenta que un documento XML contiene una
definición mucho mas amplia de lo que uno puede pensar como un documento
tradicional.
Un documento esta compuesto de partes llamadas elementos. Los elementos se
anidan dentro de cada uno como pequeñas cajas dentro de cajas más grandes,
etiquetando el contenido del documento. En el nivel de mas arriba, un solo elemento
llamado el elemento documento o elemento raíz contiene otros elementos.
69
Un documento no es lo mismo que un archivo. Un archivo es un paquete de
datos tratado como una unidad contigua por el sistema operativo de la máquina. Esto es
la llamada estructura física. Un documento XML puede existir en uno o más archivos,
alguno de los cuales puede hasta estar en otro sistema diferente. XML utiliza markups
especiales para integrar el contenido de diferentes archivos para poder crear una única
unidad, la cual llamamos estructura lógica. Manteniendo un documento independiente
de las restricciones de un archivo, XML facilita un enlazado de documentos los cuales
pueden residir en cualquier lado.
Modelado de documentos
XML no es un lenguaje en si mismo, sino una especificación para crear
lenguajes e markup. Hay dos formas de crear lenguajes basados en XML. La primera
forma es llamada XML libre (freedom XML). En este modo existen solo unas mínimas
reglas acerca de cómo formar y utilizar tags, pero cualquier nombre de tag puede ser
utilizado y pueden aparecer en cualquier orden. Cuando un documento cumple con estas
mínimas reglas de XML, se dice que el documento esta bien formado (well-formed), y
califica como un buen XML.
Un documento XML es considerado bien formado si:
•
Contienen exactamente un elemento raíz.
•
Todos los elementos hijos están anidados correctamente dentro de otros.
•
Los tags de comienzo y fin de un elemento en particular existe dentro del
cuerpo del mismo elemento padre.
Ejemplo de un XML bien formado:
<Temp> 22</Temp>
70
Sin embargo, freedom XML es limitado en su uso. Debido a que no hay
restricciones en los tags que se pueden utilizar, tampoco hay entonces una
especificación que sirva como instrucciones para utilizar el lenguaje. Seguramente se
podrá tratar de ser consistente sobre el uso de los tags, pero siempre va a estar la
posibilidad de algún error que el programa que lea el XML podrá procesar en forma
incorrecta. En términos de control calificado, muchas más cosas se pueden hacer con
XML.
Afortunadamente, XML provee una forma de describir el lenguaje en términos
no inciertos. Esto se suele llamar modelado de documentos, debido a que involucra el
creado de una especificación que traza las reglas de cómo un documento puede verse.
En efecto, es un modelo contra el cual se puede comparar un documento en particular
(denominado documento instancia) para ver si realmente representa el lenguaje, por lo
que el documento se puede testear para estar seguro que machea la especificación. Esto
se llama test de validación. Si un documento es valido, se sabe que el mismo esta libre
de errores tales como tags, órdenes incorrectos o datos inexistentes.
Un documento XML es valido si su vocabulario conforma el conjunto de
requerimientos que están listados en el esquema.
La forma más común de modelar documentos es con un documento de
definición de tipo (DTD, Document Type Definition). Este es un conjunto de reglas o
declaraciones que especifican que tags pueden ser utilizados y lo que cada una puede
contener. Al principio del documento existe una referencia al DTD, declarando que se
quiere validar el documento contra este validador.
Un nuevo estándar para el modelado de documentos conocido como esquema
XML también esta emergiendo. Los esquemas utilizan fragmentos XML llamados
templates para demostrar como un documento debe verse. El beneficio en la utilización
de esquemas es que los esquemas son una forma de XML, por lo que se pueden editar
con las mismas herramientas que se utilizan para editar documentos XML. También
71
introducen un chequeo más poderoso de tipos de datos, haciendo posible encontrar
errores tanto en el contenido de cada tag como en el uso propio de los tags.
Hay tres tipos de esquemas que pueden ser utilizados para validar documentos
instancia XML:
•
Document Type Definition (DTD):
•
XML Data Reduced (XDR Schema)
•
XML Schema Definition language (XSD):
Un lenguaje de markup creado utilizando reglas XML se llama aplicación XML
o también document type.
Un esquema XML es un documento XML que define la estructura y el tipo de
restricciones para un determinado vocabulario en documentos XML. Las estructuras
utilizadas para crear esquemas XML están definidas por la W3C en la siguiente URL
http://www.w3.org/TR/xmlschema-1/. El listado de los tipos de datos básicos está
también definido por la W3C en http://www.w3.org/TR/xmlschema-2/. Los esquemas
XML pueden utilizar estos tipos de datos para restringir el contenido de los elementos y
los atributos.
4.3. Características necesarias de los datos de entrada
El ambiente prevé que el documento XML que ingresa al mismo tenga una
determinada estructura, mas allá de la propia impuesta por el estándar XML.
Existen unas restricciones en cuanto a no permitir que dentro del documento
XML existan los llamados atributos nested o atributos anidados. Esta restricción hace
que el archivo deba tener una estructura como la que se especifica a continuación, para
ser considerado válido:
<raíz>
72
<individuo>
<atributo1>Valor Atributo1</atrinuto1>
<atributo2>Valor Atributo2</atrinuto2>
….
<atributoN>Valor Atributo1</atrinutoN>
</individuo>
</raíz>
O sea, del tag que representa a la raíz colgará directamente el tag que
representará a cada individuo (en el ejemplo representado por el tag <individuo>) y
colgando de éste tag se deberán definir cada uno de los atributos, en forma atómica o no
anidada. Cuando se dice en forma atómica, se quiere decir que no deberá existir, por
ejemplo, un atributo que tenga la siguiente estructura:
<Persona>
<Nombre>Juan</Nombre>
<Apellido>Perez</Apellido>
<Domicilio>
<Calle>Belgrano</Calle>
<Numero>10</Numero>
<Piso>4</Piso>
<Depto>E</Depto>
<Localidad>Buenos Aires</Localidad>
</Domicilio>
</Persona>
En este ejemplo la estructura del atributo <Domicilio> no es atómica, ya que el
atributo está compuesto por otros atributos, en forma anidada.
Un ejemplo de un documento XML correcto en función de los límites impuestos
para el ambiente podría ser el siguiente:
<books>
<book>
<calidad>Malo</calidad>
<tema>Ciencias</tema>
<tamano>Chico</tamano>
</book>
73
<book>
<calidad>Regular</calidad>
<tema>Matemáticas</tema>
<tamano>Chico</tamano>
</book>
</books>
La solución propuesta ha sido aceptada en VII Jornadas Iberoamericanas de
Ingeniería del Software e Ingeniería del Conocimiento 2008 [Schulz, G., Britos, P.,
García-Martínez, R., 2008].
74
5. Diseño del ambiente. La metodología UML
En este capitulo se desarrolla la metodología UML aplicada al diseño y
desarrollo del ambiente a implementar. Primero se da una reseña del lenguaje utilizado,
ambientes de desarrollo y demás características del software utilizado para la
construcción y compilado del software (Sección 5.1). Luego se presentan los casos de
uso (Sección 5.2). A continuación se presenta la transición de estados en el ambiente
(Sección 5.3), y luego se presenta el diseño de las distintas pantallas desarrolladas
(Sección 5.4). Por último se describen las pruebas que se realizaron sobre los casos de
uso, para evaluar la efectividad de la solución propuesta (Sección 5.5).
5.1. Generalidades
El software desarrollado está implementado en el lenguaje Java. Contiene una
interfaz grafica GUI, desarrollada con componentes Swing que Java provee.
Se utilizó para el desarrollo la versión Java Runtime Enviroment 1.6, y el IDE
Eclipse.
5.2. Casos de Uso
Para detallar los casos de uso, dividimos a los mismos en 5 grupos:
Población
Clasificador
Selector
Ponderador
El menú
A continuación se detallan los casos de uso para cada uno de estos grupos.
75
5.2.1. Población
POBLACION
Descripción de Casos de Uso
Nombre:
Actores:
Función:
Descripción:
Cargar Población
Usuario
Permitir cargar una población
El Usuario puede cargar al ambiente una población nueva. El
sistema debe validar que el archivo seleccionado esté disponible,
y tenga una estructura XML válida. También el sistema deberá
validar la existencia del archivo esquema con igual nombre del
archivo población.
Se setea el estado del ambiente a POBLACION_CARGADA.
Nombre
Actores
Función
Descripción
Validar Población
Usuario
Permite validar una población
El usuario hace clic en el botón de Validar Población. El sistema
deberá validar primero que el estado del ambiente sea como
mínimo POBLACION_CARGADA. Luego validará que cada uno
de los atributos de cada uno de los individuos dentro del archivo
XML de la población cargada tenga valores válidos, según lo
especificado en el archivo esquema XSD.
Nombre
Actores
Seleccionar Atributos a Considerar
Usuario
76
Función
Descripción
Permite seleccionar atributos
El usuario puede seleccionar aquellos atributos que desea que se
tengan en cuenta para el estudio de la población, del total de
atributos que caracterizan a la población.
Nombre
Actores
Función
Seleccionar Modo de Estudio
Usuario
Permite seleccionar el modo en el cual se va a realizar el estudio
de la población.
El usuario selecciona el modo de estudio de la población,
pudiendo elegir entre las siguientes alternativas: Clasificar,
Seleccionar Reglas o Ponderar Reglas.
Descripción
77
5.2.2. Clasificador
CLASIFICADOR
Descripción de Casos de Uso
Nombre:
Actores:
Función:
Descripción:
Clasificar Población
Usuario
Permitir clasificar una población
El Usuario hace clic en el botón Clasificar Población. Primero
se valida que el estado actual del ambiente sea como mínimo
POBLACION_VALIDADA, de no ser así devuelve un error. Una
vez validado el estado del ambiente, éste, de acuerdo a las
características del clasificador, realiza la tarea de clasificar a la
población en las N clases especificadas. Una vez clasificada la
población, se setea el estado del ambiente a
POBLACION_CLASIFICADA.
Nombre
Actores
Función
Parar Clasificación
Usuario
Permite cancelar una clasificación en curso
78
Descripción
El usuario hace clic en el botón de Cancelar Clasificación. El
sistema deberá validar que actualmente se encuentre en proceso
clasificatorio. Si es así, el sistema mata el proceso de
clasificación, volviendo el estado del ambiente al que
corresponda. Si no se está en proceso de clasificación o el
ambiente ya clasificó a la población, no se lleva a cabo ninguna
acción
Nombre
Actores
Función
Setear valores por Default
Usuario
Permite setear valores por default a las características del
clasificador.
El usuario hace clic en el botón Valores por Default. El
ambiente completa las características del clasificador con
valores por default ya establecidos.
Descripción
Nombre
Actores
Función
Descripción
Generar Archivo de Clasificación
Usuario
Permite generar un archivo de la clasificación realizada.
El usuario hace clic en el botón Generar archivo de la
clasificación, habiendo seleccionado previamente la opción
Todos los atributos. Se valida que el estado del ambiente sea
como mínimo POBLACION_CLASIFICADA. De no ser así, se
muestra un error. Se muestra la pantalla para que el usuario elija
el archivo que desea generar. Una vez que se selecciona el
nombre del archivo, se genera el archivo con la clasificación
realizada, con todos los atributos de la población.
Nombre
Actores
Función
Definir Filtro
Usuario
Permite filtrar un subconjunto de atributos para que el archivo
de la clasificación se genere con los atributos seleccionados, y
no con todos los atributos.
El usuario hace clic en el botón Generar archivo de la
clasificación, habiendo seleccionado previamente la opción
Definir Filtro. Se valida que el estado del ambiente sea como
mínimo POBLACION_CLASIFICADA. De no ser así, se
muestra un error. Se muestra una pantalla para que el usuario
elija, del total de atributos que caracterizan a la población,
aquellos que quiere incorporar al archivo de la clasificación.
Descripción
79
5.2.3. Selector
SELECTOR
Descripción de Casos de Uso
Nombre:
Actores:
Función:
Descripción:
Seleccionar Atributo CLASE de Selector
Usuario
Permitir seleccionar el atributo CLASE del selector
El Usuario selecciona, del total de atributos a considerar en
el estudio de la población, que atributo desea que sea el
atributo CLASE. Una vez seleccionada, el estado de la
población pasa a ser ATRIBUTO_CLASE_SETEADO.
Nombre
Actores
Función
Descripción
Generar Árbol de Decisión
Usuario
Permite generar el árbol de decisión
El usuario hace click en el botón Generar Árbol de decisión.
Se debe validar que el estado del ambiente sea al menos
80
SELECTOR_SETEADO. De no ser así se muestra un
mensaje de error. El ambiente genera, de acuerdo a las
características del selector, el árbol de decisión. Una vez
generado el árbol de decisión, el estado del ambiente pasa a
ser REGLAS_SELECCIONADAS.
Nombre
Actores
Función
Descripción
Cancelar árbol de decisión
Usuario
Permite cancelar un árbol de decisión en curso
El usuario hace clic en el botón de Cancelar árbol de
Decisión. El sistema deberá validar que actualmente se
encuentre en proceso de generación del árbol. Si es así, el
sistema mata el proceso que está generando el árbol de
decisión, volviendo el estado del ambiente al que
corresponda. Si no se está en proceso de generación del
árbol de decisión o el ambiente ya generó el árbol, no se
lleva a cabo ninguna acción
Nombre
Actores
Función
Descripción
Generar archivo de Reglas
Usuario
Permite generar un archivo XML de las reglas generadas
El usuario hace clic en el botón Generar archivo Reglas,
habiendo seleccionado previamente la opción Todas las
Reglas. Se valida que el estado del ambiente sea como
mínimo REGLAS_SELECCIONADAS. De no ser así, se
muestra un error. Se muestra la pantalla para que el usuario
elija el archivo que desea generar. Una vez que se selecciona
el nombre del archivo, se genera el archivo con las reglas de
decisión generadas por el árbol de decisión, en formato
XML.
Nombre
Actores
Función
Definir Filtro
Usuario
Permite filtrar un subconjunto de características de las reglas
de decisión para que el archivo que detalla las reglas sea un
subconjunto del total. Se permite filtrar por Clase a la cual
determina la regla, o por confianza de la regla.
El usuario hace clic en el botón Generar archivo Reglas,
habiendo seleccionado previamente la opción Definir Filtro.
Se valida que el estado del ambiente sea como mínimo
REGLAS_SELECCIONADAS. De no ser así, se muestra un
error. Se muestra una pantalla para que el usuario elija los
filtros por Clase y Confianza de la regla.
Descripción
81
5.2.4. Ponderador
PONDERADOR
Descripción de Casos de Uso
Nombre:
Actores:
Función:
Descripción:
82
Seleccionar Atributo CLASE de Ponderador
Usuario
Permitir seleccionar el atributo CLASE del ponderador
El Usuario selecciona, del total de atributos a considerar
en el estudio de la población, que atributo desea que sea el
atributo CLASE.
Nombre
Actores
Función
Descripción
Ponderar Reglas
Usuario
Permite generar la red bayesiana
El usuario hace click en el botón Generar red bayesiana.
Se debe validar que el estado del ambiente sea al menos
RED_BAYESIANA_SETEADA. De no ser así se muestra
un mensaje de error. El ambiente genera, de acuerdo a las
características, la red bayesiana. Una vez generada la red,
el
estado
del
ambiente
pasa
a
ser
RED_BAYESIANA_GENERADA.
Nombre
Actores
Función
Descripción
Generar Archivo de Reglas Ponderadas
Usuario
Permite seleccionar atributos
El usuario pude seleccionar aquellos atributos que desea
que se tengan en cuenta para el estudio de la población,
del total de atributos que caracterizan a la población.
Nombre
Actores
Función
Definir Filtro
Usuario
Permite seleccionar el modo en el cual se va a realizar el
estudio de la población.
El usuario selecciona el modo de estudio de la población,
pudiendo elegir entre las siguientes alternativas:
Clasificar, Seleccionar Reglas, Ponderar Reglas.
Descripción
Nombre
Actores
Función
Descripción
Nombre
Actores
Función
Descripción
Mover Nodos
Usuario
Setea el estado de la red Bayesiana en Mover, lo que
permite mover los diferentes nodos de la red con el
Mouse.
El usuario hace click en el botón Mover. Luego, con el
Mouse, va a poder mover los nodos de la red Bayesiana.
Consultar Nodos
Usuario
Setea el estado de la red Bayesiana en Consultar, lo que
permite al hacer click en algún nodo, que se muestre las
probabilidades de ocurrencia de cada uno de los posibles
estados del nodo.
El usuario hace click en el botón Consultar. Luego, al
hacer click con el Mouse en algún nodo, se va a mostrar
una pantalla con las probabilidades para cada uno de los
83
estados del nodo.
Nombre
Actores
Función
Descripción
Nombre
Actores
Función
Descripción
84
Observar Nodos
Usuario
Setea el estado de la red Bayesiana en Observar, lo que
permite al hacer click en algún nodo, que se de la
posibilidad de setear al nodo en alguno de sus estados,
como probabilidad a priori.
El usuario hace click en el botón Observar. Luego, al
hacer click con el Mouse en algún nodo, se va a mostrar
una pantalla para que se seleccione alguno de los estados
posibles que el nodo puede tomar.
Guardar Observación
Usuario
Permite guardar en un archivo de texto la observación del
estado actual de la red Bayesiana.
El usuario hace click en el botón Guardar observación. Se
genera un archivo de texto con las distintas probabilidades
a posteriori de aquellos nodos que no estén en estado
Observado.
5.2.5. El menú
EL MENÙ
Descripción de Casos de Uso
Nombre:
Actores:
Función:
Descripción:
Consultar estado del ambiente
Usuario
Permitir consultar el estado actual del ambiente
El Usuario hace click en el menú Ambiente->Estado del
ambiente. Se muestra un mensaje con la descripción del
estado actual del ambiente.
Nombre
Salir
85
Actores
Función
Descripción
Usuario
Permite salir del ambiente.
El Usuario hace click en el menú Ambiente->Salir. Se
muestra un mensaje preguntando al usuario si esta
seguro que quiere salir. Si el usuario acepta el mensaje,
se cierra el ambiente.
Nombre
Actores
Función
Convertir Comma Separated a XML
Usuario
Permite convertir un archivo delimitado por coma, en un
archivo XML.
El Usuario hace click en el menú Población->Convertir a
XML->Comma Separated a XML. Se muestra una
pantalla para que el usuario elija en archivo que quiere
convertir. Se genera un archivo XML con la conversión
del archivo origen seleccionado.
Descripción
Nombre
Actores
Función
Descripción
Convertir Excel a XML
Usuario
Permite convertir un archivo Excel, en un archivo XML.
El Usuario hace click en el menú Población->Convertir a
XML->Excel a XML. Se muestra una pantalla para que
el usuario elija en archivo que quiere convertir. Se
genera un archivo XML con la conversión del archivo
origen seleccionado.
Nombre
Actores
Función
Convertir Tab Delimiter a XML
Usuario
Permite convertir un archivo delimitado por Tabs, en un
archivo XML.
El Usuario hace click en el menú Población->Convertir a
XML->Tab delimiter a XML. Se muestra una pantalla
para que el usuario elija en archivo que quiere convertir.
Se genera un archivo XML con la conversión del archivo
origen seleccionado.
Descripción
Nombre
Actores
Función
Descripción
86
Cargar Población
Usuario
Permite cargar una población
El Usuario puede cargar al ambiente una población
nueva. El sistema debe validar que el archivo
seleccionado esté disponible, y tenga una estructura
XML válida. También el sistema deberá validar la
existencia del archivo esquema con igual nombre del
archivo población.
Se
setea
el
estado
POBLACION_CARGADA.
del
ambiente
a
Nombre
Actores
Función
Descripción
Validar Población
Usuario
Permite validar una población cargada.
El usuario hace clic en el botón de Validar Población. El
sistema deberá validar primero que el estado del
ambiente sea como mínimo POBLACIÓN_CARGADA.
Luego validará que cada uno de los atributos de cada uno
de los individuos dentro del archivo XML de la
población cargada tenga valores válidos, según lo
especificado en el archivo esquema XSD.
Nombre
Actores
Función
Guardar Grafico
Usuario
Permite guardar en un archivo jpg el gráfico de la
pantalla en la que se encuentra actualmente.
El usuario hace click en el menú Grafico->Guardar
Grafico. Se muestra una pantalla para que el usuario
seleccione el nombre del archivo. Se guarda el grafico de
la pantalla en la que se encuentra actualmente, en el
archivo que el usuario seleccionó.
Descripción
Nombre
Actores
Función
Descripción
Acerca de
Usuario
Muestra la pantalla de Acerca de…
El usuario hace click en el menú Ayuda->Acerca de. Se
muestra la pantalla de Acerca de.
Nombre
Actores
Función
Descripción
Temas de ayuda
Usuario
Muestra la ayuda del sistema.
El usuario hace click en el menú Ayuda->Temas de
ayuda. Se muestra la pantalla de Ayuda del sistema.
87
5.3. Transición de estados en el ambiente
El diagrama de la Figura 17 muestra la secuencia de los estados del ambiente
durante su ciclo de vida, en respuesta a las acciones o eventos recibido por parte del
usuario del mismo. Los diferentes estados y el orden por los que puede pasar el
ambiente son los siguientes:
1. ESTADO_INICIAL
2. POBLACION_CARGADA
3. POBLACION_VALIDADA
4. CLASIFICADOR_SETEADO
5. POBLACION_CLASIFICADA
6. ATRIBUTO_CLASE_SETEADO
7. SELECTOR_SETEADO
8. REGLAS_SELECCIONADAS
9. RED_BAYESIANA_SETEADA
10. RED_BAYESIANA_GENERADA
Estos posibles estados siguen una secuencia, de manera que para llegar al estado
POBLACION_VALIDADA, es necesario que el ambiente haya pasado previamente por
el estado POBLACION_CARGADA. Los estados hacen referencia a una condición que
se cumple durante la vida del ambiente y determinan además que acciones pueden y no
pueden realizarse. Por ejemplo, no va a ser posible clasificar a la población si el estado
del ambiente es menor a CLASIFICADOR_SETEADO.
El ambiente permanece en un estado por un tiempo finito, hasta que se cumpla la
condición o evento que produce el cambio. Existen eventos específicos que hacen que el
ambiente cambie de estado. Todo esto se muestra gráficamente en la Figura 17.
88
Figura 17. Transacción de estados.
89
5.4. La interfase grafica
A continuación se detalla la forma en la que se diseñó la interfase grafica que
tendrá el Ambiente Integrado.
El Ambiente Integrado está conformado por una pantalla principal, que a su vez
se divide en 4 pantallas.
Estas 4 pantallas son las siguientes:
-
Población
-
Clasificador
-
Selector
-
Ponderador
5.4.1. Población
Aquí es donde el usuario realiza las siguientes acciones:
1. Ingresar el archivo que se va a analizar
2. Validar el archivo que se va a analizar.
3. Seleccionar qué atributos van a ser tenidos en cuenta para el análisis
4. Decidir que análisis se le va a realizar a la población. Las opciones son:
- Clasificar.
- Seleccionar Reglas.
- Ponderar Reglas.
Además en esta pantalla se pueden observar las características principales de la
población que se va a analizar, como ser:
-
90
Nombre del archivo de la población
-
Nombre del archivo esquema
-
Cantidad de atributos que caracteriza a la población
-
Cantidad de individuos que existen en la población
-
Nombre, Tipo de dato y Valores permitidos de cada uno de los atributos
que caracteriza a la población
En la Figura 18 se muestra esta pantalla.
Figura 18. Pantalla Poblacion
5.4.2. Clasificador
Aquí es donde el usuario realiza las siguientes acciones:
1. Setear las características funcionales del clasificador, que son:
91
-
Cantidad de clases en las que se quiere clasificar a la
población.
-
Número de iteraciones a realizar por el clasificador.
-
Ratio inicial de clasificación
-
Ratio final de clasificación
-
Sigma inicial de clasificación
-
Sigma final de clasificación
2. Clasificar a la población.
3. Posibilidad de generar el archivo de la población clasificada.
Además en esta pantalla se pueden observar las características principales de la
población clasificada, como ser:
-
Nombre del archivo de la población
-
Cantidad de atributos utilizados en la clasificación
-
Cantidad de individuos de la población clasificados
-
Tiempo incurrido en la clasificación
-
Grafico de barras con la cantidad de individuos que se clasificaron en
cada una de las clases
En la Figura 19 se muestra esta pantalla.
5.4.3. Selector
Aquí es donde el usuario realiza las siguientes acciones:
1. Setea las características funcionales del selector de reglas, que son:
a. Función de splitting para generar el árbol de decisión
b. Algoritmo de poda a utilizar para podar el árbol de decisión
generado
92
2. Selecciona que atributo va a ser considerado Atributo CLASE. Esta
posibilidad se da solo cuando en la pantalla Población se selecciono
la opción de Seleccionar Reglas.
3. Genera el árbol de decisión.
4. Posibilidad de generar un archivo con las reglas de decisión
generadas. Este archivo puede contener todas las reglas, o se puede
especificar que se filtren un subconjunto de estas reglas.
Figura 19. Pantalla Clasificador
Además en esta pantalla se puede observar las características graficas del árbol
de decisión generado.
En la Figura 20 se muestra esta pantalla.
93
Figura 20. Pantalla Selector
5.4.4. Ponderador
Aquí es donde el usuario realiza las siguientes acciones:
1. Setea las características funcionales del ponderador de reglas, que
son:
a. Algoritmo a utilizar
b. Medida de calidad para el algoritmo que se seleccione
94
2. Selecciona que atributo va a ser considerado Atributo CLASE. Esta
posibilidad se da solo cuando en la pantalla Población se selecciono
la opción de Ponderar Reglas.
3. Genera la red bayesiana.
4. Posibilidad de generar un archivo con las reglas de decisión
ponderadas generadas. Este archivo puede contener todas las reglas, o
se puede especificar que se filtren un subconjunto de estas reglas.
Además en esta pantalla se puede observar las características graficas de la red
bayesiana generada.
En la Figura 21 se muestra esta pantalla.
Figura 21. Pantalla Ponderador
95
5.5. Casos de Prueba
A continuación se detalla, para cada uno de los casos de uso detallados en la
sección 5.2, los casos de prueba a realizar.
Para las pruebas, se utilizaron bases de datos obtenidas del UCI Machine
Learning Repository del Departamento de Información y Ciencias de la Computación
de la Universidad de California.
A continuación se resumen las características de las bases de datos utilizadas.
Base
Atributos
Instancias
Flag
30
194
Zoo
18
101
Descripción de la base de datos
Una base de datos que contiene 30 atributos, de
diferentes tipos (numéricos, booleanos, rangos) que
definen banderas de diferentes países.
Una base de datos simple que contiene 16 atributos
booleanos y 1 atributo numérico que definen diferentes
animales. El atributo “tipo” define el atributo clase.
Para cada uno de los casos de prueba, se detalla lo siguiente:
-
Nombre del caso de uso
-
Precondiciones necesarias para el testeo del caso de uso
-
Secuencia principal de acciones realizadas por los actores del caso de
uso
-
Alternativas a la secuencia principal de acciones
-
Posibles errores que el sistema deberá mostrar
-
Poscondiciones que deberán ocurrir una vez realizada la secuencia
-
Notas sobre los resultados obtenidos de la prueba
5.5.1. Población
POBLACION
Casos de Uso bajo Prueba
Nombre:
96
Cargar Población
Precondiciones
Secuencia principal
Alternativas
Errores
Poscondiciones
Notas
Nombre
Precondiciones
Secuencia principal
Alternativas
Errores
Poscondiciones
No hay
1. El usuario oprime el botón Abrir archivo Población.
2. El sistema muestra la pantalla para elegir el archivo.
3. El usuario selecciona un archivo.
4. El sistema carga el archivo en el ambiente.
3.1. El usuario puede optar por cancelar la pantalla en lugar
de elegir un archivo.
3.2. El sistema no encuentra el archivo seleccionado.
3.3. El sistema encuentra un error al momento de abrir el
archivo.
3.4. El sistema no encuentra el archivo esquema al
momento de abrir el archivo población.
El estado del ambiente cambia a POBLACION_CARGADA.
Validar Población
No hay
1. El usuario oprime el botón Validar Población.
2. El sistema valida la población, de acuerdo a la
estructura y características del archivo esquema.
3. El sistema muestra un mensaje de que la población es
válida.
Si el estado del ambiente es menor que
POBLACION_CARGADA, el sistema deberá mostrar
un error informando de eso.
La población no es valida, por lo que el sistema
muestra un mensaje informando el motivo por el cual
la población no es valida.
El
estado
del
ambiente
cambia
a
POBLACION_VALIDADA.
Se llena la grilla de Seleccionar Atributos.
Se completa el árbol de Estructura de la Población.
Notas
Nombre
Precondiciones
Secuencia principal
Alternativas
Seleccionar atributos a considerar
1. El estado del ambiente debe ser al menos
POBLACION_VALIDADA.
2. Los atributos que se listan son los que caracterizan a la
población.
3. Todos los atributos deben estar tildados como
seleccionados.
1. El usuario selecciona, haciendo click en los checkboxs,
que atributos desea.
1.1. El usuario aprieta el botón Todos.
97
Errores
Poscondiciones
1.2. El usuario aprieta el botón Ninguno.
1.3. El usuario aprieta el botón Invertir.
No hay.
Todos los atributos se deben tildar como
seleccionados
Ningún atributo se debe tildar como seleccionado
Se deben quedar tildados los atributos que no están
tildados al momento de apretar el botón.
Notas
Nombre
Precondiciones
Secuencia principal
Alternativas
Errores
Poscondiciones
Seleccionar modo de estudio
El estado del ambiente debe ser al menos
POBLACION_VALIDADA.
1. El usuario selecciona el modo de estudio de la
población, haciendo click en la opción que desee.
El usuario selecciona el modo Clasificador.
El usuario selecciona el modo Selector.
El usuario selecciona el modo Ponderador.
1.1. Se habilitan los tabs Clasificador, Selector
Ponderador.
1.2. Se habilitan los tabs Selector y Ponderador
1.3. Se habilita el tab Ponderador.
y
Notas
5.5.2. Clasificador
CLASIFICADOR
Casos de Uso bajo Prueba
Nombre:
Precondiciones
Secuencia principal
Alternativas
Errores
98
Clasificar Población
Se debe haber elegido el modo de estudio de la población
de Clasificador
1. El usuario hace clic en el botón Clasificar
2. El sistema comienza a clasificar a la población, de
acuerdo a las características del clasificador.
No hay
1.1.Si no se completaron todas las características del
clasificador, entonces el sistema muestra un mensaje
de error, informando de esto.
Poscondiciones
1.2.Si no se seleccionó ningún atributo a considerar de los
que caracterizan a la población, el sistema deberá
mostrar un error.
El
estado
del
ambiente
cambia
a
POBLACION_CLASIFICADA
Se muestra un grafico de barras con la clasificación
realizada.
Notas
Nombre
Precondiciones
Secuencia principal
Alternativas
Errores
Poscondiciones
Notas
Nombre
Precondiciones
Secuencia principal
Alternativas
Errores
Poscondiciones
Parar clasificación
La clasificación debe estar en proceso
1. El usuario hace click en el botón Cancelar
Clasificación.
2. El sistema cancela la clasificación en curso.
No hay
Setear valores por Default
Se debe haber elegido el modo de estudio de la población
de Clasificador
1. El usuario hace click en el botón Valores por Default
2. El sistema completa los valores de las características
del clasificador.
No hay
No hay
Los valores de las características del clasificador se
completan con valores.
Notas
Nombre
Precondiciones
Secuencia principal
Alternativas
Generar Archivo de Clasificación
Se debe haber elegido el modo de estudio de la población
de Clasificador
1. El usuario hace click en el botón Generar Archivo de
la clasificación
2. Si se tildo la opción Todos los atributos, entonces el
sistema muestra una pantalla para seleccionar el
archivo a generar.
3. El usuario selecciona el nombre del archivo a generar.
4. El sistema guarda el archivo.
Si se tildó la opción Definir filtro, entonces se
pasa al caso de uso Definir Filtro.
El usuario puede optar por cancelar la pantalla en
99
Errores
Poscondiciones
lugar de elegir un archivo.
Si el archivo elegido ya existe, el sistema mostrará
un mensaje con esa advertencia, dándole la opción de
guardar o cancelar.
1.1. Si el estado del ambiente es menor que
POBLACION_CLASIFICADA, entonces el sistema
deberá mostrar un mensaje informando de esto.
Se genera el archivo de la clasificación con todos los
atributos.
Notas
Nombre
Precondiciones
Secuencia principal
Alternativas
Errores
Poscondiciones
Notas
5.5.3. Selector
SELECTOR
100
Definir Filtro
Se tildó la opción de Definir Filtro.
1. El usuario hace click en el botón Generar archivo de
la Clasificación.
2. El sistema muestra una pantalla con todos los
atributos que caracterizan a la población.
3. El usuario selecciona aquellos atributos que desee y
aprieta el botón Aceptar.
4. El sistema guarda estos atributos para el momento de
generar el archivo.
5. El sistema muestra una pantalla para seleccionar el
archivo a generar.
6. El usuario selecciona el nombre del archivo a generar.
7. El sistema guarda el archivo, generándolo solo con los
atributos seleccionados.
3.1. El usuario puede optar por cancelar la pantalla en
lugar de elegir los atributos.
El usuario puede optar por cancelar la pantalla en lugar de
elegir un archivo.
5.2. Si el archivo elegido ya existe, el sistema mostrará un
mensaje con esa advertencia, dándole la opción de
guardar o cancelar.
1.1. Si el estado del ambiente es menor que
POBLACION_CLASIFICADA, entonces el sistema
deberá mostrar un mensaje informando de esto.
Se genera el archivo de la clasificación con los atributos
seleccionados.
Casos de Uso bajo Prueba
Nombre:
Precondiciones
Secuencia principal
Alternativas
Errores
Poscondiciones
Seleccionar Atributo CLASE de Selector
Se debe haber elegido el modo de estudio de la población
de Selector.
1. El sistema deberá mostrar en la grilla, todos los
atributos que en la pantalla Población se hayan
seleccionado.
2. El usuario selecciona uno de los atributos a considerar
para que sea el atributo CLASE para el árbol de decisión a
generarse.
2.1. El usuario podrá elegir solo un atributo.
2.1. El sistema guarda el atributo seleccionado como
atributo CLASE tanto del selector como del ponderador.
Notas
Nombre
Precondiciones
Secuencia principal
Alternativas
Errores
Poscondiciones
Generar árbol de decisión
No hay
1. El usuario hace click en el botón Generar Árbol de
decisión.
2. El sistema comienza a generar el árbol de decisión.
3. El sistema informa de que el árbol de decisión ya fue
generado.
No hay
1.1. Si el estado del ambiente es menor a Población
Clasificada, el sistema debería mostrar un error
informando de esto.
1.2. Si no se setearon las características del selector, el
sistema deberá mostrar un mensaje informando de
esto.
1.3. Si se eligió como modo de estudio de la población
como Selector, y no se seleccionó el atributo CLASE,
el sistema deberá mostrar un error informando de
esto.
El
estado
del
ambiente
cambia
a
REGLAS_SELECCIONADAS.
Notas
Nombre
Precondiciones
Secuencia principal
Generar archivo de Reglas
No hay
1. El usuario hace click en el botón Generar Archivo de
Reglas
2. Si se tildo la opción Todas las reglas, entonces el
sistema muestra una pantalla para seleccionar el
101
Alternativas
Errores
Poscondiciones
archivo a generar.
3. El usuario selecciona el nombre del archivo a generar.
4. El sistema guarda el archivo.
Si se tildó la opción Definir filtro, entonces se pasa
al caso de uso Definir Filtro.
El usuario puede optar por cancelar la pantalla en
lugar de elegir un archivo.
Si el archivo elegido ya existe, el sistema mostrará
un mensaje con esa advertencia, dándole la opción de
guardar o cancelar.
1.1. Si el estado del ambiente es menor que
REGLAS_SELECCIONADAS, entonces el sistema deberá
mostrar un mensaje informando de esto.
Se genera el archivo con todas las reglas de producción
generadas por el árbol de decisión.
Notas
Nombre
Precondiciones
Secuencia principal
Alternativas
Errores
Poscondiciones
102
Definir filtro
Se tildó la opción de Definir Filtro.
1. El usuario hace click en el botón Generar archivo de la
Clasificación.
2. El sistema muestra una pantalla con dos filtros para
seleccionar. Por un lado la clase a la que determina la
reglas y por otro lado el porcentaje de confianza de la
reglas.
3. El usuario setea los filtros como desee y aprieta el
botón Aceptar.
4. El sistema guarda estos filtros para el momento de
generar el archivo.
8. El sistema muestra una pantalla para seleccionar el
archivo a generar.
9. El usuario selecciona el nombre del archivo a generar.
10. El sistema guarda el archivo, generándolo de acuerdo a
los filtros seleccionados.
3.1. El usuario puede optar por cancelar la pantalla en
lugar de setear los filtros.
El usuario puede optar por cancelar la pantalla en lugar
de elegir un archivo.
5.2. Si el archivo elegido ya existe, el sistema mostrará un
mensaje con esa advertencia, dándole la opción de guardar
o cancelar.
1.1. Si el estado del ambiente es menor que
REGLAS_SELECCIONADAS, entonces el sistema deberá
mostrar un mensaje informando de esto.
Se genera el archivo de las reglas generadas por el árbol de
decisión de acuerdo a los filtros seleccionados.
Notas
5.5.4. Ponderador
PONDERADOR
Casos de Uso bajo Prueba
Nombre:
Precondiciones
Secuencia principal
Alternativas
Errores
Poscondiciones
Seleccionar Atributo CLASE de Ponderador
Se debe haber elegido el modo de estudio de la población
de Ponderador.
1. El sistema deberá mostrar en la grilla, todos los
atributos que en la pantalla Población se hayan
seleccionado.
2. El usuario selecciona uno de los atributos a considerar
para que sea el atributo CLASE para la red Bayesiana a
generarse.
2.1. El usuario podrá elegir solo un atributo.
2.1. El sistema guarda el atributo seleccionado como
atributo CLASE tanto del ponderador.
Notas
Nombre
Precondiciones
Secuencia principal
Alternativas
Errores
Poscondiciones
Ponderar Reglas
No hay
1. El usuario hace click en el botón Generar red
Bayesiana.
2. El sistema comienza a generar la red Bayesiana.
3. El sistema muestra la red Bayesiana generada.
No hay
1.1.Si el estado del ambiente es menor a
REGLAS_SELECCIONADAS, el sistema debería
mostrar un error informando de esto.
1.2.Si no se setearon las características del ponderador, el
sistema deberá mostrar un mensaje informando de
esto.
1.3.Si se eligió como modo de estudio de la población
como Ponderador, y no se seleccionó el atributo
CLASE, el sistema deberá mostrar un error
informando de esto.
El
estado
del
ambiente
cambia
a
RED_BAYESIANA_GENERADA.
Notas
103
Nombre
Precondiciones
Secuencia principal
Alternativas
Errores
Poscondiciones
Generar archivo de Reglas Ponderadas
No hay
1. El usuario hace click en el botón Generar Archivo de
Reglas
2. Si se tildo la opción Todas las reglas, entonces el
sistema muestra una pantalla para seleccionar el
archivo a generar.
3. El usuario selecciona el nombre del archivo a generar.
4. El sistema guarda el archivo.
Si se tildó la opción Definir Porcentaje, entonces se
pasa al caso de uso Definir Porcentaje.
El usuario puede optar por cancelar la pantalla en
lugar de elegir un archivo.
Si el archivo elegido ya existe, el sistema mostrará
un mensaje con esa advertencia, dándole la opción de
guardar o cancelar.
1.1. Si el estado del ambiente es menor que
RED_BAYESIANA_GENERADA, entonces el sistema
deberá mostrar un mensaje informando de esto.
Se genera el archivo con todas las reglas de producción
generadas por el árbol de decisión ponderadas.
Notas
Nombre
Precondiciones
Secuencia principal
Alternativas
104
Definir porcentaje
Se tildó la opción de Definir Filtro.
1. El usuario hace click en el botón Generar Archivo de
Reglas.
2. El sistema muestra una pantalla con el filtro de
probabilidad de ocurrencia de la regla.
3. El usuario setea el filtro como desee y aprieta el botón
Aceptar.
4. El sistema guarda ese filtro para el momento de
generar el archivo.
11. El sistema muestra una pantalla para seleccionar el
archivo a generar.
12. El usuario selecciona el nombre del archivo a generar.
13. El sistema guarda el archivo, generándolo de acuerdo
al filtro seleccionado.
3.1. El usuario puede optar por cancelar la pantalla en
lugar de setear los filtros.
5.1.El usuario puede optar por cancelar la pantalla en lugar
de elegir un archivo.
5.2. Si el archivo elegido ya existe, el sistema mostrará un
mensaje con esa advertencia, dándole la opción de guardar
o cancelar.
Errores
Poscondiciones
1.1. Si el estado del ambiente es menor que
RED_BAYESIANA_GENERADA, entonces el sistema
deberá mostrar un mensaje informando de esto.
Se genera el archivo de las reglas ponderadas generadas
por el árbol de decisión de acuerdo al filtro seleccionado.
Notas
5.5.5. El menú
EL MENU
Casos de Uso bajo Prueba
Nombre:
Precondiciones
Secuencia principal
Alternativas
Errores
Poscondiciones
Consultar Estado del ambiente
No hay
1. El usuario hace click en el menú Ambiente->Estado
del ambiente.
No hay
No hay
1.1. El sistema muestra un mensaje con el estado actual
del ambiente.
Notas
Nombre
Precondiciones
Secuencia principal
Alternativas
Errores
Poscondiciones
Notas
Nombre
Precondiciones
Secuencia principal
Salir
No hay
1. El usuario hace click en el menú Ambiente->Salir.
2. Se muestra un mensaje, para que el usuario
seleccione si quiere o no salir del sistema.
3. El usuario acepta salir del sistema
3.1. El usuario no acepta salir del ambiente.
No hay
No hay
Convertir Comma Separated a XML
No hay
1. El usuario hace click en el menú Población>Convertir a XML->Comma Separated a XML
2. El sistema muestra una pantalla para que el usuario
seleccione el archivo a convertir.
105
Alternativas
Errores
Poscondiciones
3. El usuario selecciona el nombre del archivo a
convertir.
4. El sistema convierte el archivo, generando un
archivo con el mismo nombre que el archivo
origen, añadiéndole en el nombre .xml.
El usuario puede optar por cancelar la pantalla en
lugar de elegir un archivo.
3.1 Si el archivo origen no existe, se muestra un
mensaje de error.
Se genera el archivo con todos los registros del archivo
origen, pero en formato XML.
Notas
Nombre
Precondiciones
Secuencia principal
Alternativas
Errores
Poscondiciones
Convertir Excel a XML
No hay
1. El usuario hace click en el menú Población>Convertir a XML->Comma Separated a XML
2. El sistema muestra una pantalla para que el usuario
seleccione el archivo a convertir.
3. El usuario selecciona el nombre del archivo a
convertir.
4. El sistema convierte el archivo, generando un
archivo con el mismo nombre que el archivo origen,
añadiéndole en el nombre .xml.
3.1. El usuario puede optar por cancelar la pantalla en
lugar de elegir un archivo.
Si el archivo origen no existe, se muestra un
mensaje de error.
Si el archivo no es un archivo de formato Excel, se
muestra un error.
Si el archivo no contiene una hoja con el nombre
Población, se muestra un error
Se genera el archivo con todos los registros del archivo
origen, pero en formato XML.
Notas
Nombre
Precondiciones
Secuencia principal
106
Convertir Tab Delimiter a XML
No hay
1. El usuario hace click en el menú Población>Convertir a XML->Tab delimiter a XML
2. El sistema muestra una pantalla para que el usuario
seleccione el archivo a convertir.
3. El usuario selecciona el nombre del archivo a
convertir.
4. El sistema convierte el archivo, generando un
archivo con el mismo nombre que el archivo origen,
Alternativas
Errores
Poscondiciones
añadiéndole en el nombre .xml.
3.1. El usuario puede optar por cancelar la pantalla en
lugar de elegir un archivo.
3.1 Si el archivo origen no existe, se muestra un
mensaje de error.
Se genera el archivo con todos los registros del archivo
origen, pero en formato XML.
Notas
Nombre:
Precondiciones
Secuencia principal
Alternativas
Errores
Poscondiciones
Cargar Población
No hay
1. El usuario hace click en el menú Población->
Cargar Población.
2. El sistema muestra la pantalla para elegir el
archivo.
3. El usuario selecciona un archivo.
4. El sistema carga el archivo en el ambiente.
El usuario puede optar por cancelar la pantalla en
lugar de elegir un archivo.
3.1 El sistema no encuentra el archivo seleccionado.
3.2 El sistema encuentra un error al momento de abrir
el archivo.
3.3 El sistema no encuentra el archivo esquema al
momento de abrir el archivo población.
El
estado
del
ambiente
cambia
a
POBLACION_CARGADA.
Notas
Nombre
Precondiciones
Secuencia principal
Alternativas
Errores
Poscondiciones
Validar Población
No hay
1. El usuario hace click en el menú Población->
Validar Población.
2. El sistema valida la población, de acuerdo a la
estructura y características del archivo esquema.
3. El sistema muestra un mensaje de que la población
es válida.
1.1 Si el estado del ambiente es menor que
POBLACION_CARGADA, el sistema deberá
mostrar un error informando de eso.
1.2 La población no es valida, por lo que el sistema
muestra un mensaje informando el motivo por el
cual la población no es valida.
El
estado
del
ambiente
cambia
a
POBLACION_VALIDADA.
107
Se llena la grilla de Seleccionar Atributos.
Se completa el árbol de Estructura de la Población.
Notas
Nombre
Precondiciones
Secuencia principal
Alternativas
Errores
Poscondiciones
Guardar gráfico
La pantalla en la que se encuentra el ambiente deberá
ser: Clasificador, Selector o Ponderador.
1. El usuario hace click en el menú Grafico-> Guardar
grafico.
2. El sistema muestra la pantalla para elegir el
archivo.
3. El usuario selecciona un archivo.
3.1 El usuario puede optar por cancelar la pantalla en
lugar de elegir un archivo.
El sistema genera un archivo jpg con el grafico de la
pantalla en la que se encuentre.
Notas
Nombre
Precondiciones
Secuencia principal
Alternativas
Errores
Poscondiciones
Notas
Nombre
Precondiciones
Secuencia principal
Alternativas
Errores
Poscondiciones
Notas
108
Acerca de…
No hay
1. El usuario hace click en el menú Ayuda->Acerca
de…
No hay
No hay
Se muestra la pantalla de Acerca de…
Temas de ayuda
No hay
1. El usuario hace click en el menú Ayuda->Temas de
ayuda.
No hay
No hay
Se muestra la pantalla de ayuda de la aplicación
6. Comparación experimental con otros ambientes
En este capítulo se realiza una comparación entre los resultados experimentales
obtenidos con el ambiente desarrollado y otros ambientes existentes, respecto a cada
una de las funciones que el ambiente desarrollado provee. Se comienza dando una
introducción de las bases de datos utilizados para realizar la comparación (Sección 6.1).
Luego se detalla la comparación realizada respecto a la clasificación de instancias
(Sección 6.2), continuando por un detalle de la comparación en la inducción de reglas
(Sección 6.3) y finalizando con la descripción de la comparación entre los métodos de
ponderación de reglas (Sección 6.4).
6.1. Introducción
Se realizó una experimentación con dos bases de datos como casos de estudio, y
se compararon los resultados para cada una de las funciones que provee nuestro
ambiente integrado con otros ambientes.
Para realizar esta experimentación, se utilizaron bases de datos obtenidas del
UCI Machine Learning Repository del Departamento de Información y Ciencias de la
Computación de la Universidad de California.
A continuación, en la tabla 2, se resumen las características de la base de datos
utilizadas.
Base de
datos
Atributos
Iris
5
Zoo
18
Instancias
Descripción de la base de datos
Una base de datos que contiene 4 atributos
numéricos y un atributo nominal que
150 determina la clase de la instancia.
Una base de datos simple que contiene 16
atributos booleanos y uno numérico que
definen diferentes animales. El atributo
101 “tipo” define el atributo clase.
Tabla 2. Bases de datos utilizadas
109
6.2. Clasificador de instancias
Se realizó la clasificación de instancias de cada una de las poblaciones descriptas
en la Tabla 2. Se utilizó el ambiente Weka [Weka] para realizar la comparación.
A continuación se detalla un resumen de las experimentaciones realizadas y de
los resultados obtenidos.
Iris
Se realizó una clasificación de esta base de datos, pidiéndole a ambos ambientes
que agrupasen los datos en 3 diferentes grupos.
En la figura 22 se observa la comparación de la clasificación.
Clasificación - A.I. vs Weka
70
60
cantidad
50
40
A.I.
30
Weka
20
10
0
1
2
3
A.I.
38
62
50
Weka
36
64
50
clase
Figura 22. Clasificación de instancias. Iris
Instancias clasificadas en forma exacta por ambos ambientes = 97.20%
110
Zoo
Se realizó una clasificación de esta base de datos, pidiéndole a ambos ambientes
que agrupasen los datos en 6 diferentes grupos.
En la figura 23 se observa la comparación de la clasificación.
Clasificación - A.I. vs Weka
40
35
30
cantidad
25
AI
20
Weka
15
10
5
0
1
2
3
4
5
6
AI
21
13
16
10
6
35
Weka
21
21
7
11
4
37
clase
Figura 23. Clasificación de instancias. Zoo
Instancias clasificadas en forma exacta por ambos ambientes = 76.3%
6.3. Inducción de reglas
Se utilizó el ambiente Sipina [Sipina] para realizar la comparación con nuestro
ambiente integrado, respecto a la inducción de reglas.
Iris
Para esta comparación, lo primero que se hizo fue obtener el total de reglas para
cada uno de los dos ambientes. Con esta base de datos, nuestro ambiente integrado
generó más reglas y reglas más especificas que el ambiente Sipina [Sipina]. Se
111
utilizaron entonces las reglas obtenidas por nuestro ambiente integrado para obtener la
confianza de cada de ellas en ambos ambientes.
En la figura 24 se observa un gráfico donde se muestra la relación entre la
confianza de cada una de esas reglas en ambos ambientes.
Debido a que las reglas obtenidas en nuestro ambiente integrado eran reglas más
especificas, se observa un mejor comportamiento de este ambiente en cuanto al
porcentaje de confianza de cada regla inducida.
Inducción - Confianza de Reglas
A.I. vs Sipina
120
% confianza
100
80
A.I.
60
Sipina
40
20
0
1
2
3
4
5
6
7
8
regla
Figura 24. Inducción de reglas. Gráfico comparativo - Iris
Las reglas obtenidas con cada uno de los ambientes se detallan a continuación.
Ambiente Integrado
REGLA
SI petallength <=3.95
Y sepalwidth <=3.2
Y petalwidth =1.3
Y sepallength <=6.1
ENTONCES clase = Iris-setosa
SI petallength <=3.95
Y sepalwidth <=3.2
Y petalwidth >1.3
ENTONCES clase = Iris-versicolor
SI petallength <=3.95
Y sepalwidth >3.2
ENTONCES clase = Iris-setosa
SI petallength >3.95
Y petalwidth <=1.3
112
Sipina
CONF.
REGLA
CONF.
64%
SI petallength <=3.95
Y sepalwidth <=3.2
ENTONCES clase = Iris-setosa
62%
100%
SI petallength <=3.95
Y sepalwidth <=3.2
ENTONCES clase = Iris-versicolor
38%
100%
SI petallength <=3.95
Y sepalwidth >3.2
ENTONCES clase = Iris-setosa
SI petallength >3.95
Y petalwidth <=1.3
100%
100%
100%
ENTONCES clase = Iris-versicolor
SI petallength >3.95
Y petalwidth >1.3
Y sepallength <=6.1
Y sepalwidth <=3.2
ENTONCES clase = Iris-virginica
SI petallength >3.95
Y petalwidth >1.3
Y sepallength <=6.1
Y sepalwidth >3.2
ENTONCES clase = Iris-versicolor
SI petallength >3.95
Y petalwidth >1.3
Y sepallength >6.1
Y sepalwidth <=3.2
ENTONCES clase = Iris-virginica
SI petallength >3.95
Y petalwidth >1.3
Y sepallength >6.1
Y sepalwidth >3.2
ENTONCES clase = Iris-virginica
58%
ENTONCES clase = Iris-versicolor
SI petallength >3.95
Y petalwidth >1.3
Y sepallength <=6.1
ENTONCES clase = Iris-virginica
55%
100%
SI petallength >3.95
Y petalwidth >1.3
Y sepallength <=6.1
ENTONCES clase = Iris-virsicolor
45%
74%
SI petallength >3.95
Y petalwidth >1.3
Y sepallength >6.1
ENTONCES clase = Iris-virginica
76%
89%
SI petallength >3.95
Y petalwidth >1.3
Y sepallength >6.1
ENTONCES clase = Iris-virginica
76%
Zoo
Se obtuvo el total de reglas para cada uno de los dos ambientes. Con esta base de
datos, nuestro ambiente integrado generó más reglas de inducción que el ambiente
Sipina [Sipina], y al igual que lo ocurrido con la base de datos Iris, las reglas generadas
por nuestro ambiente integrado fueron reglas más específicas. Se utilizaron las reglas
obtenidas por nuestro ambiente integrado para obtener la confianza de cada una de esas
reglas en ambos ambientes.
En la figura 25 se observa un gráfico donde se muestra la relación entre la
confianza de cada una de esas reglas en ambos ambientes.
113
Inducción - Confianza de Reglas
A.I. vs Sipina
120
% confianza
100
80
A.I.
60
Sipina
40
20
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
reglas
Figura 25. Inducción de reglas. Gráfico comparativo - Zoo
Nuevamente se observa un mejor comportamiento de nuestro ambiente integrado
en cuanto al porcentaje de confianza de cada regla inducida.
Las reglas obtenidas con cada uno de los ambientes se detallan a continuación.
Ambiente Integrado
Sipina
REGLA
CONF.
REGLA
CONF.
SI leche = 0
Y aletas = 0
Y plumas = 0
Y vertebrado = 0
Y aereo = 0
Y depredador = 0
Y patas = 0
ENTONCES tipo = 7
100%
SI leche = 0
Y plumas = 0
Y aletas = 0
Y vertebrado = 0
Y aereo = 0
ENTONCES tipo = 7
83%
SI leche = 0
Y aletas = 0
Y plumas = 0
Y vertebrado = 0
Y aereo = 0
Y depredador = 0
Y patas = 2
ENTONCES tipo = 7
100%
SI leche = 0
Y plumas = 0
Y aletas = 0
Y vertebrado = 0
Y aereo = 0
ENTONCES tipo = 7
83%
SI leche = 0
Y aletas = 0
Y plumas = 0
Y vertebrado = 0
Y aereo = 0
Y depredador = 0
Y patas = 4
ENTONCES tipo = 7
100%
SI leche = 0
Y plumas = 0
Y aletas = 0
Y vertebrado = 0
Y aereo = 0
ENTONCES tipo = 7
83%
SI leche = 0
Y aletas = 0
100%
SI leche = 0
Y plumas = 0
83%
114
Y plumas = 0
Y vertebrado = 0
Y aereo = 0
Y depredador = 0
Y patas = 5
ENTONCES tipo = 7
Y aletas = 0
Y vertebrado = 0
Y aereo = 0
ENTONCES tipo = 7
SI leche = 0
Y aletas = 0
Y plumas = 0
Y vertebrado = 0
Y aereo = 0
Y depredador = 0
Y patas = 6
ENTONCES tipo = 6
100%
SI leche = 0
Y plumas = 0
Y aletas = 0
Y vertebrado = 0
Y aereo = 0
ENTONCES tipo = 6
17%
SI leche = 0
Y aletas = 0
Y plumas = 0
Y vertebrado = 0
Y aereo = 0
Y depredador = 0
Y patas = 8
ENTONCES tipo = 7
100%
SI leche = 0
Y plumas = 0
Y aletas = 0
Y vertebrado = 0
Y aereo = 0
ENTONCES tipo = 7
83%
SI leche = 0
Y aletas = 0
Y plumas = 0
Y vertebrado = 0
Y aereo = 0
Y depredador = 1
ENTONCES tipo = 7
100%
SI leche = 0
Y plumas = 0
Y aletas = 0
Y vertebrado = 0
Y aereo = 0
ENTONCES tipo = 7
83%
SI leche = 0
Y aletas = 0
Y plumas = 0
Y vertebrado = 0
Y aereo = 1
ENTONCES tipo = 6
100%
SI leche = 0
Y plumas = 0
Y aletas = 0
Y vertebrado = 0
Y aereo = 1
ENTONCES tipo = 6
100%
SI leche = 0
Y aletas = 0
Y plumas = 0
Y vertebrado = 1
Y cola = 0
ENTONCES tipo = 5
100%
SI leche = 0
Y plumas = 0
Y aletas = 0
Y vertebrado = 1
ENTONCES tipo = 5
44%
SI leche = 0
Y aletas = 0
Y plumas = 0
Y vertebrado = 1
Y cola = 1
Y acuatico = 0
ENTONCES tipo = 3
100%
SI leche = 0
Y plumas = 0
Y aletas = 0
Y vertebrado = 1
ENTONCES tipo = 3
56%
SI leche = 0
Y aletas = 0
Y plumas = 0
100%
SI leche = 0
Y plumas = 0
Y aletas = 0
56%
115
Y vertebrado = 1
Y cola = 1
Y acuatico = 1
Y huevos = 0
ENTONCES tipo = 3
Y vertebrado = 1
ENTONCES tipo = 3
SI leche = 0
Y aletas = 0
Y plumas = 0
Y vertebrado = 1
Y cola = 1
Y acuatico = 1
Y huevos = 1
ENTONCES tipo = 5
100%
SI leche = 0
Y plumas = 0
Y aletas = 0
Y vertebrado = 1
ENTONCES tipo = 3
44%
SI leche = 0
Y aletas = 0
Y plumas = 1
ENTONCES tipo = 2
100%
SI leche = 0
Y plumas = 1
ENTONCES tipo = 1
100%
SI leche = 0
Y plumas = 0
Y aletas = 1
ENTONCES tipo = 4
100%
SI leche = 1
ENTONCES tipo = 1
100%
SI leche = 0
Y aletas = 1
ENTONCES tipo = 4
SI leche = 1
ENTONCES tipo = 1
100%
6.4. Ponderación de reglas
Se utilizó el ambiente Elvira [Elvira] para realizar la comparación con nuestro
ambiente integrado.
Se tomaron todas las reglas generadas por el árbol de decisión para cada una de
las bases de datos en estudio, y se calculó el porcentaje de ocurrencia de cada una de
esas reglas en ambos ambientes de comparación.
A continuación se detalla en forma gráfica, en las figuras 26 y 27, la
comparación entre los resultados de la probabilidad de ocurrencia para cada una de las
reglas inducidas de ambos ambientes.
116
Iris
Ponderación - A.I. vs Elvira
% ocurrencia
120
100
80
A.I.
60
Elvira
40
20
0
1
2
3
4
5
6
7
8
9
regla
Figura 26. Ponderación de Reglas. Gráfico comparativo - Iris
Zoo
Ponderación - A.I. vs Elvira
% ocurrencia
120
100
80
A.I.
60
Elvira
40
20
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
regla
Figura 27. Ponderación de Reglas. Gráfico comparativo - Zoo
Los resultados obtenidos para las dos bases de datos comparadas muestran que
el comportamiento de los dos ambientes es prácticamente el mismo, obteniéndose un
valor muy parecido para la probabilidad de ocurrencia de cada una de las reglas.
117
118
7. Conclusiones
En base a los resultados experimentales obtenidos y a las comparaciones
realizadas con otros ambientes de minería de datos, podemos concluir que el ambiente
integrado desarrollado mejora, en varios aspectos, a otros ambientes utilizados como
comparación. En la inducción de reglas, por ejemplo, se observa un mejor
comportamiento del ambiente en relación a Sipina [Sipina].
El aspecto más importante del ambiente integrado desarrollado es que presenta
en su funcionalidad la integración de las funciones de clasificación, inducción y
ponderación de reglas. Ninguno de los ambientes detallados en el capítulo 1 logra
integrar estas tres funciones. Es más, hasta el momento no existe siquiera un ambiente
que integre, junto con alguna otra función, la ponderación de reglas utilizando métodos
probabilísticos como lo son las redes bayesianas.
Estas características hacen que el ambiente provea una funcionalidad más
completa e integrada para el estudio de las características de una población de
individuos en comparación a los ambientes de minería de datos existentes, que, de
acuerdo a las necesidades del usuario, podrían ser:
•
Clusterizar o agrupar una población en la cantidad de clusters que uno
decida, decidiendo también sobre cada uno de los parámetros utilizados por
el algoritmo de agrupamiento (ratio inicial y final de aprendizaje, sigma de
gauss, etc.)
•
Clusterizar una población e inmediatamente obtener o inducir las reglas de
producción que dieron como origen a la clasificación
•
Clusterizar una población y obtener la probabilidad de ocurrencia de cada
regla de producción inducida
119
•
Si se tiene una población ya clasificada, obtener o inducir las reglas de
producción que dan como origen a la clasificación
•
Si se tiene una población ya clasificada, obtener la probabilidad de
ocurrencia de cada regla de producción
•
Permite al usuario la elección de los atributos que se quieren considerar, y
sólo utilizar esos atributos en el estudio de las características de la población
•
El ambiente permite la generación de varios archivo de salida, como ser:
o Generar el archivo de la clasificación realizada, con la posibilidad de
seleccionar que atributos mostrar en ese archivo
o Generar un archivo con las reglas inducidas, teniendo la posibilidad de
seleccionar reglas pertenecientes a clases específicas
o Generar un informe de aquellas reglas inducidas con una probabilidad de
ocurrencia mayor a cierto valor deseado
o Generar un informe de probabilidades condicionales, especificando
previamente las observaciones deseadas (probabilidades a priori) en la
red bayesiana
o Generar archivos con los gráficos de la clasificación, del árbol de
decisión, o de la red bayesiana generados, en formato JPG
•
Utiliza un estándar altamente aceptado en el mercado, como lo es el Standard
XML, para la representación de la población. Este aspecto es muy
importante, ya que el ambiente se independiza de tener que lidiar o de tener
que definir cuestiones que el propio estándar ya resuelve.
120
Bibliografía
[AC2] ISoft. AC2. Web: http://www.alice-soft.com/html/prod_ac2.htm
[AnswerTree] SPSS. AnswerTree. Web: http://www.spss.com/la/productos/answertree/answer.htm
[Bazell D. y Aha D., 2001]. Bazell D. y Aha D. Ensembles of Classifiers for
Morphological Galaxy Classification, Astrophysical Journal, 548, 219-223.
[Bishop, 1995] Bishop C. Neural Networks for Pattern Recognition. Clarendon Press,
Oxford.
[Bouckaert, 1994]. Properties of Bayesian network learning algorithms. In R. L. de
Mantarás and Poole (Eds.), Proceedings of the Tenth Conference on Uncertainty in
Artificial Intelligence, 102-109. San Francisco, CA.
[Box, 1970] Box G.E., Jenkins G.M. Time Series Analisys. Holden-Day. San Francisco.
[Breiman L, 1984] Breiman L, Friedman J, Olshen R y Stone C. Classification and
regression trees. Belmon, CA: Wadsworth International Group.
[CART] Salford Systems. CART. Web: http://www.salford-systems.com/cart.php
[Chatfield, 1989] Chatfield C. The Analysis of Time Series – An Introduction. Chapman
and Hall. London. 4th Edition.
[Chow, C. y Lui, C., 1968]. Chow, C. y Liu. Approximating Discrete Probability
Distributions with Dependence Trees. IEEE Transactions on Information Theory, vol
14, 462- 467.
121
[Clementine] SPSS. Clementine. Web: http://www.spss.com/clementine/
[Connor, 1992] Connor J., Atlas L.E., Martin D.R. Recurrent Networks and NARMA
Modeling in Moody J.E.
[Dorffner, 1996] Geog Dorffner. Neural Networks for Time Series Processing. Dept of
Medical Cybernetics and Artificial Intelligence. University of Vienna and Austrian
Research Institute for Artificial Intelligence
[Duda, R. O. y P. E. Hart., 1973]. Duda, R. O. y P. E. Hart. Pattern Classification and
Scene Analysis. New York: John Wiley & Sons.
[Elvira] Proyecto Elvira, Universidad de Granada. Web: http://www.ia.uned.es/~elvira/
[Friedman, N., Geiger, D. y Goldszmidt, M., 1997]. Friedman, N., Geiger, D. y
Goldszmidt, M. Bayesian Network Classifiers. Machine Learning, 29,131-163.
[Fritz, 1996] Walter Fritz. Sistemas Inteligentes y sus Sociedades. New Horizons Press.
[Haykin, 1994] Simon Haykin. Neural Networks. A Comprehensive Foundation.
Prentice Hall, 1994.
[Hertz, 1991] Hertz J.A., Palmer R.G., Krogh A.S. Introduction to the Theory of Neural
Computation. Addison-Wesley. Redwood City, C.A.
[Kim S., Seo H. y Rim H., 2003]. Kim S., Seo H. y Rim H. Poisson Naive Bayes for
Text Classification with Feature Weighting. International Workshop on Information
Retrieval with Asian Languages.
[Kohonen, 1982] Teuvo Kohonen. Self-Organizing Maps. Springer
122
[Krose y otros, 1993] Ben J.A. Kröse y P. Patrik van der Smagt. An introduction to
neural networks, 1993.
[Lam, 1994] Lam, W. and Bacchus, F. (1994). Learning Bayesian Belief Networks. An
Approach Based on the MDL Principle. Computational Intelligence, 10, 269-293.
[Morgan, 1991] Morgan D.P., Scofield C.L. Neural Networks and Speech Processing.
Kluwer Academic Publisher. Boston.
[Pearl, 1988] Pearl, J. Probabilistic reasoning in intelligent systems: networks of
plausible inference. San Mateo, California: Morgan Kaufmann.
[Quinlan, 1986] J. Ross Quinlan. Induction of desition trees. Machine Learning.
[Quinlan, 1987] J. Ross Quinlan. Rule induction with statical data – a comparison
with multiple regression. Journal of the Operational Research Society, 38:347-352,
1987.
[Quinlan, 1993] J. Ross Quinlan. C4.5: Programs for Machine Learning. Morgan
Kaufmann, San Mateo, CA., USA, 1993.
[Rissanen, J. , 1989] Rissanen, J. (1989). Stochastic complexity in statistical inquiry.
River Edge, NJ: World Scientific
[Sahami, M., Dumais, S., Heckerman, D. y Horvitz E., 1998]. Sahami, M., Dumais,
S., Heckerman, D. y Horvitz E. A Bayesian Approach to Filtering Junk E-Mail. In
Learning for Text Categorization, Papers from the 1998 Workshop. AAAI Technical
Report WS-98-05.
123
[Schulz, G., Britos, P., García-Martínez, R., 2008]. Schulz, G., Fernández, E.,
Merlino, H., Rodríguez, D., Britos, P., García-Martínez, R. Un Ambiente de Explotación
de Información basado en la Integración de Agrupamiento, Inducción y Ponderación
Bayesiana de Reglas. Jornadas Iberoamericanas de Ingeniería del Software e Ingeniería
del Conocimiento 2008. Web: https://www.jiisic08.espol.edu.ec (Aceptado)
[Schwarz, 1978] Schwarz, G. (1978). Estimating the dimension of a model. Annals of
Statistics, 6, 461-464.
[Sebe N., Lew M., Cohen I., Gary A. y Huang T., 2002]. Sebe N., Lew M., Cohen I.,
Gary A. y Huang T. Emotion Recognition Using Cauchy Naive Bayes Classifier.
International Conference on Pattern Recognition, Volume 1.
[Sipina]
University
of
Lyon.
Francia.
Sipina.
Web:
http://eric.univ-
lyon2.fr/~ricco/sipina.html.
[Suzuki, 1996] Suzuki, J. (1996). Learning Bayesian Belief Networks Based on the
Minimum Description Length Principle: An Efficient Algorithm Using the B&B
Technique. In Proceedings of the Thirteenth International Conference on Machine
Learning, 462-470.
[Ulbricht, 1995] Ulbricht C. State Formation in Neural Networks for Handling
Temporal Information. Institut fuer Med.Kyberneik u.AI. Univ. Vienna.
[Weka] The University of Waikato. Weka. Web: http://www.cs.waikato.ac.nz/ml/weka/
124
Descargar