Ejecutar weka desde linea de comandos

Weka es una librería de algoritmos de aprendizaje automático para realizar tareas de minería de datos (data mining). Incluye también un entorno gráfico muy útil.

Para un proyecto de adquisición léxica en el que estoy trabajando necesitaba ejecutar weka desde línea de comandos, como no ha sido directo averiguar como se hace os hago un resumen.

La idea es que tenemos que escoger un algoritmo, entrenarlo, guardarnos el modelo generado con este entrenamiento y usarlo para clasificar los datos que queramos.

  1. Entrenamiento: Una vez escogido el algoritmo (en nuestro caso utilizaremos un árbol de decisión weka.classifiers.trees.J48) creamos el modelo entrenando el árbol con los datos de entrenamiento:

    java -Xmx[MEGABYTES_DE_MEM_PARA_LA_TAREA]M -cp [PATH_A_weka.jar] [ALGORITMO_DE_APRENDIZAJE+PARÁMETROS] -t [FICHERO_ENTRENAMIENTO] -d [FICHERO_DONDE_SE_GUARDA_EL_MODELO]

    Por ejemplo:

    java -Xmx1024M -cp /opt/weka-3-4-9/weka.jar weka.classifiers.trees.J48 -C 0.25 -M 2 -t rweka.arff -d rweka.model

  2. Clasificación: Con el modelo generado en el paso anterior y los datos para clasificar ejecutamos:

    java -Xmx[MEGABYTES_DE_MEM_PARA_LA_TAREA]M -cp [PATH_A_weka.jar] [ALGORITMO_DE_APRENDIZAJE] -l [FICHERO_CON_EL_MODELO] -T [FICHERO_A_CLASIFICAR] -p 0

    En mi caso:

    java -Xmx1024M -cp /opt/weka-3-4-9/weka.jar weka.classifiers.trees.J48 -l rweka.model -T rweka.arff -p 0

    Este paso nos retornará por la salida estándar la clasificación de cada elemento del fichero en una línea con el número de este elemento en primer lugar, seguido de la clase que asigna el algoritmo y de información adicional:
    [NÚMERO_ELEMENTO] [CLASE_ASIGNADA] [CONFIANZA_EN_LA_RESPUESTA] [CLASE_REAL]

Notas:
  • Los archivos con los datos de entrenamiento y de clasificación han de estar en formato ARFF.

Etiquetas: ,


Recommend Me


XING
View Sergio Espeja's profile on LinkedIn