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