8.f Apéndices

Top-N-Accuracy

En problemas de clasificación en los que hay muchísimos clases a clasificar , se puede usar otra métrica llamada Top-N Accuracy. Veamos en que consiste.

El problema de clasificación de ImageNet hay 1000 posibles clases a clasificar. En ese caso cuando decimos que un "gato" es un "gato" es que la clase gato tiene la mayor probabilidad. Veamos un ejemplo con 10 objetos.

Clase	Probabilidad
Casa	0.06
Botella	0,04
Farola	0,15
Gato	0,34
Perro	0,28
Niño	0,04
Adulto	0,02
Bicicleta	0,03
Semáforo	0,001
Puente	0,039

Si la imagen es de un gato, en este caso diríamos que ha acertado ya que la probabilidad de ser gato es del 34% y es la mayor de todas. Y con eso calcularíamos el valor de Accuracy.

Sin embargo veamos este otro ejemplo:

Clase	Probabilidad
Casa	0.06
Botella	0,04
Farola	0,15
Gato	0,28
Perro	0,34
Niño	0,04
Adulto	0,02
Bicicleta	0,03
Semáforo	0,001
Puente	0,039

En este nuevo ejemplo, también le hemos pasado una imagen de una gato pero la probabilidad de ser gato es del 28% mientras que la de ser perro es del 34%. Por ello diríamos que no ha acertado.

Sin embargo usando la métrica de Top-2 Accuracy, diríamos que ha acertado si el gato está entre las 2 que tiene mayor probabilidad. Y en este caso si que diríamos que ha acertado.

Esta métrica tiene sentido cuando hay muchísimas clases (En ImageNet hay 1000 clases). Y aunque la predicción correcta no sea la mejor al menos está entre las 2 primeras Top-2-Accuracy.

En el siguiente artículo Image classification with Vision Transformer se ve como se usa la métrica de Top-5-Accuracy.

Keras

en keras se puede usar esta métrica con tf.keras.metrics.SparseTopKCategoricalAccuracy.

Por defecto esta métrica calcula es top-5-Accuracy.Pero se puede cambiar con el parámetro k.

Más información:

Top-N Accuracy Metrics

ImageNet

An Introduction to ImageNet

Image classification with Vision Transformer

What is the difference between sparse_categorical_crossentropy and categorical_crossentropy?

Fbeta-score

El permite ajustar si penalizamos más los falsos positivos o los falsos negativos. Al dar más importancia a uno que a otro realmente no es una métrica de rendimiento general ya que está "ponderada".

La formula es:

Si la fórmula es la de por eso se le llama así porque la es un 1.

Interpretación de β

Si β = 1, la métrica se reduce al F1-score, que da igual peso a la precisión y la sensibilidad.

Si β > 1, penaliza más una baja sensibilidad, lo que significa que los falsos negativos (FN) penalizan más que los falsos positivos (FP).

Si β < 1, penaliza más una baja precisión, lo que significa que los falsos positivos (FP) penalizan más que los falsos negativos (FN).

¿Pero cuanto es realmente se valor? Veámoslo con un ejemplo con β = 2 frente a β = 2.5.

Si β = 2, la sensibilidad es 4 veces más importante que la precisión, porque 𝛽²=2²=4

Si β = 2.5, la sensibilidad es 6,25 veces más importante que la precisión, porque 𝛽²=2.5²=6.25

Es decir, el valor de β no es la relación directa entre sensibilidad y precisión, sino que se eleva al cuadrado. A medida que β aumenta, la sensibilidad pesa exponencialmente más en la precisión.

Veamos los siguientes ejemplos:

Con β=2, la baja sensibilidad penaliza 4 veces más que la precisión

Sensibilidad	Precisión	β

Con β=0,5 la baja precisión penaliza 4 veces más que la sensibilidad

Sensibilidad	Precisión	β

Para calcular la se usa la regla de:

Si queremos que la baja sensibilidad penalice veces más que la precisión, la fórmula es:

Si queremos que la baja precisión penalice veces más que la sensibilidad, la fórmula es:

Más información:

Why f beta score define beta like that?

Explanation of the F beta formula

The truth of the F-measure