Catedrtico: M. en ISE Gastn Valencia Miramontes Alumnos: Archundia Snchez Miguel Morales Juarez Adrian Valdez Morales Fernando
Materia: Sistemas Expertos 8vo Semestre
Ixtlahuaca, Mxico a 3 de Junio de 2013
Introduccin
La necesidad de realizar modelos que permitan la prediccin de eventos futura es muy necesario siempre que se presenten situaciones en las que se presente riesgo de prdidas para una persona. WEKA permite realizar manipulaciones sobre los datos aplicando filtros. Se pueden aplicar en dos niveles: atributos e instancias. Adems las operaciones de filtrado pueden aplicarse en cascada, de forma que la entrada de cada filtro es la salida de haber aplicado el anterior filtro. WEKA (Waikato Environment for Knowledge Analysis) es una herramienta que permite la experimentacin de anlisis de datos mediante la aplicacin, anlisis y evaluacin de las tcnicas ms relevantes de anlisis de datos, principalmente las provenientes del aprendizaje automtico, sobre cualquier conjunto de datos del usuario. El archivo de datos seleccionado contiene datos provenientes del campo de las ventas de inmuebles que se presenta en diferentes ciudades de Espaa. Algunos de los anlisis que podemos llevar a cabo con esta herramienta puede ser el relacionar a quin vende mayores cantidades de un grupo de mujeres y hombres, en qu ciudades hay mayores ventas, etc. La herramienta de visualizacin de WEKA permite representar grficas 2D que relacionan pares de atributos. Con la aplicacin de diferentes algoritmos podremos observar la forma en que se comportan las ventas de estos inmuebles, es muy frecuente que las caractersticas que observemos no sean tan evidentes a primera vista pero gracias Weka es ms fcil analizar qu situaciones se estn presentando.
Marco terico 1. WEKA LA Weka (Gallirallus australis) es un ave endmica de Nueva Zelanda. Esta Gallincea en peligro de extincin es famosa por su curiosidad y agresividad. De aspecto pardo y tamao similar a una gallina las wekas se alimentan fundamentalmente de insectos y frutos.
Esta ave da nombre a una extensa coleccin de algoritmos de Mquinas de conocimiento desarrollado por la universidad de Waikato (Nueva Zelanda) implementado en Java, tiles para ser aplicados sobre datos mediante los interfaces que ofrece o para embeberlos dentro de cualquier aplicacin Weka es un conjunto de librerias JAVA para la extraccin de conocimientos desde bases de datos. Es un software ha sido desarrollado en la universidad de Waikato (Nueva Zelanda). Adems Weka contiene las herramientas necesarias para realizar transformaciones sobre los datos, tareas de clasificacin, regresin, clustering, asociacin y visualizacin. Weka est diseado como una herramienta orientada a la extensibilidad por lo que aadir nuevas funcionalidades es una tarea sencilla. Sin embargo, y pese a todas las cualidades que Weka posee, tiene un gran defecto y ste es la escasa documentacin orientada al usuario que tiene junto a una usabilidad bastante pobre, lo que la hace una herramienta difcil de comprender y manejar sin informacin adicional. La licencia de Weka es GPL*, lo que significa que este programa es de libre distribucin y difusin. Adems, ya que Weka est programado en Java, es independiente de la arquitectura, ya que funciona en cualquier plataforma sobre la que haya una mquina virtual Java disponible.
2. MINERA DE DATOS Minera de Datos es un trmino genrico que engloba resultados de investigacin, tcnicas y herramientas usadas para extraer informacin til de grandes bases de datos. El trmino Minera de Datos es usado comnmente por los estadsticos, analistas de datos, y por la comunidad de administradores de sistemas informticos como todo el proceso del descubrimiento, El anlisis de la informacin recopilada (por ejemplo, en un experimento cientfico) es habitual que sea un proceso completamente manual (basado por lo general en tcnicas estadsticas). Sin embargo, cuando la cantidad de datos de los que disponemos aumenta la resolucin manual del problema se hace intratable. Aqu es donde entra en juego el conjunto de tcnicas de anlisis automtico al que nos referimos al hablar de Minera de Datos. Hasta ahora, los mayores xitos en Minera de Datos se pueden atribuir directa o indirectamente a avances en bases de datos (un campo en el que los ordenadores superan a los humanos). MD es la extraccin no trivial de informacin implcita, desconocida previamente, y potencialmente til desde los datos. MD es el proceso de extraccin y refinamiento de conocimiento til desde grandes bases de datos. MD es el proceso de extraccin de informacin previamente desconocida, vlida y procesable desde grandes bases de datos para luego ser utilizada en la toma de decisiones. "MD es la exploracin y anlisis, a travs de medios automticos y semiautomticos, de grandes cantidades de datos con el fin de descubrir patrones y reglas significativos". "MD es el proceso de planteamiento de distintas consultas y extraccin de informacin til, patrones y tendencias previamente desconocidas desde grandes cantidades de datos posiblemente almacenados en bases de datos. MD es el proceso de descubrir modelos en los datos. Objetivos Convertir datos en conocimiento para tomar decisiones Es importante la inteligibilidad del conocimiento obtenido (los modelos estadsticos no son siempre sencillos de entender). MD = BBDD + estadstica + aprendizaje automtico. Tareas Prediccin: Clasificacin Regresin Asociacin Agrupacin (clustering) Fases del proceso de extraccin de conocimiento Integracin y recopilacin de datos. Almacenes de datos (data warehousing), repositorio de informacin obtenido de diversas fuentes (heterogneas), almacenada bajo un esquema unificado. Seleccin, limpieza y transformacin proceso (ETL)-> Datos: Datos: Valores que no se ajustan al comportamiento general(outliers): eliminar o dejar. Muestreo de datos.
Atributos: Eliminar atributos redundantes o irrelevantes Reduccin/aumento dimensionalidad. Calcular nuevos atributos que sean ms relevantes (rea, poblacin -> densidad de poblacin, para predecir cantidad de daos en terremotos) Valores faltantes (missing values): rellenarlos Discretizacin, numeracin, normalizacin. Objetivos: Mejorar la eficiencia de la herramienta de minera de datos. Mejorar la calidad (precisin) del conocimiento obtenido. Posibilidades: Hacerlo a mano. Utilizar herramientas de preproceso (ej: seleccin de atributos). Dejar que lo haga el algoritmo de minera de datos (peor solucin).
Aprendizaje Automtico -> Patrones Evaluacin e interpretacin -> Conocimiento Difusin y uso -> Decisiones
3. METODOLOGA La metodologa que debe seguirse para obtener conocimiento a partir de los datos que se encuentran en la base de datos se muestra en la figura.
4. ALGORITMOS
a) CLASIFICACIN En este modo podremos clasificar por varios mtodos los datos ya cargados. void buildClassifier(Instances data): entrena el clasificador con el conjunto de entrenamiento (Instances) indicado double classifyInstance(Instance instance): clasifica la instancia que recibe como parmetro. double[] distributionForInstance(Instance instance): clasifica la instancia y devuelve un vector double[] con un componente para cada valor del atributo clase que cuantifica su probabilidad o importancia relativa (dependiendo del mtodo de clasificacin). La clase abstracta Classifier tambin ofrece el mtodo Classifier forName(String classifierName, String[] options) que crea un clasificador de la clase indicada con los parmetros que se le pasan como array de String. Matriz De Confusin Esta tabla cuyo nmero de columnas es el nmero de atributos muestra la clasificacin de las instancias. Da una informacin muy til porque no slo refleja los errores producidos sino tambin informa del tipo de stos. rbol De Decisin Tcnica que permite analizar decisiones secuenciales basada en uso de resultados y probabilidades asociadas. Se pueden usar para generar sistemas expertos, bsquedas binarias y rboles de juegos. Facilitan la interpretacin de la decisin adoptada. Reduce el nmero de variables independientes. Herramienta para la gestin empresarial. Algoritmos de construccin de rboles de decisin El ms bsico es el ID3: construye rboles de decisin de manera recursiva, de la raz hacia las hojas, seleccionando en cada momento el mejor nodo para poner en el rbol. El C4.5 (o J48), trata con valores continuos y utiliza criterios estadsticos para impedir que el rbol se sobreadapte (que crezca demasiado, que se aprenda los datos en lugar de generalizar).
b) CLUSTERIZACIN El proceso de Clustering consiste en la divisin de los datos en grupos de objetos similares. Para medir la similitud entre objetos se suelen utilizar diferentes formas de distancia: distancia eucldea, de Manhatan, de Mahalanobis, etc. El representar los datos por una serie de clster, conlleva la prdida de detalles, pero consigue la simplificacin de los mismos. Clustering es una tcnica ms de Machine Learning, en la que el aprendizaje realizado es no supervisado (unsupervised learning). Desde un punto de vista prctico, el clustering juega un papel muy importante en aplicaciones de data mining, tales como exploracin de datos cientficos, recuperacin de la informacin y minera de texto, aplicaciones sobre bases de datos espaciales (tales como GIS o datos procedentes de astronoma), aplicaciones Web , marketing, diagnstico mdico, anlisis de ADN en biologa computacional, y muchas otras. En el presente trabajo lo utilizaremos como complemento a los modelos matemticos, en la estimacin de coste software. Cobweb Se trata de un algoritmo de clustering jerrquico. COBWEB, se caracteriza porque utiliza aprendizaje incremental, esto es, realiza las agrupaciones instancia a instancia. Durante la ejecucin del algoritmo se forma un rbol (rbol de clasificacin) donde las hojas representan los segmentos y el nodo raz engloba por completo el conjunto de datos de entrada. Al principio, el rbol consiste en un nico nodo raz. Las instancias se van aadiendo una a una y el rbol se va actualizando en cada paso. La actualizacin consiste en encontrar el mejor sitio donde incluir la nueva instancia, operacin que puede necesitar de la reestructuracin de todo el rbol (incluyendo la generacin de un nuevo nodo anfitrin para la instancia y/o la fusin/particin de nodos existentes) o simplemente la inclusin de la instancia en un nodo que ya exista. La clave para saber cmo y dnde se debe actualizar el rbol la proporciona una medida denominada utilidad de categora, que mide la calidad general de una particin de instancias en un segmento. La reestructuracin que mayor utilidad de categora proporcione es la que se adopta en ese paso. El algoritmo es muy sensible a otros dos parmetros: Acuity y cut-off. K-medias Se trata de un algoritmo clasificado como Mtodo de Particionado y Recolocacin. El mtodo de las k-medias [24, 25], es hasta ahora el ms utilizado en aplicaciones cientficas e industriales. El nombre le viene porque representa cada uno de los clster por la media (o media ponderada) de sus puntos, es decir, por su centroide. Este mtodo nicamente se puede aplicar a atributos numricos, y los outliers le pueden afectar muy negativamente. Sin embargo, la representacin mediante centroides tiene la ventaja de que tiene un significado grfico y estadstico inmediato. La suma de las discrepancias entre un punto y su centroide, expresado a travs de la distancia apropiada, se usa como funcin objetivo. La funcin objetivo, suma de los cuadrados de los errores entre los puntos y sus centroides respectivos, es igual a la varianza total dentro del propio clster. La suma de los cuadrados de los errores se puede racionalizar, como el negativo del log-likelihood, para modelos mixtos que utilicen distribuciones normales. Por lo tanto, el mtodo de las k-medias se puede derivar a partir del marco probabilstico. Existen dos versiones del mtodo de las k-medias. La primera es parecida al algoritmo EM, y se basa en dos pasos iterativos: primero reasigna todos los puntos a sus centroides ms cercanos, y en segundo lugar recalcula los centroides de los nuevos grupos creados en el anterior. El proceso continua hasta alcanzar un criterio de parada (por ejemplo que no se realicen nuevas reasignaciones). Esta versin se conoce como algoritmo de Forgy. La segunda versin reasigna los puntos basndose en un anlisis ms detallado de los efectos causados sobre la funcin objetivo al mover un punto de su clster a otro nuevo. Si el traslado es positivo, se realiza, en caso contrario se queda como est. A diferencia de los anteriores algoritmos, COBWEB y EM, k-medias necesita la previa especificacin del nmero de clsteres que se desean obtener. La implementacin utilizada en el presente trabajo, de este algoritmo es tambin la ofrecida por Weka.
c) ASOCIACIN Los algoritmos de asociacin permiten la bsqueda automtica de reglas que relacionan conjuntos de atributos entre s. Son algoritmos no supervisados, en el sentido de que no existen relaciones conocidas a priori con las que contrastar la validez de los resultados, sino que se evala si esas reglas son estadsticamente significativas. La ventana de Asociacin (Associate en el Explorer), tiene los siguientes elementos: El principal algoritmo de asociacin implementado en WEKA es el algoritmo "Apriori". Este algoritmo nicamente puede buscar reglas entre atributos simblicos, razn por la que se requiere haber discretizado todos los atributos numricos. Mediante algoritmos de asociacin podemos realizar la bsqueda automtica de reglas que relacionan conjuntos de atributos entre s. Son algoritmos no supervisados, ya que no existen relaciones conocidas a priori con las que contrastar la validez de los resultados, sino que se evala si esas reglas son estadsticamente significativas. El principal algoritmo implementado en WEKA es el algoritmo Apriori, el cual slo busca reglas entre atributos simblicos, por lo cual todos los atributos numricos deberan ser discretizados previamente.
Marco contextual Uno de los temas ms hablados actualmente es el anlisis de todo lo relacionado con el social networking. Gracias a la herramienta de Minera de Datos Weka, se ha podido ir realizando anlisis respecto. Analizar la informacin contenida en los tweets de de Twitter para sacar conclusiones sobre lo que se est diciendo y expresarlo en la red es posible gracias a esta potente herramienta. Otro proyecto en la Universidad de Granada en el Departamento de Ciencias de la Computacin para la prediccin de elementos funcionales en "ADN basura" bacteriano, las enfermedades bacterianas son las causantes de un gran nmero de muertes al ao en todo el mundo, encontrndose entre stas infecciones alimenticias tan comunes como la salmonelosis o infecciones intrahospitalarias. En los ltimos 5 aos se ha puesto de manifiesto que la clave para entender los mecanismos moleculares del funcionamiento de estas bacterias reside en el "ADN basura", en concreto en un nuevo tipo de genes que se conocen como "ARN pequeos no codificadores de protenas" (sRNAs). En este trabajo se propuso una metodologa computacional con el uso de WEKA que permiti detectar y predecir sRNAs, reduciendo el nmero de falsos positivos y a su vez incrementando la capacidad de prediccin de nuevos sRNAs en genomas bacterianos. El proyecto consisti en la creacin de un mdulo basado en software libre que permita la prediccin automtica de estos elementos en genomas completos, mediante una interfaz que permita su uso por parte de usuarios del campo de Ciencias de la Salud. El resultado de este proyecto fue usado por el Instituto de Biotecnologa de la Universidad de Granada y se puso a disposicin de la comunidad cientfica. Aplicaciones en diferentes reas: Marketing Identifica patrones de compra de los clientes: Determinar cmo compran, a partir de sus principales caractersticas, conocer el grado de inters sobre tipos de productos, etc. Segmenta clientes: Consiste en la agrupacin de los clientes con caractersticas similares, por ejemplo demogrficas. Predice respuestas a campaas de mailing: Estas campaas son caras y est por ello muy relacionada con la segmentacin de clientes. Analiza cestas de la compra [market-basket analysis]: Consiste en descubrir relaciones entre productos, esto es, determinar qu productos suelen comprarse junto con otros, con el fin de distribuirlos adecuadamente.
Compaas de Seguros En el sector de las compaas de seguros y la salud privada, se pueden emplear Weka con sus tcnicas de minera de datos: Analiza procedimientos mdicos solicitados conjuntamente. Predice qu clientes compran nuevas plizas. Identifica patrones de comportamiento para clientes con riesgo. Identifica comportamiento fraudulento.
Banca En el sector bancario la informacin que puede almacenarse es, adems de las cuentas de los clientes, la relativa a la utilizacin de las tarjetas de crdito, que puede permitir conocer hbitos y patrones de comportamiento de los usuarios. Esta informacin puede aplicarse para: Detecta patrones de uso fraudulento de tarjetas de crdito. Identifica clientes leales: Es importante para las compaas de cualquier sector mantener los clientes, es cuatro veces ms caro obtener nuevos clientes que mantener los existentes. Predice clientes con probabilidad de cambiar su afiliacin. Determina gasto en tarjeta de crdito por grupos. Encuentra correlaciones entre indicadores financieros. Identifica reglas de mercado de valores a partir de histricos.
Telecomunicaciones En el sector de las telecomunicaciones se puede almacenar informacin para: Detecta fraude telefnico: Mediante por ejemplo el agrupamiento o clustering se pueden detectar patrones en los datos que permitan detectar fraudes.
Medicina
Tambin en el campo mdico se almacena gran cantidad de informacin, sobre los pacientes, tal como enfermedades pasadas, tratamientos impuestos, pruebas realizadas, evolucin. Identifica terapias mdicas satisfactorias para diferentes enfermedades. Asocia sntomas y clasificacin diferencial de patologas. Estudia factores (genticos, precedentes, hbitos, alimenticios) de riesgo para la salud en distintas patologas. Segmentacin de pacientes para una atencin ms inteligente segn su grupo. Estudios epidemiolgicos, anlisis de rendimientos de campaas de informacin, prevencin, sustitucin de frmacos,... Identifica terapias mdicas y tratamientos errneos para determinadas enfermedades.
Minera de Textos
La Minera de Textos [Text Mining] surge ante el problema cada vez ms apremiante de extraer informacin automticamente a partir de masas de textos. Se trata as de extraer informacin de datos no estructurados: texto plano. Existen varias aproximaciones a la representacin de la informacin no estructurada en Weka:
Bag of Words: Cada palabra constituye una posicin de un vector y el valor corresponde con el nmero de veces que ha aparecido. N-gramas o frases: Permite tener en cuenta el orden de las palabras. Trata mejor frases negativas ... excepto..., ... pero no...., que tomaran en otro caso las palabras que le siguen como relevantes. Representacin relacional (primer orden): Permite detectar patrones ms complejos.
WEKA
Weka es un conjunto de libreras JAVA para la extraccin de conocimientos desde bases de datos. Es un software ha sido desarrollado en la universidad de Waikato (Nueva Zelanda) bajo licencia GPL lo cual ha impulsado que sea una de las suites ms utilizadas en el rea en los ltimos aos. Este documento introduce con sencillos ejemplos algunos de las tcnicas ms importantes de este software. Para el desarrollo de los ejemplos es necesario utilizar los siguientes conjuntos de datos. Una de las propiedades ms interesantes de este software, es su facilidad para aadir extensiones, modificar mtodos etc... Por ejemplo, este fichero es un ejemplo de como crear nuevos esquemas de aprendizaje utilizando Weka. En concreto se trata del esquema "Delegating Classifiers" (Ferri, Flach and Hernandez-Orallo ICML '04). No tiene demasiados comentarios, pero puede servir de ejemplo de programacin con Weka. La salida generada est lista para que sea analizada con el t-test de Weka.
DATOS PARA ANALIZAR
% Changes to WEKA Format: SRG - November 1994 % 1. Boolean attributes changed from 1 and 0 to Enumerated attribute with % values {true and false} % 2. Class Number (Attribute 18) changed to an Enumerated type with % values {1,2,3,4,5,6,7} % % December 1997 - Changed class attribute values to semi-sensible names % % 1. Title: Zoo database % % 2. Source Information % -- Creator: Richard Forsyth % -- Donor: Richard S. Forsyth % 8 Grosvenor Avenue % Mapperley Park % Nottingham NG3 5DX % 0602-621676 % -- Date: 5/15/1990 % % 3. Past Usage: % -- None known other than what is shown in Forsyth's PC/BEAGLE User's Guide. % % 4. Relevant Information: % -- A simple database containing 17 Boolean-valued attributes. The "type" % attribute appears to be the class attribute. Here is a breakdown of % which animals are in which type: (I find it unusual that there are % 2 instances of "frog" and one of "girl"!) % % Class# Set of animals: % ====== =============================================================== % 1 (41) aardvark, antelope, bear, boar, buffalo, calf, % cavy, cheetah, deer, dolphin, elephant, % fruitbat, giraffe, girl, goat, gorilla, hamster, % hare, leopard, lion, lynx, mink, mole, mongoose, % opossum, oryx, platypus, polecat, pony, % porpoise, puma, pussycat, raccoon, reindeer, % seal, sealion, squirrel, vampire, vole, wallaby,wolf % 2 (20) chicken, crow, dove, duck, flamingo, gull, hawk, % kiwi, lark, ostrich, parakeet, penguin, pheasant, % rhea, skimmer, skua, sparrow, swan, vulture, wren % 3 (5) pitviper, seasnake, slowworm, tortoise, tuatara % 4 (13) bass, carp, catfish, chub, dogfish, haddock, % herring, pike, piranha, seahorse, sole, stingray, tuna % 5 (4) frog, frog, newt, toad % 6 (8) flea, gnat, honeybee, housefly, ladybird, moth, termite, wasp % 7 (10) clam, crab, crayfish, lobster, octopus, % scorpion, seawasp, slug, starfish, worm % % 5. Number of Instances: 101 % 6. Number of Attributes: 18 (animal name, 15 Boolean attributes, 2 numerics) % 7. Attribute Information: (name of attribute and type of value domain) % 1. animal name: Unique for each instance % 2. hair Boolean % 3. feathers Boolean % 4. eggs Boolean % 5. milk Boolean % 6. airborne Boolean % 7. aquatic Boolean % 8. predator Boolean % 9. toothed Boolean % 10. backbone Boolean % 11. breathes Boolean % 12. venomous Boolean % 13. fins Boolean % 14. legs Numeric (set of values: {0,2,4,5,6,8}) % 15. tail Boolean % 16. domestic Boolean % 17. catsize Boolean % 18. type Numeric (integer values in range [1,7]) % % 8. Missing Attribute Values: None % 9. Class Distribution: Given above
Segn las caractersticas de los animales pueden ser clasificados de distintas maneras, para poder entender esto mejor es necesario observar cada una de las grficas, pues de acuerdo a cada atributo o caracterstica se pueden obtener datos distintos, entonces es de vital importancia elegir con que atributo se desea trabajar con las grficas.
Como se puede observar la cantidad de instancias que se formaron y los atributos que se encontraron adems se pueden hacer anlisis en rbol en el cual especifica que en el rbol se generan 9 ramas y el rbol tiene un tamao de 17
Tambien se puede apreciar la tabla que muestra los porcentajes de error que pueden generarse y la matriz de confusin, la cual representa en las diagonales que tanto porcentaje de error o de confiabilidad se puede tener en la diagonal, entre mayor sea el resultado de su respectiva letra es el mayor grado de confiabilidad.
En esta funcin se puede observar que re realizaron 3 iteraciones de las cuales en la primera se utilizaron 101 datos, en la siguiente 41 y en la ultima 60, segn el anlisis el atributo ms importante es del pelo