lunes, 17 de junio de 2013

Clasificación de Texto: medidas de rendimiento y desempeño

Voy a exponer en esta entrada algunos métodos comunes para evaluar un algoritmo de clasificación de textos.

Hay dos tipos de errores que pueden cometerse, como muchos saben: los falsos positivos (es decir aquellos textos que fueron etiquetados como de una clase dada y no lo son) y los falsos negativos, aquellos textos que no fueron etiquetados como pertenecientes a la clase y en verdad sí pertenecen.

Esta matriz gráfica lo anterior:

CorrectoNo correcto
Seleccionadoverdadero positivofalso positivo
No seleccionadoverdadero negativofalso negativo

Están marcados en rojos los casos de error.



Precisión y exhaustividad (Recall):

Estos son dos indicadores distintos que nos permiten medir cuan bueno es un clasificador:

Precisión: textos correctamente clasificados sobre el total de textos clasificados, para una clase dada

Exhaustividad (recall): textos clasificados correctamente sobre el total de textos de esa categoría

Valor-F


    La situación ideal es aquella en la que existe una precisión y exhaustividad alta (es decir muy cercana a 1). A esta situación se la denomina utilidad teórica. Con el objeto de ponderar y ver cuan lejos están ambas medidas de la utilidad teórica, suelen emplearse los valores de ambas métricas combinadas en una media armónica denominada valor-F (wikipedia)




Si β es igual a uno, se está dando la misma ponderación (o importancia) a la precisión que a la exhaustividad, si β es mayor que uno de damos más importancia a la exhaustividad mientras que si es menor que uno se le da más importancia a la precisión.

Lo más usual es utilizar β=1, en ese caso la ecuación queda:

F1= 2PE/(P+E)

Matriz de confusión:

    Cuando tenemos un clasificador trabajando con varias clases es extremadamente útil contar con una matriz de confusión, esta matriz indica la cantidad de documentos que fueron mal clasificados y su categoría real. Este sería un ejemplo:

Documentos en el conjunto de prueba asignados a Argentina asignados a Uruguay asignados a Chile asignados a España asignados a Bolivia asignados a Paraguay
sobre Argentina85321012
sobre Uruguay1030100
sobre Chile0090600
sobre España22133312
sobre Bolivia0141132
sobre Paraguay10111255

teniendo esta matriz, podemos calcular los indicadores anteriores de la siguiente forma:

Exhaustividad (Recall)

fracción de documentos en la clase i clasificados correctamente.
  cii    
cij
  j

Precisión

fracción de documentos asignados a la clase i que son realmente de la clase i

  cii    
cji
  j

y también podemos calcular la Exactitud

Exactitud

fracción de documentos clasificados correctamente (1-Error)

cii   
  i                   
cij
  j    i


Micro-promedio contra macro-promedio

Si tenemos más de una clase pero queremos saber la eficiencia total del algoritmo de clasificación tendremos que pensar en combinar los distintos valores en una sola medida y existen básicamente dos formas de realizar esto:

Macro-promedio

Esta es la forma más simple, más intuitiva, computamos el rendimiento para cada clase y luego lo promediamos, es decir dividimos por la cantidad de clases.

Micro-promedio

Para calcular el micro-promedio, primero hay que armar la tabla de errores antes mostrada para cada clase.

ejemplo: 

Suponiendo que solo tuviésemos 2 clases, para el ejemplo anterior: Argentina y Uruguay:

Clase Argentina
CorrectoNo correcto
clasificado como Argentina8510

Clase Uruguay
CorrectoNo correcto
clasificado como Uruguay332

micro-promedio
CorrectoNo correcto
clasificado 8842
  • macro-promedio de la precisión: (85/95 + 3/35) / 2 = 0.49
  • micro-promedio de la precisión: (88/130) = 0.68
Entrenamiento y puesta a punto del algoritmo de entrenamiento

Ahora que vimos como medir el rendimiento (ya sea con la precisión, la exhaustividad, la exactitud o con el estimador F1) podemos armar un plan para ir mejorando el desempeño general del clasificador.

Para ello se recomienda partir el conjunto de datos de entrenamiento en dos y reservar una parte como conjunto de desarrollo para hacer validaciones cruzadas, este conjunto de desarrollo debería cambiar a lo largo de varias iteraciones, por ejemplo se puede entrenar al algoritmo con los dos primeros tercios del conjunto y utilizar el último tercio para medir su rendimiento y en una segunda iteración se lo podría entrenar con el primer y último tercio y dejar el del medio para probar.
    En todos los casos debe de haber un conjunto de datos separado para realizar pruebas.





No hay comentarios:

Publicar un comentario