clase:iabd:pia:2eval:tema08.otras-metricas
Diferencias
Muestra las diferencias entre dos versiones de la página.
| — | clase:iabd:pia:2eval:tema08.otras-metricas [2025/11/03 11:37] (actual) – creado - editor externo 127.0.0.1 | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| + | ====== 8.f Otras métricas ====== | ||
| + | Veamos ahora otras métricas de clasificación. | ||
| + | |||
| + | ===== 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 " | ||
| + | |||
| + | ^ 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 '' | ||
| + | |||
| + | 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 '' | ||
| + | |||
| + | 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 '' | ||
| + | |||
| + | En el siguiente artículo [[https:// | ||
| + | |||
| + | |||
| + | |||
| + | === Keras === | ||
| + | en keras se puede usar esta métrica con [[https:// | ||
| + | |||
| + | Por defecto esta métrica calcula es '' | ||
| + | |||
| + | <sxh python> | ||
| + | model.compile(optimizer=' | ||
| + | model.compile(optimizer=' | ||
| + | </ | ||
| + | |||
| + | |||
| + | Más información: | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | ===== Fbeta-score ===== | ||
| + | El $F_{\beta}\text{-score}$ es como [[tema08.metricas_derivadas# | ||
| + | Al dar más importancia a uno que a otro realmente no es una métrica de rendimiento general ya que está " | ||
| + | |||
| + | La formula es: | ||
| + | |||
| + | $$ | ||
| + | F_{\beta}\text{-score}=\frac{(1+\beta^2) \cdot precision \cdot sensibilidad}{\beta^2 \cdot precision+sensibilidad} | ||
| + | $$ | ||
| + | |||
| + | Si $\beta=1$ la fórmula es la de $F_1\text{-score}$ por eso se le llama así porque la $\beta$ 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, | ||
| + | * 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). | ||
| + | |||
| + | Veamos ahora unos ejemplos: | ||
| + | |||
| + | * Con β=1 ambos están equilibrados. Y da lo mismo que se intercambien los valores de Sensibilidad y Precisión | ||
| + | |||
| + | ^ Sensibilidad | ||
| + | | $0,2$ | $0,6$ | $0,5$ | $0,3$ | | ||
| + | | $0,6$ | $0,2$ | $0,5$ | $0,3$ | | ||
| + | |||
| + | * Con β=2, la baja sensibilidad penaliza 4 veces más que la precisión | ||
| + | |||
| + | ^ Sensibilidad | ||
| + | | $0,2$ | $0,6$ | $2$ | $0, | ||
| + | | $0,6$ | $0,2$ | $2$ | $0, | ||
| + | |||
| + | |||
| + | El caso base es 0,3 y al usar β=2; con una baja sensibilidad (0,2) el resultado es más bajo aun (0,23) mientras que con una alta sensibilidad (0,6) el valor es mayor (0,43) | ||
| + | |||
| + | * Con β=0,5 la baja precisión penaliza 4 veces más que la sensibilidad | ||
| + | |||
| + | ^ Sensibilidad | ||
| + | | $0,2$ | $0,6$ | $0,5$ | $0, | ||
| + | | $0,6$ | $0,2$ | $0,5$ | $0, | ||
| + | |||
| + | El caso base es 0,3 y al usar β=2 con una baja precisión (0,2) el resultado es más bajo aun (0,23) mientras que con una alta precisión (0,6) el valor es mayor (0,43) | ||
| + | |||
| + | Más información: | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * {{ : | ||
| + | |||
| + | ==== Valor de β ==== | ||
| + | ¿Pero cuanto es realmente se valor? Veámoslo con un ejemplo con β = 2 frente a β = 2.5. | ||
| + | * Si β = 2, la baja sensibilidad es 4 veces más importante que la precisión, porque 𝛽²=2²=4 | ||
| + | * Si β = 2,5, la baja precisión es 6,25 veces más importante que la sensibilidad, | ||
| + | |||
| + | 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 que la precisión. | ||
| + | |||
| + | Para calcular la $\beta$ se usa la regla de: | ||
| + | * Si queremos que la baja sensibilidad penalice $n$ veces más que la precisión, la fórmula es: | ||
| + | $$ | ||
| + | \beta=\sqrt{n} | ||
| + | $$ | ||
| + | |||
| + | * Si queremos que la baja precisión penalice $n$ veces más que la sensibilidad, | ||
| + | $$ | ||
| + | \beta=\sqrt{\frac{1}{n}} | ||
| + | $$ | ||
| + | |||
| + | |||
| + | |||
| + | Veamos ahora ejemplo de valores alto y bajos de β. | ||
| + | * **β> | ||
| + | * Diagnóstico de enfermedades graves (Ejemplo: cáncer, VIH, COVID-19): | ||
| + | * Detección de fraude financiero: Es preferible revisar más transacciones sospechosas (falsos positivos) que dejar pasar fraudes reales (falsos negativos). | ||
| + | * Sistemas de seguridad y detección de amenazas (Ejemplo: detección de intrusos en redes, ataques cibernéticos, | ||
| + | * **β< | ||
| + | * Clasificación de correos como spam: Un falso negativo (un spam que llega a la bandeja de entrada) es molesto, pero un falso positivo (un email importante que va a la carpeta de spam) puede ser grave. | ||
| + | * Recomendación de productos o publicidad personalizada: | ||
| + | * Contratación automática basada en IA: Un falso positivo significaría contratar a un candidato inadecuado, lo que puede ser costoso para la empresa. Es mejor ser más estricto en la selección, aunque se descarte algún candidato válido. | ||
| + | * Sistemas judiciales y de evaluación de riesgos penales: Un falso positivo (clasificar a una persona como de "alto riesgo" | ||
| + | |||
| + | ==== Keras ==== | ||
| + | En keras se puede usar esta métrica con [[https:// | ||
| + | |||
| + | Lo importante es que hay que establecer el parámetro de β (como un '' | ||
| + | |||
| + | <sxh python> | ||
| + | metrics=[tf.keras.metrics.FBetaScore(beta=2.0)] | ||
| + | </ | ||
| + | |||
| + | <sxh python> | ||
| + | history.history[' | ||
| + | history.history[' | ||
| + | </ | ||
| + | |||
| + | |||
| + | Más información: | ||
| + | * [[https:// | ||
| + | |||
| + | |||
| + | |||
