un ambiente integrado de clasificacion,...
TRANSCRIPT
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
3
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
5
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.
7
Í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 ____________________________________________ 22 2.3.1. Inducción de árboles de decisión._________________________________________________ 22 2.3.2. La familia TDIDT de sistemas de aprendizaje_______________________________________ 23 2.3.3. Árboles de decisión____________________________________________________________ 25 2.3.4. La tarea de inducir ____________________________________________________________ 27 2.3.5. Tamaño correcto del árbol de decisión. Poda _______________________________________ 30 2.3.6. ID3_________________________________________________________________________ 31 2.3.7. Incorporando valores continuos __________________________________________________ 40
2.4. Redes Bayesianas y ponderación de reglas ___________________________________________ 41 2.4.1. Teorema de Bayes_____________________________________________________________ 41 2.4.2. Introducción a redes Bayesianas _________________________________________________ 44 2.4.3. Estimación de la estructura de la red Bayesiana _____________________________________ 46 2.4.4. Clasificadores basados en redes Bayesianas ________________________________________ 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 ____________________________________________________________________ 75 5.2.1. Población____________________________________________________________________ 76 5.2.2. Clasificador __________________________________________________________________ 78 5.2.3. Selector _____________________________________________________________________ 80 5.2.4. Ponderador __________________________________________________________________ 82 5.2.5. El menú _____________________________________________________________________ 85
8
5.3. Transición de estados en el ambiente ________________________________________________ 88
5.4. La interfase grafica_______________________________________________________________ 90 5.4.1. Población____________________________________________________________________ 90 5.4.2. Clasificador __________________________________________________________________ 91 5.4.3. Selector _____________________________________________________________________ 92 5.4.4. Ponderador __________________________________________________________________ 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
9
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
10
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.
11
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
12
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 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
13
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
14
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:
- lineal,
- lineal en forma de anillo,
- plana con retículo rectangular,
- plana con retículo hexagonal,
- toroidal
15
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.
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.
Figura 1. Ejemplos de vecindad en los mapas autoorganizado
16
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
17
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,
18
en la práctica es habitual considerar una zona fija en todo el proceso de
entrenamiento de la red.
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.
Figura 2. Posible evolución de la vecindad en una red de Kohonen
19
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
20
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
21
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.
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
Figura 6. Aprendizaje Inestable
22
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.
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,
Figura 7. Causa de la muerte de una neurona
23
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
24
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
25
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:
26
• 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.
27
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
Figura 8. Árbol de decisión
28
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.
29
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.
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
Nro Atributos Clase Temperatura Humedad Viento Tiempo
1 calor alta No soleado N 2 calor alta Si soleado N 3 calor alta No nublado P 4 templado alta No lluvioso P 5 Frío normal No lluvioso P 6 Frío normal Si lluvioso N 7 Frío normal Si nublado P 8 templado alta No soleado N 9 Frío normal No soleado P 10 templado normal No lluvioso P 11 templado normal Si soleado P 12 templado alta Si nublado P 13 Calor normal No nublado P
14 templado alta Si lluvioso N
Tabla 1. Un pequeño conjunto de entrenamiento.
30
del árbol más grande puede esperarse que sea más una explicación de dicho conjunto de
datos de entrenamiento.
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.
Figura 9. Un árbol de decisión simple.
31
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.
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
Figura 10. Ejemplo de poda
32
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 wOOO ,...,, 21 .
Cada objeto en C dará alguna de estas salidas para el test T, por lo que T produce una
partición },...,,{ 21 wCCC de C con iC conteniendo aquellos objetos que tengan la salida
iO . Esto se representa gráficamente por el árbol de la Figura 11. Si cada subconjunto
iC en esta figura pudiera ser reemplazado por un árbol de decisión para iC , el resultado
seria un árbol de decisión para todo C. Es más, mientras dos o más iC sean no vacíos,
cada iC 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á
33
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
np
n
np
n
np
p
np
ppnl
++−
++−= 22 loglog),(
Si el atributo A con valores },...,,{ 21 vAAA es utilizado para la raíz del árbol de
decisión, particionará a C en },...,,{ 21 vCCC donde iC contiene aquellos objetos en C
que tienen el valor iA para el atributo A. iC contiene ip objetos de la clase P y in
objetos de la clase N. La información requerida esperada para el subárbol para iC es
),( ii npl . La información requerida esperada para el árbol can A como raíz es la
obtenida como el promedio de pesos
Figura 11. Un árbol estructurado de los objetos en C
34
∑= +
+=
v
lii
ii nplnp
npAE
1
),()(
donde el peso para la i-esima ramificación es la proporción de objetos en C que
pertenecen a iC . 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 1C , 2C , …, vC .
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
bitspnl 940.0)14
5(log
14
5)
14
9(log
14
9),( 22 =−−=
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
21 =p 31 =n 971.0),( 11 =npl
y en forma similar
42 =p 02 =n 0),( 22 =npl
33 =p 23 =n 971.0),( 33 =npl
35
La información esperada requerida después de testear este atributo es
bitsnplnplnplTiempoE 694.0),(14
5),(
14
4),(
14
5)( 332211 =++=
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 (hill-
climbing).
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.
36
• 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.
37
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 Hh∈ está sobre ajustada a los ejemplos de entrenamiento, si existe una hipótesis alternativa
Hh∈' , 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.
38
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.
39
• 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:
40
• 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:
41
Temperatura 40 48 60 72 80 90
Clase No No Si Si Si No
¿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).
42
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 )/( BAP .
)(
)()/(
BP
BAPBAP
∩=
Análogamente, si se intercambia el orden de las variables:
)(
)()/(
AP
BAPABP
∩=
A partir de las dos fórmulas anteriores se obtiene:
)(
)/()()/(
BP
ABPAPBAP =
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 1A , 2A , …, nA 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 kA dado que ha ocurrido el evento “B” se
calculará por la siguiente fórmula:
43
)(
)()/(
BP
BAPBAP k
k
∩=
Por lo tanto, sustituyendo la fórmula de probabilidad condicional, se obtiene la
fórmula general para el Teorema de Bayes:
)/()(...)/()()/()(
)/()()/(
2211 nn
kkk ABPAPABPAPABPAP
ABPAPBAP
+++=
Donde:
El numerador es la probabilidad conjunta:
)/()()( BAPBPBAP =∩
El denominador es la probabilidad marginal de que ocurra el evento “B”
)/()(...)/()()/()()( 2211 nn ABPAPABPAPABPAPBP +++=
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
kjizyxP kji ,...,,),...,,( ∀ de manera que se cumple que:
∑ =kii
kji zyxP,...,,
1),...,,(
44
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 }{ iX que representan cada una de las variables del
modelo. Cada una de ellas tiene un conjunto exhaustivo de estados
}{ ix mutuamente excluyentes.
• Un conjunto de enlaces o arcos ),( ji XX 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 iX 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 )( iX y se indica de qué otros
vértices es una causa directa; a ese conjunto de vértices “causa del nodo iX ” se
lo denota como el conjunto ix
π y se lo llamará “padres de iX ”.
• Se une cada padre con sus hijos con flechas que parten de los padres y llegan a
los hijos.
45
• A cada variable iX se le asigna una matriz )/(ixixP π que estima la probabilidad
condicional de un evento ii xX = dada una combinación de valores de los ix
π .
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 ),...,,( 21 ixxxP .
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 ( )nXXX ,...,1= es
un par ( ))(, Θ= PGB , 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 iPa
y ipa para denotar, respectivamente, a los padres y las configuraciones de los padres
del nodo iX en G. La función de probabilidad conjunta representada por la estructura G
está dada por
∏=
==n
iiin PaXpXXpXp
11 )/(),...,()(
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
46
ordenado de nodos (X, Y). Un Padre iPa (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 )(),/()/()(),/(),...,( 553453252151 XpXXXpXXpXpXXXpXXp =
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
Figura 12. Red bayesiana.
47
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)(log)/(log BDpBpDBp +=
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.
)/(||||2
log),( DBLLB
NDBq −=
48
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.
||||2
log)/(),( B
NDBLLDBq −−=
2.4.4. Clasificadores basados en redes Bayesianas
49
Supongamos que nXX ,...,1 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
),...,(
)/,...,()(),...,/(
1
11
n
nn xxp
cCxxpcCPxxcCp
====
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
)/,...,( 1 CXXp n 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:
50
jixPyPxyP ijij ,)()(),( ∀=
Esto implica que:
jiyPxyP jij ,)()/( ∀=
jixPyxP iji ,)()/( ∀=
Este supuesto simplifica la representación de )/,...,( 1 CXXp n 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.
51
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 iX hacia jX implica que la
influencia de iX en la asignación de la variable de clase C también depende del valor de
jX . 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 nXX ,...,1 es una árbol si iPa contiene
exactamente un padre para todo iX excepto por una variable (esta variable es conocida
como raíz).
52
Una red con estructura de árbol puede describirse identificando los padres de
cada variable. Una función } }{{ nn ,...,0,...,1 a=π se dice que define un árbol sobre
nXX ,...,1 si existe exactamente un i tal que π (i) = 0 (llamada la raíz del árbol) y no
existe alguna secuencia kii ,...,1 tal que 1)( += jj iiπ para i≤ j<k y 1)( iik =π (es decir no
existen ciclos). Tal función define una red de árbol cuando }{ )(ii XPa π= si 0)( >iπ y
θ=iPa si 0)( =iπ .
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 nXX ,...,1 , construye un árbol tB que
maximiza )/( DBLL t . Este resultado puede ahora adaptarse para encontrar la estructura
TAN de máxima verosimilitud. Sea nXX ,...,1 un conjunto de variables y C la variable
de clase. Diremos que B es un modelo TAN si θ=cPa y existe una función π que
define un árbol sobre nXX ,...,1 tal que },{ )(ix XCPai π= si 0)( >iπ , y }{CPa
ix= si
0)( =iπ . El problema de optimización consiste en encontrar una función π que defina
Figura 14. La estructura de una red TAN
53
una estructura de árbol sobre nXX ,...,1 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
∑∑∑=c ji
jiji
xxji cxpcxp
cxxpcxxpCXXI
ji
))/()/(
)/,(log(),,()/;(
Informalmente hablando, esta función mide la cantidad de información que jX
proporciona acerca de iX cuando el valor de C es conocido. El algoritmo TAN se
muestra a continuación.
Algoritmo TAN
1. Calcular )/;( CXXI ji con i< j donde i, j = 1, 2,…, n. Asignar este valor como
peso al arco que conecta las variables iX y jX .
2. Ordenar )/;( CXXI ji 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 iX .
55
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:
56
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.
57
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.
59
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,
60
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.
61
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 PROCEDIMIENTO 0. Ingresar población
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.
1. Validar población
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.
2. Seleccionar atributos a considerar.
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.
62
PROCESO PROCEDIMIENTO 3. Seleccionar algoritmo
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.
3.1. Ponderación de reglas
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.
3.1.1. Seleccionar atributo clase
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.
3.2. Inducir reglas
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
3.2.1. Seleccionar atributo clase
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.
3.3. Clasificar la población
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.
3.3.1. Agregar atributo clase
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
63
PROCESO PROCEDIMIENTO atributo es el que determinará a que clase pertenecerá cada uno de los individuos, una vez realizada la clasificación.
3.3.2. Clasificar població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.
4. Generar árbol de decisión
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.
5. Seleccionar Reporte
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.
5.1. Reporte de Reglas
5.1.1. Generar 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 Y
Atributo2 = valor2 Y
… Y
AtributoN = valorN
ENTONCES
Clase = clase1.
5.2. Reporte de Reglas Ponderadas
5.2.1. Generar red Bayesiana clasificadora
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
64
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
65
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
66
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
67
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.
68
• 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
69
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.
70
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>
71
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
72
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>
73
<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>
74
<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].
75
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.
76
5.2.1. Población
POBLACION Descripción de Casos de Uso
Nombre: Cargar Población
Actores: Usuario
Función: Permitir cargar una población
Descripció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 Validar Población
Actores Usuario
Función Permite validar una población
Descripció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 Seleccionar Atributos a Considerar
Actores Usuario
77
Función Permite seleccionar atributos
Descripción 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 Seleccionar Modo de Estudio
Actores Usuario
Función Permite seleccionar el modo en el cual se va a realizar el estudio de la población.
Descripción El usuario selecciona el modo de estudio de la población, pudiendo elegir entre las siguientes alternativas: Clasificar, Seleccionar Reglas o Ponderar Reglas.
78
5.2.2. Clasificador
CLASIFICADOR Descripción de Casos de Uso
Nombre: Clasificar Población
Actores: Usuario
Función: Permitir clasificar una población
Descripció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 Parar Clasificación
Actores Usuario
Función Permite cancelar una clasificación en curso
79
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 Setear valores por Default
Actores Usuario
Función Permite setear valores por default a las características del clasificador.
Descripción 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.
Nombre Generar Archivo de Clasificación Actores Usuario
Función Permite generar un archivo de la clasificación realizada. Descripción 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 Definir Filtro
Actores Usuario
Función 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.
Descripción 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.
80
5.2.3. Selector
SELECTOR Descripción de Casos de Uso
Nombre: Seleccionar Atributo CLASE de Selector
Actores: Usuario
Función: Permitir seleccionar el atributo CLASE del selector
Descripción: 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 Generar Árbol de Decisión
Actores Usuario
Función Permite generar el árbol de decisión
Descripció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
81
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 Cancelar árbol de decisión
Actores Usuario
Función Permite cancelar un árbol de decisión en curso
Descripción 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 Generar archivo de Reglas
Actores Usuario
Función Permite generar un archivo XML de las reglas generadas
Descripción 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 Definir Filtro Actores Usuario Función 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.
Descripción 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.
82
5.2.4. Ponderador
PONDERADOR Descripción de Casos de Uso Nombre: Seleccionar Atributo CLASE de Ponderador Actores: Usuario
Función: Permitir seleccionar el atributo CLASE del ponderador Descripción: El Usuario selecciona, del total de atributos a considerar
en el estudio de la población, que atributo desea que sea el atributo CLASE.
83
Nombre Ponderar Reglas
Actores Usuario
Función Permite generar la red bayesiana
Descripción 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 Generar Archivo de Reglas Ponderadas
Actores Usuario
Función Permite seleccionar atributos
Descripción 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 Definir Filtro
Actores Usuario
Función Permite seleccionar el modo en el cual se va a realizar el estudio de la población.
Descripción El usuario selecciona el modo de estudio de la población, pudiendo elegir entre las siguientes alternativas: Clasificar, Seleccionar Reglas, Ponderar Reglas.
Nombre Mover Nodos
Actores Usuario
Función Setea el estado de la red Bayesiana en Mover, lo que permite mover los diferentes nodos de la red con el Mouse.
Descripción El usuario hace click en el botón Mover. Luego, con el Mouse, va a poder mover los nodos de la red Bayesiana.
Nombre Consultar Nodos
Actores Usuario
Función 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.
Descripción 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
84
estados del nodo.
Nombre Observar Nodos
Actores Usuario
Función 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.
Descripción 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.
Nombre Guardar Observación
Actores Usuario
Función Permite guardar en un archivo de texto la observación del estado actual de la red Bayesiana.
Descripción 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.
85
5.2.5. El menú
EL MENÙ Descripción de Casos de Uso Nombre: Consultar estado del ambiente Actores: Usuario
Función: Permitir consultar el estado actual del ambiente Descripción: 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
86
Actores Usuario
Función Permite salir del ambiente.
Descripción 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 Convertir Comma Separated a XML
Actores Usuario
Función Permite convertir un archivo delimitado por coma, en un archivo XML.
Descripción 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.
Nombre Convertir Excel a XML
Actores Usuario Función Permite convertir un archivo Excel, en un archivo XML.
Descripción 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 Convertir Tab Delimiter a XML
Actores Usuario
Función Permite convertir un archivo delimitado por Tabs, en un archivo XML.
Descripción 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.
Nombre Cargar Población
Actores Usuario
Función Permite cargar una población
Descripció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.
87
Se setea el estado del ambiente a POBLACION_CARGADA.
Nombre Validar Población
Actores Usuario
Función Permite validar una población cargada.
Descripció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 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 Guardar Grafico
Actores Usuario
Función Permite guardar en un archivo jpg el gráfico de la pantalla en la que se encuentra actualmente.
Descripción 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ó.
Nombre Acerca de
Actores Usuario
Función Muestra la pantalla de Acerca de…
Descripción El usuario hace click en el menú Ayuda->Acerca de. Se muestra la pantalla de Acerca de.
Nombre Temas de ayuda
Actores Usuario
Función Muestra la ayuda del sistema.
Descripción El usuario hace click en el menú Ayuda->Temas de ayuda. Se muestra la pantalla de Ayuda del sistema.
88
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.
90
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:
- Nombre del archivo de la población
91
- 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.
5.4.2. Clasificador
Aquí es donde el usuario realiza las siguientes acciones:
1. Setear las características funcionales del clasificador, que son:
Figura 18. Pantalla Poblacion
92
- 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
93
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.
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.
Figura 19. Pantalla Clasificador
94
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
Figura 20. Pantalla Selector
95
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
96
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 Descripción de la base de datos
Flag 30 194
Una base de datos que contiene 30 atributos, de diferentes tipos (numéricos, booleanos, rangos) que definen banderas de diferentes países.
Zoo 18 101
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: Cargar Población
97
Precondiciones No hay
Secuencia principal 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.
Alternativas 3.1. El usuario puede optar por cancelar la pantalla en lugar de elegir un archivo.
Errores 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.
Poscondiciones El estado del ambiente cambia a POBLACION_CARGADA. Notas
Nombre Validar Población Precondiciones No hay
Secuencia principal 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.
Alternativas
Errores 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.
Poscondiciones 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 Seleccionar atributos a considerar
Precondiciones 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.
Secuencia principal 1. El usuario selecciona, haciendo click en los checkboxs, que atributos desea.
Alternativas 1.1. El usuario aprieta el botón Todos.
98
1.2. El usuario aprieta el botón Ninguno. 1.3. El usuario aprieta el botón Invertir.
Errores No hay.
Poscondiciones 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 Seleccionar modo de estudio
Precondiciones El estado del ambiente debe ser al menos POBLACION_VALIDADA.
Secuencia principal 1. El usuario selecciona el modo de estudio de la población, haciendo click en la opción que desee.
Alternativas El usuario selecciona el modo Clasificador. El usuario selecciona el modo Selector. El usuario selecciona el modo Ponderador.
Errores Poscondiciones 1.1. Se habilitan los tabs Clasificador, Selector y
Ponderador. 1.2. Se habilitan los tabs Selector y Ponderador 1.3. Se habilita el tab Ponderador.
Notas
5.5.2. Clasificador
CLASIFICADOR Casos de Uso bajo Prueba
Nombre: Clasificar Población
Precondiciones Se debe haber elegido el modo de estudio de la población de Clasificador
Secuencia principal 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.
Alternativas No hay
Errores 1.1.Si no se completaron todas las características del clasificador, entonces el sistema muestra un mensaje de error, informando de esto.
99
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.
Poscondiciones El estado del ambiente cambia a POBLACION_CLASIFICADA Se muestra un grafico de barras con la clasificación realizada.
Notas
Nombre Parar clasificación
Precondiciones La clasificación debe estar en proceso
Secuencia principal 1. El usuario hace click en el botón Cancelar Clasificación.
2. El sistema cancela la clasificación en curso.
Alternativas No hay
Errores
Poscondiciones
Notas
Nombre Setear valores por Default
Precondiciones Se debe haber elegido el modo de estudio de la población de Clasificador
Secuencia principal 1. El usuario hace click en el botón Valores por Default 2. El sistema completa los valores de las características
del clasificador.
Alternativas No hay
Errores No hay
Poscondiciones Los valores de las características del clasificador se completan con valores.
Notas
Nombre Generar Archivo de Clasificación
Precondiciones Se debe haber elegido el modo de estudio de la población de Clasificador
Secuencia principal 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.
Alternativas 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
100
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.
Errores 1.1. Si el estado del ambiente es menor que POBLACION_CLASIFICADA, entonces el sistema deberá mostrar un mensaje informando de esto.
Poscondiciones Se genera el archivo de la clasificación con todos los atributos.
Notas
Nombre Definir Filtro
Precondiciones Se tildó la opción de Definir Filtro.
Secuencia principal 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. Alternativas 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.
Errores 1.1. Si el estado del ambiente es menor que POBLACION_CLASIFICADA, entonces el sistema deberá mostrar un mensaje informando de esto.
Poscondiciones Se genera el archivo de la clasificación con los atributos seleccionados.
Notas
5.5.3. Selector
SELECTOR
101
Casos de Uso bajo Prueba
Nombre: Seleccionar Atributo CLASE de Selector
Precondiciones Se debe haber elegido el modo de estudio de la población de Selector.
Secuencia principal 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.
Alternativas 2.1. El usuario podrá elegir solo un atributo.
Errores
Poscondiciones 2.1. El sistema guarda el atributo seleccionado como atributo CLASE tanto del selector como del ponderador.
Notas
Nombre Generar árbol de decisión
Precondiciones No hay
Secuencia principal 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.
Alternativas No hay
Errores 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.
Poscondiciones El estado del ambiente cambia a REGLAS_SELECCIONADAS.
Notas
Nombre Generar archivo de Reglas
Precondiciones No hay
Secuencia principal 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
102
archivo a generar. 3. El usuario selecciona el nombre del archivo a generar. 4. El sistema guarda el archivo.
Alternativas 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.
Errores 1.1. Si el estado del ambiente es menor que REGLAS_SELECCIONADAS, entonces el sistema deberá mostrar un mensaje informando de esto.
Poscondiciones Se genera el archivo con todas las reglas de producción generadas por el árbol de decisión.
Notas
Nombre Definir filtro
Precondiciones Se tildó la opción de Definir Filtro.
Secuencia principal 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.
Alternativas 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.
Errores 1.1. Si el estado del ambiente es menor que REGLAS_SELECCIONADAS, entonces el sistema deberá mostrar un mensaje informando de esto.
Poscondiciones Se genera el archivo de las reglas generadas por el árbol de decisión de acuerdo a los filtros seleccionados.
103
Notas
5.5.4. Ponderador
PONDERADOR Casos de Uso bajo Prueba
Nombre: Seleccionar Atributo CLASE de Ponderador
Precondiciones Se debe haber elegido el modo de estudio de la población de Ponderador.
Secuencia principal 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.
Alternativas 2.1. El usuario podrá elegir solo un atributo.
Errores
Poscondiciones 2.1. El sistema guarda el atributo seleccionado como atributo CLASE tanto del ponderador.
Notas
Nombre Ponderar Reglas
Precondiciones No hay
Secuencia principal 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.
Alternativas No hay
Errores 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.
Poscondiciones El estado del ambiente cambia a RED_BAYESIANA_GENERADA.
Notas
104
Nombre Generar archivo de Reglas Ponderadas
Precondiciones No hay
Secuencia principal 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.
Alternativas 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.
Errores 1.1. Si el estado del ambiente es menor que RED_BAYESIANA_GENERADA, entonces el sistema deberá mostrar un mensaje informando de esto.
Poscondiciones Se genera el archivo con todas las reglas de producción generadas por el árbol de decisión ponderadas.
Notas
Nombre Definir porcentaje
Precondiciones Se tildó la opción de Definir Filtro.
Secuencia principal 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.
Alternativas 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.
105
Errores 1.1. Si el estado del ambiente es menor que RED_BAYESIANA_GENERADA, entonces el sistema deberá mostrar un mensaje informando de esto.
Poscondiciones 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: Consultar Estado del ambiente
Precondiciones No hay
Secuencia principal 1. El usuario hace click en el menú Ambiente->Estado del ambiente.
Alternativas No hay
Errores No hay
Poscondiciones 1.1. El sistema muestra un mensaje con el estado actual del ambiente.
Notas
Nombre Salir
Precondiciones No hay
Secuencia principal 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
Alternativas 3.1. El usuario no acepta salir del ambiente.
Errores No hay
Poscondiciones No hay
Notas
Nombre Convertir Comma Separated a XML
Precondiciones No hay
Secuencia principal 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.
106
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.
Alternativas El usuario puede optar por cancelar la pantalla en lugar de elegir un archivo.
Errores 3.1 Si el archivo origen no existe, se muestra un mensaje de error.
Poscondiciones Se genera el archivo con todos los registros del archivo origen, pero en formato XML.
Notas
Nombre Convertir Excel a XML
Precondiciones No hay
Secuencia principal 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.
Alternativas 3.1. El usuario puede optar por cancelar la pantalla en lugar de elegir un archivo.
Errores 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
Poscondiciones Se genera el archivo con todos los registros del archivo origen, pero en formato XML.
Notas
Nombre Convertir Tab Delimiter a XML
Precondiciones No hay
Secuencia principal 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,
107
añadiéndole en el nombre .xml.
Alternativas 3.1. El usuario puede optar por cancelar la pantalla en lugar de elegir un archivo.
Errores 3.1 Si el archivo origen no existe, se muestra un mensaje de error.
Poscondiciones Se genera el archivo con todos los registros del archivo origen, pero en formato XML.
Notas
Nombre: Cargar Población
Precondiciones No hay
Secuencia principal 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.
Alternativas El usuario puede optar por cancelar la pantalla en lugar de elegir un archivo.
Errores 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.
Poscondiciones El estado del ambiente cambia a POBLACION_CARGADA.
Notas
Nombre Validar Población
Precondiciones No hay
Secuencia principal 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.
Alternativas
Errores 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.
Poscondiciones El estado del ambiente cambia a POBLACION_VALIDADA.
108
Se llena la grilla de Seleccionar Atributos. Se completa el árbol de Estructura de la Población.
Notas
Nombre Guardar gráfico
Precondiciones La pantalla en la que se encuentra el ambiente deberá ser: Clasificador, Selector o Ponderador.
Secuencia principal 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. Alternativas 3.1 El usuario puede optar por cancelar la pantalla en
lugar de elegir un archivo.
Errores
Poscondiciones El sistema genera un archivo jpg con el grafico de la pantalla en la que se encuentre.
Notas Nombre Acerca de…
Precondiciones No hay
Secuencia principal 1. El usuario hace click en el menú Ayuda->Acerca de…
Alternativas No hay
Errores No hay Poscondiciones Se muestra la pantalla de Acerca de… Notas Nombre Temas de ayuda Precondiciones No hay
Secuencia principal 1. El usuario hace click en el menú Ayuda->Temas de ayuda.
Alternativas No hay
Errores No hay
Poscondiciones Se muestra la pantalla de ayuda de la aplicación
Notas
109
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 Instancias Descripción de la base de datos
Iris 5 150
Una base de datos que contiene 4 atributos numéricos y un atributo nominal que determina la clase de la instancia.
Zoo 18 101
Una base de datos simple que contiene 16 atributos booleanos y uno numérico que definen diferentes animales. El atributo “tipo” define el atributo clase.
Tabla 2. Bases de datos utilizadas
110
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
0
10
20
30
40
50
60
70
clase
cantidad A.I.
Weka
A.I. 38 62 50
Weka 36 64 50
1 2 3
Instancias clasificadas en forma exacta por ambos ambientes = 97.20%
Figura 22. Clasificación de instancias. Iris
111
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
0
5
10
15
20
25
30
35
40
clase
cantidad AI
Weka
AI 21 13 16 10 6 35
Weka 21 21 7 11 4 37
1 2 3 4 5 6
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
Figura 23. Clasificación de instancias. Zoo
112
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 ReglasA.I. vs Sipina
0
20
40
60
80
100
120
1 2 3 4 5 6 7 8
regla
% confian
za
A.I.
Sipina
Las reglas obtenidas con cada uno de los ambientes se detallan a continuación.
Ambiente Integrado Sipina
REGLA CONF. REGLA CONF.
SI petallength <=3.95 Y sepalwidth <=3.2 Y petalwidth =1.3 Y sepallength <=6.1 ENTONCES clase = Iris-setosa
64% SI petallength <=3.95 Y sepalwidth <=3.2
ENTONCES clase = Iris-setosa
62%
SI petallength <=3.95 Y sepalwidth <=3.2 Y petalwidth >1.3 ENTONCES clase = Iris-versicolor
100% SI petallength <=3.95 Y sepalwidth <=3.2
ENTONCES clase = Iris-versicolor
38%
SI petallength <=3.95 Y sepalwidth >3.2 ENTONCES clase = Iris-setosa
100% SI petallength <=3.95 Y sepalwidth >3.2 ENTONCES clase = Iris-setosa
100%
SI petallength >3.95 Y petalwidth <=1.3
100% SI petallength >3.95 Y petalwidth <=1.3
100%
Figura 24. Inducción de reglas. Gráfico comparativo - Iris
113
ENTONCES clase = Iris-versicolor ENTONCES clase = Iris-versicolor SI petallength >3.95
Y petalwidth >1.3 Y sepallength <=6.1 Y sepalwidth <=3.2 ENTONCES clase = Iris-virginica
58% SI petallength >3.95 Y petalwidth >1.3 Y sepallength <=6.1 ENTONCES clase = Iris-virginica
55%
SI petallength >3.95 Y petalwidth >1.3 Y sepallength <=6.1 Y sepalwidth >3.2 ENTONCES clase = Iris-versicolor
100% SI petallength >3.95 Y petalwidth >1.3 Y sepallength <=6.1 ENTONCES clase = Iris-virsicolor
45%
SI petallength >3.95 Y petalwidth >1.3 Y sepallength >6.1 Y sepalwidth <=3.2 ENTONCES clase = Iris-virginica
74% SI petallength >3.95 Y petalwidth >1.3 Y sepallength >6.1 ENTONCES clase = Iris-virginica
76%
SI petallength >3.95 Y petalwidth >1.3 Y sepallength >6.1 Y sepalwidth >3.2 ENTONCES clase = Iris-virginica
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.
114
Inducción - Confianza de ReglasA.I. vs Sipina
0
20
40
60
80
100
120
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
reglas
% confian
zaA.I.
Sipina
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%
Figura 25. Inducción de reglas. Gráfico comparativo - Zoo
115
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%
116
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 aletas = 1 ENTONCES tipo = 4
SI leche = 0 Y plumas = 0 Y aletas = 1 ENTONCES tipo = 4
100%
SI leche = 1 ENTONCES tipo = 1
100% 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.
117
Iris
Ponderación - A.I. vs Elvira
0
20
40
60
80
100
120
1 2 3 4 5 6 7 8 9
regla
% ocurrencia
A.I.
Elvira
Figura 26. Ponderación de Reglas. Gráfico comparativo - Iris
Zoo
Ponderación - A.I. vs Elvira
0
20
40
60
80
100
120
1 2 3 4 5 6 7 8 9 10 11 12 13 14
regla
% ocurrencia
A.I.
Elvira
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.
119
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
120
• 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.
121
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/answer-
tree/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.
122
[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
123
[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.
124
[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/