Weka
Weka
Qu es Weka? Corresponde a las siglas en ingls de Waikato Environment for Knowledge Analysis. Es una herramienta de software desarrollada en Java por la Universidad de Wakaito (Nueva Zelanda). Esta herramienta contiene principalmente algoritmos de machine Learning usados en el proceso de la minera de datos. WEKA incluye herramientas para el pre-procesamiento de los datos (filtros), clasificacin (rboles, tablas), clustering, reglas de asociacin y adicionalmente, diversas formas de visualizacin de los datos, tanto en el inicio del proceso de carga de datos, como despus de haber aplicado un algoritmo. Al estar cubierta con la licencia GNU, es posible usar directamente las implementaciones en Java de los algoritmos y unirlos a otros tipos de software, para crear procesos de minera semi-automatizados.
Como se puede ver la figura 1 Weka trabaja en 4 entornos: Simple CLI: Entorno consola para invocar directamente con java a los paquetes de weka Explorer: Entorno visual que ofrece una interfaz grfica para el uso de los paquetes Experimenter: Entorno centrado en la automatizacin de tareas de manera que se facilite la realizacin de experimentos a gran escala.
KnowledgeFlow: Permite generar proyectos de minera de datos mediante la generacin de flujos de informacin.
Nativamente Weka trabaja con un formato denominado arff, acrnimo de Atribute Relation File Format. Este formato est compuesto por una estructura claramente diferenciada en tres partes: 1. Cabecera. Se define el nombre de la relacin. Su formato es el siguiente: @relation <nombre-de-la-relacin> Donde <nombre-de-la-relacin> es de tipo String. Si dicho nombre contiene algn espacio ser necesario expresarlo entre comillas. 2. Declaraciones de atributos. En esta seccin se declaran los atributos que compondrn nuestro archivo junto a su tipo. La sintaxis es la siguiente: @attribute <nombre-del-atributo> <tipo> Seccin de datos. Declaramos los datos que componen la relacin separando entre comas los atributos y con saltos de lnea las relaciones. @data 4,3.2.
Caractersticas que proporciona Weka Diversas fuentes de datos (ASCII, JDBC). Interfaz visual basado en procesos/flujos de datos (rutas). Distintas herramientas de minera de datos: reglas de asociacin (a priori, Tertius.), agrupacin/segmentacin/conglomerado (Cobweb, EM y kmedias), clasificacin (redes neuronales, reglas y rboles de decisin, aprendizaje Bayesiana) y regresin (Regresin lineal, SVM.). Manipulacin de datos (pick & mix, muestreo, combinacin y separacin). Combinacin de modelos (Bagging, Boosting ...) Visualizacin anterior (datos en mltiples grficas) y posterior (rboles, curvas ROC, curvas de coste.). Entorno de experimentos, con la posibilidad de realizar pruebas estadsticas (t-test)
Herramientas de Minera de datos que proporciona Weka : Weka dispone de una gran variedad de algoritmos para clasificar. En funcin del tipo de datos de entrada podemos utilizar: - Algoritmos para datos nominales rboles de decisin de un nivel (decisin stump) Clasificador 1R (OneR) Tabla de decisin ID3 C4.5 PART
- Algoritmos para datos numricos rboles de decisin de un nivel Tabla de decisin Regresin lineal M5
- rboles de decisin Se pueden aplicar a casi todo. Los sistemas de aprendizaje basados en rboles de decisin son quizs el mtodo ms fcil de utilizar y de entender. Un rbol de decisin es un conjunto de condiciones organizadas en una estructura jerrquica, de tal manera que la decisin final a tomar se puede determinar siguiendo las condiciones que se cumplen desde la raz del rbol hasta alguna de sus hojas. Los rboles de decisin se Pgina 4 de 34 utilizan desde hace siglos, y son especialmente apropiados para expresar procedimientos mdicos, legales, comerciales, estratgicos, matemticos, lgicos, etc. rboles de decisin de un nivel (decisin stump) En Weka, las prestaciones de los rboles de decisin de un nivel son las siguientes: o o o o nombre de la clase: weka.classifiers.DecisionStump puede manejar instancias ponderadas por pesos puede procesar datos categricos no puede ser actualizado de forma incremental (soportar aadir nuevos datos sin reclasificar a los anteriores) o genera rboles de decisin binarios (de un nivel) para conjuntos de datos con datos categricos o numricos. Toma un atributo, que considera representativo, y lo utiliza para clasificar las instancias. Procesa los valores vacos de atributos extendiendo una tercera
rama del tronco, es decir, tratando los valores missing como un valor diferente del atributo. Est diseado para ser usado con los mtodos de mejora. - Clasificador 1R (OneR) Fue descrito por primera vez por Holte (1993), evaluando 16 hojas de datos (utilizando validacin cruzada, por lo que los resultados eran representativos para el comportamiento de otros datos), con un nmero mnimo de instancias de 6 (este nmero se hall por prueba y error). Es un algoritmo sencillo que sin embargo funciona de forma parecida a complejos rboles de decisin. En Weka, las prestaciones del clasificador OneR son las siguientes: o o o o nombre de la clase: weka.classifiers.OneR no puede manejar instancias ponderadas por pesos no puede procesar datos categricos no puede ser actualizado de forma incremental (soportar aadir nuevos datos sin reclasificar a los anteriores) o es el esquema ms sencillo de los planteados aqu. Produce reglas sencillas basadas en un solo atributo. Tiene un solo parmetro: el nmero mnimo de instancias que deben ser cubiertas por cada regla generada (6 por defecto).
- ID3 Induction of Decision Trees Englobado dentro del llamado aprendizaje inductivo y supervisado, ID3 es un algoritmo de aprendizaje que pretende modelar los datos mediante un rbol, llamado rbol de decisin. En este rbol los nodos intermedios son atributos de los ejemplos presentados, las ramas representan valores de dichos atributos y los nodos finales son los valores de la clase, como ya vimos al hablar de los rboles de decisin binarios. En Weka el ID3 se considera un algoritmo implementado para fines pedaggicos. Se trata de un rbol de decisin basado en el divide y vencers.
- C4.5 Se trata de una versin posterior del ID3. Los rboles de decisin extienden el ID3 para que pueda trabajar con atributos numricos. El C4.5 acaba con muchas de las limitaciones del ID3. Permite trabajar con valores continuos para los atributos, separando los posibles resultados en dos
ramas en funcin de un umbral. Los rboles son menos frondosos porque cada hoja no cubre una clase en particular sino una distribucin de clases. En Weka, las prestaciones del algoritmo C4.5 son las siguientes: o o o o nombre de la clase: weka.classifiers.j48.J48 puede manejar instancias ponderadas por pesos puede procesar datos categricos no puede ser actualizado de forma incremental (soportar aadir nuevos datos sin reclasificar a los anteriores) o Weka permite utilizar rbol podado o no podado, se puede impedir el aumento de los subrboles, lo que desemboca en algoritmos ms eficientes. Tambin se puede fijar el umbral de confianza para el proceso de poda, y el nmero mnimo de instancias permitido en cada hoja. o Adems de los procesos estndar de C4.5, se permite una opcin que disminuye el error de poda, realizndose una poda del rbol de decisin que Pgina 9 de 34 optimiza el rendimiento en un conjunto fijo. Se puede fijar el tamao de este grupo: el conjunto de datos se divide por igual en el nmero de grupos fijado, y la ltima parte se usa como conjunto fijo. Tambin permite la construccin de rboles binarios.
- PART Evita el paso de optimizacin global que se usa en las reglas del C4.5, genera una lista de decisin sin restricciones usando el procedimiento de divide y vencers. Adems construye un rbol de decisin parcial para obtener una regla. Para poder podar una rama (una regla) es necesario que todas sus implicaciones sean conocidas. El PART evita la generalizacin precipitada, y usa los mismos mecanismos que el C4.5 paraconstruir un rbol. La hoja con mxima cobertura se convierte en una regla y los valores ausentes de los atributos se tratan como en el C4.5, es decir, la instancia se divide en piezas. En cuanto al tiempo mximo para generar una regla, es el mismo que para construir un rbol podado, y esto ocurre cuando los datos tienen ruido. En el mejor de los casos el tiempo necesario es el mismo que para generar una regla sencilla, y esto se da cuando los datos no presentan ruido.
En Weka, las prestaciones del algoritmo PART son las siguientes: o nombre de la clase: weka.classifiers.j48.PART o puede manejar instancias ponderadas por pesos o puede procesar datos categricos
o no puede ser actualizado de forma incremental (soportar aadir nuevos datos sin reclasificar a los anteriores) o PART forma regla a partir de rboles de decisin parcialmente podados construidos usando los heursticos de C4.5. Las opciones disponibles para este algoritmo son un subconjunto por tanto de las disponibles para J4.8. Al igual que podamos reducir el tamao del rbol de decisin J4.8 usando poda de error reducido, se puede reducir el nmero de reglas de PART (con lo que se reduce tambin el tiempo de ejecucin porque la complejidad depende del nmero de reglas que se generan). Sin embargo el podado de bajo error reduce la precisin del rbol de decisin y reglas resultante porque reduce la cantidad de datos que se usan en el entrenamiento. Con grandes cantidades de datos no es necesario tener esta desventaja en cuenta.
- Tabla de decisin Ms que un rbol, la tabla de decisin es una matriz de renglones y columnas que indican condiciones y acciones. Las reglas de decisin, incluidas en una tabla de decisin, establecen el procedimiento a seguir cuando existen ciertas condiciones. Este mtodo se emplea desde mediados de la dcada de los cincuenta, cuando fue desarrollado por General Electric para el anlisis de funciones de la empresa como control de inventarios, anlisis de ventas, anlisis de crditos y control de transporte y rutas. La tabla de decisin est integrada por cuatro secciones: identificacin de condiciones, entradas de condiciones, identificacin de acciones y entradas de acciones de la siguiente tabla. En Weka, las prestaciones de las tablas de decisin son las siguientes: o o o o nombre de la clase: weka.classifiers.DecisionTable puede manejar instancias ponderadas por pesos puede procesar datos categricos no puede ser actualizado de forma incremental (soportar aadir nuevos datos sin reclasificar a los anteriores) o la tabla se genera seleccionando un subconjunto de atributos representativos. Esto se hace utilizando una bsqueda del primer atributo mejor. Por defecto se prueban al menos 5 grupos de atributos en busca de la mejor solucin, aunque es configurable. Tambin se puede variar el nmero de agrupaciones de atributos que se hacen. Normalmente una tabla de decisin asigna la clase mayoritaria de los datos de entrenamiento a una instancia test si sta
no casa con alguna entrada de la tabla. Sin embargo se permite tambin que se asigne por defecto a la clase ms cercana a la instancia test (usando la opcin I). Esto mejora significativamente el rendimiento. - Regresin lineal En Weka, las prestaciones de la regresin lineal son las siguientes: o nombre de la clase: weka.classifiers. LinearRegression o puede manejar instancias ponderadas por pesos o no puede ser actualizado de forma incremental (soportar aadir nuevos datos sin reclasificar a los anteriores) o es el esquema de aprendizaje para datos numricos ms sencillo, donde los parmetros solo controlan cmo se seleccionan los atributos que deben ser incluidos en la funcin lineal. Por defecto se usa el heurstico por el modelo M5, cuyo tiempo de ejecucin es lineal con el nmero de atributos. Tambin puede reducirse el nmero de atributos a 1 o hacer una bsqueda avariciosa hacia delante.
- M5 En Weka, las prestaciones del algoritmo M5 son las siguientes: o nombre de la clase: weka.classifiers.m5.M5Prime o no puede manejar instancias ponderadas por pesos o no puede ser actualizado de forma incremental (soportar aadir nuevos datos sin reclasificar a los anteriores) o cuando se encuentra con un valor de atributo no determinado, M5 reemplaza dicho hueco por la media global o la moda del conjunto de datos de entrenamiento antes de que se construyera el rbol. Permite diferentes tipos de salida: rbol modelo, rbol de decisin sin modelos lineales en las hojas y regresin lineal. Presenta un proceso automtico de suavizado que puede ser deshabilitado y tambin se puede controlar la profundidad del podado, as como la cantidad de informacin a la salida.
Ventajas y Desventajas de Weka VENTAJAS Weka proporciona interfaces para la comunicacin con el usuario, tal es el caso de CLI (Simple Client), esta interfaz proporciona una consola para
poder introducir mandatos, posee una apariencia muy simple pero nos permite realizar tareas complejas ya que permite realizar cualquier operacin soportada por Weka de forma directa; no obstante, es muy complicada de manejar ya que es necesario un conocimiento completo de la aplicacin. Nos permite ubicar patrones de comportamiento de la informacin a procesar de tal manera que es de gran ayuda en la toma de decisiones. Est disponible libremente bajo la licencia pblica general de GNU. Es muy portable porque est completamente implementado en Java y puede correr en casi cualquier plataforma. Contiene una extensa coleccin de tcnicas para preprocesamiento de datos y modelado.
DESVENTAJAS Existe poca documentacin sobre el uso de Weka dirigida al usuario. Un rea importante que actualmente no cubren los algoritmos incluidos en Weka es el modelado de secuencia.
BIBLIOGRAFIA Weka explorer user guide for versin 3-3-4 Richard Kirkby, Universidad de Waikato, 2003 Captulo 8 de Data Mining: Practical Machine Learning Tools and Techniques with Java Implementations. Witten, Frank. 2000 Morgan Kaufmann Publishers http://www.itba.edu.ar/capis/webcapis/RGMITBA/articulosrgm/R-ITBA26datamining.pdf http://www.ppgia.pucpr.br/~picolotto/Weka.doc http://satlab.mor.itesm.mx:8080/biditec/tesis/CueMati2002MariaIrasemaCru zPerez.pdf