Try   HackMD

Definiciones y especificaciones de modelos de Clasificación

tags: Definitions and References

Modelos de clasificación

Son modelos capaces de producir en una imagen una clasificación de entre un conjunto de categorías, generando la probabilidad de que la imagen sea de cada una de ellas. Generalmente se toma la categoría con la probabilidad más alta y se asigna a toda la imagen esa etiqueta. En el siguiente ejemplo se clasificará la imagen como "Animal".

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Un clasificador puede decir: Esta imagen es de animal

Este tipo de modelos tienen algunas limitantes, entre ellas:

  • Asignan sólo una categoría por imagen, lo cuál no tiene mucho sentido para el análisis de los datos de cámaras trampa, donde puede haber individuos de distintas especies en la misma foto.
  • Al analizarse toda la imagen durante el entrenamiento, hay ciertos animales para los cuáles, por diferentes circunstancias (tamaño de los individuos, calidad de la foto, hábitos nocturnos, encontrarse entre vegetación muy densa, etc.), es difícil que sus características reales sean aprendidas por el modelo, y más bien se especialicen en aprender ciertas propiedades del entorno, relancionándolas con esas especies.
  • Como la inferencia del modelo también se reliza sobre toda la imagen, se dificulta la tarea de identificar ciertas especies dentro de un entorno con mucho ruido, incluso para las personas, siendo un verdadero reto el reconocimiento de estos animales en las fototrampas.

Clasificación Binaria

En la clasificación binaria, generalmente tenemos dos clases, a menudo llamadas Positiva y Negativa, y tratamos de predecir la clase para cada muestra. Por ejemplo, si tenemos un conjunto de imágenes etiquetado de tal forma que nos permita saber cuáles imágenes contienen animales y cuáles no, y estamos interesados en detectar las fotos que contienen animales, en este caso, nuestra clase Positiva es la de las imágenes de animales y la clase Negativa es la de las imágenes que no contienen animales. En otras palabras, si una imagen de muestra contiene un animal, es un Positivo, si no es así, es Negativo. Nuestro clasificador predice, para cada foto, si es Positiva ( P) o Negativa (N): ¿hay un animal en la foto?

Matriz de confusión

La matriz de confusión es una de las maneras más intuitivas y fáciles que se utilizan para encontrar la exactitud y precisión del modelo. Se utiliza para el problema de clasificación donde la salida puede ser de dos o más clases. La matriz de confusión en sí misma no es una medida de rendimiento como tal, pero casi todas las métricas de rendimiento se basan en la matriz de confusión y los números que contiene.

Términos asociados con la matriz de confusión

  • Verdaderos Positivos (TP): Los verdaderos positivos son los casos en que la clase real de la muestra de datos era 1 (Verdadero) y la predicha también es 1 (Verdadero).
  • Falsos Positivos (FP): Los falsos positivos son los casos en que la clase real de la muetra de datos era 0 (Falso) y la predicha es 1 (Verdadero). Falso es porque el modelo ha predicho incorrectamente y positivo porque la clase pronosticada fue positiva (1).
  • Falsos negativos (FN): los falsos negativos son los casos en que la clase real de la muestra de datos era 1 (Verdadero) y la predicha es 0 (Falso). Falso es porque el modelo ha predicho incorrectamente y negativo porque la clase predicha fue negativa (0).
  • Verdaderos negativos (TN): los verdaderos negativos son los casos en que la clase real de la muestra de datos era 0 (Falso) y la predicha también es 0 (Falso).

Para la clasificación binaria, una matriz de confusión tiene dos filas y dos columnas, y muestra en la primera columna cuántas muestras positivas se predijeron como positivas (primera fila) o negativas (segunda fila), y en la segunda columna cuántas muestras negativas se predijeron como positivas (primera fila) o negativas (segunda fila). Por lo tanto, tiene un total de 4 celdas. Cada vez que nuestro clasificador hace una predicción, una de las celdas de la tabla se incrementa en uno, siguiendo los cuatro criterios listados arriba, y en la posición que le corresponda según la siguiente figura:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Al final del proceso, podemos ver exactamente cómo se desempeñó nuestro clasificador.

Métricas

Precisión

La precision intenta responder la siguiente pregunta: ¿Qué proporción de predicciones positivas fue realmente correcta?
La precisión se define de la siguiente manera:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Recall

El recall intenta responder la siguiente pregunta: ¿Qué proporción de elementos positivos se identificó correctamente?
Matemáticamente, el recall se define de la siguiente manera:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Lo anterior se puede visualizar en el siguiente diagrama:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

En general, preferimos clasificadores con buena precisión y buen recall. Sin embargo, existe una compensación entre la precisión y el recall: al ajustar un clasificador, mejorar la precisión a menudo resulta en penalizar el recall y viceversa. Debido a esto, según el tipo de problema se le podrá dar más relevancia a un aspecto u otro, dependiendo si es más importante tener más predicciones correctas o encontrar la mayoría de los elementos de la clase positiva. Por ejemplo, en un sistema de monitoreo de fauna silvestre, podría ser más importante encontrar la mayor cantidad de imágenes con animales, aunque muchas de las detecciones contengan imágenes sin animales.

Score-F1

A veces es deseable contar con una métrica que contenga la información de la precisión y el recall de tal manera que se puedan comparar dos modelos directamente. Una forma de obtener esta métrica es a través de la media aritmética de la precisión y el recall. Sin embargo, esta tiene el problema de que no representa bien el desempeño de modelos para datasets con una clase mucho mayor que la otra y que siempre genere clasificaciones de la clase mayor. Por el contrario, la media armónica da mayor peso a los números más pequeños, y penalizará más, por ejemplo, un modelo con una alta precisión pero un recall muy bajo.

El score-F1 se basa en la media armónica y se define de la siguiente manera:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Y en general, el score-F se define para un β real positivo en el cual se le da β veces más importancia a la precisión que al recall:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

En este sentido, el score-F1 es un caso especial del score-F donde β tiene un valor de 1.

Accuracy

La exactitud (Accuracy) en los problemas de clasificación es el número de predicciones correctas realizadas por el modelo sobre todo tipo de predicciones realizadas.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Esta métrica solo debe usarse para evaluar datasets que están más o menos balanceados, y nunca cuando exista una clase que tenga la mayoría de elementos.

Clasificación multiclase

Los problemas de clasificación binaria se centran en una clase positiva que queremos detectar. Por el contrario, en un típico problema de clasificación multiclase, debemos clasificar cada muestra en una de N clases diferentes. Por ejemplo, podríamos querer clasificar una foto que contiene animales en alguna de varias categorías diferentes, que podrían ser parte de una jerarquía taxonómica.

Para este tipo de modelos se suele realizar el cálculo de las métricas descritas en la sección Clasificación binaria para cada una de las categorías, esto es, tomando una categoría como la clase positiva, y la suma de todas las demás como la clase negativa.

Por ejemplo, supongamos un modelo que trata de clasificar fotos que tienen animales de las siguientes clases: Mamíferos, Peces y Aves. Nuestro clasificador tiene que predecir qué animal se muestra en cada foto. Este es un problema de clasificación con N=3 clases.

Supongamos que la siguiente es la matriz de confusión después de clasificar 25 fotos:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

De manera similar al caso binario, podemos definir precisión y recall para cada una de las clases. Por ejemplo, la precisión para la clase Mamífero es el número de fotos de mamíferos predichas correctamente (4) de todas las fotos de mamíferos predichas (4 + 3 + 6 = 13), lo que equivale a 4/13 = 30.8%. Entonces, solo alrededor de un tercio de las fotos que nuestro predictor clasifica como Mamífero son en realidad de mamíferos.
Por otro lado, el recall para la clase Mamífero es el número de fotos de mamíferos (4) pronosticadas correctamente del número de fotos de mamíferos reales (4 + 1 + 1 = 6), que es 4/6 = 66.7%. Esto significa que nuestro clasificador clasificó 2/3 de las fotos de mamíferos como Mamífero.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

De manera similar, podemos calcular la precisión y el recall de las otras dos clases: Peces y Aves. Para Peces, los números son 66.7% y 20.0% respectivamente. Para Aves, el número tanto de precisión como de recall es del 66,7%.
Los valores de score-F1 para cada categoría son: Mamífero = 42.1%, Peces = 30.8% y Aves = 66.7%.
Todas estas métricas se resumen en la siguiente tabla:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Macro-promedio

Ahora que tenemos los valores de las métricas para cada categoría, el siguiente paso es combinarlas para obtener las métricas para todo el clasificador. Hay varias formas de hacer esto y aquí analizaremos las dos más utilizadas. Empecemos con la más sencilla: calcular la media aritmética de la precisión y el recall y a partir de ellas el score-F1 global. Esta es llamada el Macro-promedio de la métrica, y se calcula:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Una variante para calcular el Macro-F1 que se suele preferir al evaluar datasets desbalanceados es con la media aritmética de los score-F1 individuales de todas las clases, ya que se ha demostrado que el otro método es excesivamente "benevolente" hacia clasificadores muy sesgados y puede dar valores engañosamente altos cuando se están evaluando este tipo de datasets, y ya que se suele usar el Macro-F1 con la intención de asignar igual peso a la clase más frecuente y a la menos frecuente, se recomienda utilizar esta última definición, que es significativamente más robusta hacia la distribución de este tipo de error.

Micro-promedio

Otra forma de realizar el promedio de las métricas es con el micro-promedio, para el cuál se deben tomar todas las muestras juntas para hacer el cálculo de la precisión y el recall, y después con estos valores hacer el cálculo del score-F:

Para calcular la micro-precisión tenemos que sumar el total de TP y dividirlo entre el total de predicciones positivas. Para nuestro ejemplo, sumamos el total de elementos en la diagonal (color verde) para obtener TP=12. Después sumamos los falsos positivos, es decir, los elementos fuera de la diagonal, y obtenemos FP=13. Nuestra precisión es, por lo tanto, 12 / (12 + 13) = 48.0%.
Para calcular el micro-recall tenemos que sumar el total de falsos negativos (FN) para todas las clases, que al igual que para los FP, consiste en sumar todos los elementos fuera de la diagonal, con lo que se obtendría nuevamente FN=13 y el valor del micro-recall también es 12 / (12 + 13) = 48.0%.
Dado que el micro-recall es igual a la micro-precisión, entonces la media armónica, y por lo tanto el micro-F1, también será igual a este valor. Por tanto, en general se puede decir que:

Clasificación multietiqueta

Mientras que un clasificación multiclase puede tomar como posibles valores: true o false, pero en un esquema multilabel tambien hay clasificaciones parciales.

Se define el escenario de la clasificacion multietiqueta:

  • X
    es una entrada
    ddimensional
    de features categoricas o numéricas.
  • L=λ1,λ2,...,λq
    es una salida de
    q
    labels,
    q>1
    . Cada subconjunto de
    L
    es llamado subconjunto de labels.
  • (x,Y)
    , donde
    x=(x1,...,xd)X
    , es una muestra
    ddimensional
    con un conjunto de etiquetas asociadas
    YL
    . Las etiquetas asociadas tambien pueden ser representadas como un vector binario
    qdimensional
    ,
    y=(y1,...,yq)={0,1}q
    donde cada elemento es 1 si la etiqueta es relevante y 0 si no lo es.

Metrics

Las características de un dataset multietiqueta, así como la calidad de los clasificadores multietiqueta, son evaluados con distintas métricas.

Las tareas principales son determinar el comportamiento del conjunto de datos y la clasificación en sí. Estas métricas se refieren a la caracterización del conjunto de datos y a las métricas de evaluación [1].

Métricas del Dataset

Para caracterizar un dataset, dos métricas son comunmente utilizadas:

  1. Cadinalidad de etiquetas (LC)
    Número promedio de de etiquetas simples asociadas a cada ejemplo

    LC(D)=1|D|i=1|D||Yi|

  2. Densidad de etiquetas (LD)
    La cardinalidad normalizada

    LD(D)=1|D|i=1|D||Yi||L|=LC(D)|L|

Métricas de evaluación

La evaluación de un clasificador se basa solamente en 2 posibles valores (por clase): correcto o incorrecto.

Sin embargo, la evaluación de los clasificadores multietiqueta pueden tener en cuenta clasificaciones parcialmente correctas.

Se presenta un conjunto de metricas de evaluación multietiqueta, cada una de ellas presenta distintos criterios de evaluación teniendo en cuenta resultados parciales.

Divididas en [2]:

  1. Basadas en ejemplos

Consideran la diferencia entre

Yi (las etiquetas verdaderas), y
Zi
(las etiquetas a predecir), estas medidas estan en el intervalo [0, 1].

  • Hamming Loss[3]
    Evalua cuantas veces, en promedio, un par ejemplo-etiqueta es clasificada incorrectamente, por lo tanto, es la fracción de etiquetas que fueron incorrectamente predichas.

    HammingLoss=1ti=1t1q|ZiΔYi|

    donde:

    Δ es la diferencia simétricas entre 2 conjuntos
    1q
    es el factor para normalizar en un rango [0, 1].

    Entre más bajo sea el valor, mejor es el desempeño del clasificador.

  1. Metricas basadas en etiquetas

    Es común utilizar un conjunto de métricas basadas en recuperación de información y enfoncarlas a medir el desempeño de la etiqueta.

    Cualquier métrica de evaluación binaria puede ser utilizada para este tipo de acercamiento, comunmente se utilizan precision,recall y F1-score:

    Tomado de [2:1]

    La idea es calcular un métrica sencilla para cada etiqueta basada en el número de verdaderos positivos (TP), verdaderos negativos (TN), falsos positivos (FP), y falsos negativos (FN). Como se tiene varias etiquetas habrá una tabla de confusión por cada etiqueta o muestra, por lo tanto es necesario calcular un valor promedio.

    Hay 2 distintos acercamientos para promediar estos valores: micro y macro.

    Sea

    B una métrica de evaluación binaria, el acercamiento macro calcula una métrica por cada etiqueta y después los valores son promediados para todas las categorías:

    Bmacro=1qi=1qB(TPi,FPi,TNi,FNi))

    El acercamiento micro considera predicciones de todos los ejemplos juntos (agregando los valores de todas las matrices de confusión) y después calcula la métrica para todos las etiquetas:

    Bmicro=B(i=1qTPi,i=1qFPi,i=1qTNi,i=1qFNi)

    El score con promediado macro da el mismo peso a cada clase, sin importar su frecuencia (promediado por clase) y esta más influenciado por el desempeño en clases con pocas muestras. Este tipo de acercamiento puede tomarse en cuenta cuando el sistema necesita un desempeño consistente para todas las clases sin importar la frecuencia de cada clase en particular.

    El score con promediado micro da el mismo peso a cada muestra (promediado por muestra/ejemplo) and tiene una tendencia a ser sesgado por el desempeño de las clases mas comunes y puede ser ser recomendable cuando la densidad de clase es importante.

El conjunto de métricas a utilizar para ecvaluar el desempeño de un experimento multietiqueta serán: precision, recall and f1-score, debido a que en general son las métricas más utilizadas y expresivas en sistemas de recuperación de información [4].

Las cuales se definen como sigue:

Proporción de etiquetas clasificadas correctamente y las etiquetas positivas predichas.

precision=1ti=1t|ZiYi|Zi

Relación entre etiquetas clasificadas correctamente y las etiquetas incorrectas predichas.

recall=1ti=1t|ZiYi|Yi

Combina la precision y la exhaustividad (recall) y muestra su correspondiente harmónicas, para la primera de ellas se define como:

F1_score=1ti=1t2|ZiYi||Yi|+|Zi|

Métricas por default

El siguiente conjunto de métricas será calculado como default cuando se opte por una evaluación multietiqueta en el API CONABIO_ML:

  • Hamming loss
  • Precision (con su correspondiente average)
  • Recall (con su correspondiente average)
  • F1 score (con su correspondiente average)

El cual se configura como sigue:

"eval_config": {
    'metrics_set': {
        ClassificationDefaults.MULTILABEL: {
                                 'average': 'micro|macro|weighted',
                                 'batch_ratio': float,
                                 'thresshold': float,
                                 'per_sample': bool
                             }
                         }
    [ . . . ]
    }

Teniendose el siguiente conjunto de resultados:

{
    'per_class':{
        'label1':{
            'precision': float,
            'recall': float ,
            'f1': float
        },
        [ . . . ]
    },
    'one_class' : {
        'precision' : float ,
        'recall'    : float ,
        'f1_score'  : float ,
        'hamming_loss'  : float 
    }
}

Notas finales

Note que todas las métricas definidas anteriormente asumen que previamente se ha escogido/calculado un umbral/threshold particular de clasificación.

Si no hay un umbral establecido un análisis para escorgerlo debe realizarse.

Algunas opciones para este análisis son las curvas ROC (receiver operating characteristic) o de precisionxrecall.


  1. Lazy Multi-label Learning Algorithms Based on Mutuality Strategies ↩︎

  2. A Tutorial on Multi-Label Learning ↩︎ ↩︎

  3. Hamming loss ↩︎

  4. Evaluating Information Retrieval System Performance Based on User Preference ↩︎

  5. Precision ↩︎

  6. Recall ↩︎

  7. F1_score ↩︎