Weka



Weka es un entorno de trabajo que nos permite utilizar muchos algoritmos de aprendizaje automático. Su uso más común es para minería de datos. Tiene licencia GPL (GNU Public License) y fue creado por la Universidad de Waikato (Nueva Zelanda).
Weka dispone de una base de datos con muchos ejemplos para poder trabajar. No obstante, si necesitamos crearnos uno o adaptar uno existente al formato que utiliza Weka es muy fácil.
El formato de fichero ha de ser .arff (Atribute Relation File Format), y viene definido por tres partes:
  • La cabecera, definida por @ y el nombre del conjunto de datos.
                
  • La declaración de los atributos.
                
  • Sección de datos que comienza por @data y separados por coma.
                
También se podría abrir cualquiera de los archivos ejemplo que trae Weka y ver con más detalle cómo están hechos.
Una vez instalado Weka, al ejecutarlo se nos abre la siguiente ventana:
Esta contiene las diferentes aplicaciones de las que dispone. Vamos a ver para que se utilizan cada una de ellas.
  • Explorer. Nos permite abrir un fichero, una URL con datos o directamente una base de datos. En la opción de abrir fichero, Weka dispone de varios ejemplos para poder trabajar como hemos comentado antes.Una vez abierto el fichero se puede ver la distribución de cada una de las variables, y mediante visualizar todo, se puede observar todas las variables.
                             
En clasificación podemos seleccionar los algoritmos y tras su ejecución, nos muestra los porcentajes de acierto.

También podemos hacer selección de características de entrada, con lo que podemos descartar aquellas características de entrada que no sean relevantes para el aprendizaje.


También nos permite crear clusters, con lo que podríamos agrupar por algún tipo de similitud.

Podemos crear un árbol de decisión, así como reglas y visualizar las relaciones de las variables entre ellas.

Para una mejor comprensión del conjunto de datos, también nos permite visualizar gráficamente pares de variables.

  • Experimenter. Sirve para seleccionar el conjunto de datos y diferentes algoritmos para compararlos. Por ejemplo, para una misma base de datos redes neuronales con diferentes arquitecturas.
 
       Tras su ejecución:
       
 
       Nos ofrece una comparativa de los resultados.


  • Knowledge Flow. Permite trabajar de forma visual, simplemente arrastrando los componentes y creando una secuencia de trabajo, tal y como lo haríamos si fuésemos trabajando con el Experimenter paso a paso. Además nos permite también guardar.


  • Simple CLI. El cliente simple es para trabajar en modo consola. Este método es el menos utilizado, pero permite ejecutar lo mismo que hacemos con el Experimenter mediante la línea de comandos.


También Weka nos permite hacer un nuevo clasificador. Por ejemplo, un algoritmo que no esté programado para Weka, se puede implementar siguiendo una serie de directrices y unos métodos obligatorios.

Aunque se suele pensar que Weka no permite trabajar con un volumen grande de datos, el problema principal podría venir en el entrenamiento pero no en la predicción.
Para el entrenamiento se recomienda utilizar el Cliente simple o KnowledgeFlow en vez del Explorer, ya que el principal problema que podríamos tener con grandes volúmenes de datos sería la interfaz gráfica. Aunque la mayoría de los algoritmos necesitan cargar todos los datos, también hay esquemas en Weka, que nos permiten cargar los datos de forma incremental, lo que nos facilitaría trabajar con estos grandes volúmenes. Este es el caso de la versión de Weka 3.7, que además nos permite trabajar en entornos distribuidos y proporciona librerías para Hadoop o Spark.


Bibliografía


  1. Ma, X., & Capri, H. L. (2014). Data Mining : Principles, Applications and Emerging Challenges. Hauppauge, New York: Nova Science Publishers, Inc. Data Mining : Concepts and Techniques (2006).Han, Jiawei, Kamber, Micheline, In The Morgan Kaufmann Series in Data Management Systems.Amsterdam : Morgan Kaufmann.
  2. Weller, Katrin, Knowledge Representation in the Social Semantic Web,New York : De Gruyter. 2010. Capítulo 1: 17-32.
  3. del Río, S., López, V., Benítez, J. M., & Herrera, F. (2014). On the use of MapReduce for imbalanced big data using Random Forest. Information Sciences285, 112-137.
  4. Librería Apache Mahout:http://mahout.apache.org
  5. Librería Mllib (Machine Learning library) de la plataforma Spark: https://spark.apache.org/mllib/
  6. Guía de la librería Mllib: https://spark.apache.org/docs/latest/mllib-guide.html




    Comentarios