VISITAS:

martes, 29 de septiembre de 2009

Precision y Recall en clasificadores

Definiciones:
  • True Positives (TP) para la clase C: son instancias pertenecientes a la clase C que se clasifican correctamente en la clase C
  • True Negatives (TN) para la clase C: son instancias no pertenecientes a la clase C y que no se clasifican como clase C
  • False Positives (FP) para la clase C: son instancias no pertenecientes a la clase C pero que se clasifican como clase C
  • False Negatives (FN) para la clase C: son instancias pertenecientes a la clase C pero que no se clasifican como clase C
En resumen:

Categoría CManual
NO
AutomáticaTPFP
NOFNTN

  • Precision para la clase C: es un valor entre 0 y 1. Su valor aumenta cuando hay pocos falsos positivos. Mide que las instancias clasificadas como clase C sean realmente de la clase C, aunque haya instancias de la clase C que se clasifiquen como otra clase
P(C) = TP / (TP + FP)
  • Recall para la clase C: es un valor entre 0 y 1. Su valor aumenta cuando hay pocos falsos negativos. Mide que las instancias de la clase C se clasifiquen como clase C, aunque otras instancias también se clasifiquen como clase C sin serlo.
R(C) = TP / (TP + FN)

viernes, 18 de septiembre de 2009

Weka para clasificación de textos

Tras haber estudiado y evaluado algunos entornos y librerías de machine learning y procesamiento de lenguaje natural (Weka, Rapid Miner, NLTK), he llegado a las siguientes conclusiones:
  • Weka es sencillo de utilizar, está escrito en Java y puede utilizarse en tres modos: GUI para empezar a probar, línea de comandos para ejecutar algoritmos y guardar resultados, y por último como una librería embebida dentro de un programa Java
  • RapidMiner, tiene unas características muy similares a Weka (de hecho, incluye todos los algoritmos de Weka y algunos más) e incluye un módulo para procesamiento de texto (que no lo veo útil por lo básico). Sin embargo es bastante complejo de utilizar y está peor documentado que Weka
  • NLTK está muy bien para empezar a hacer experimentos, pero no permite muchas facilidades. Y sobre todo, es Python, que aunque no está mal como lenguaje, no me termina de convencer

Me quedo con Weka, por lo menos para empezar. Con unos pocos tutoriales he sido capaz de hacer muchas cosas. Weka está orientado a Data Mining, sin embargo soporta un formato de fichero llamado Sparse ARFF que permite introducirle términos dispersos.

jueves, 10 de septiembre de 2009

FRAWA

Frawa ya está liberado en la comunidad Morfeo:
http://frawa.morfeo-project.org/