Supongamos que tienes un modelo de regresión logística para la detección de correos electrónicos de spam que pide un valor entre 0 y 1, que representa la probabilidad de que un correo electrónico determinado sea spam. Una predicción de 0.50 significa que hay un 50% de probabilidad de que el correo electrónico sea spam, una predicción de 0.75 significa que hay un 75% de probabilidad de que el correo electrónico sea spam, etcétera.
Quieres implementar este modelo en una aplicación de correo electrónico para filtrar el spam en una carpeta de correo separada. Sin embargo, para hacerlo, debes convertir el resultado numérico sin procesar del
modelo (p.ej., 0.75
) en una de las dos categorías: "es spam" o "no es spam".
Para realizar esta conversión, eliges una probabilidad de umbral, llamada umbral de clasificación.
Los ejemplos con una probabilidad superior al valor del umbral se asignan a la clase positiva, la clase para la que realizas la prueba (aquí, spam
). Los ejemplos con una probabilidad más baja se asignan a la clase negativa, la clase alternativa (aquí, not spam
).
Haz clic aquí para obtener más detalles sobre el umbral de clasificación
Te preguntarás qué sucede si la puntuación prevista es igual al umbral de clasificación (por ejemplo, una puntuación de 0.5 cuando el umbral de clasificación también es 0.5). El manejo de este caso depende de la implementación en particular que se elija para el modelo de clasificación. La biblioteca de Keras predice la clase negativa si la puntuación y el umbral son iguales, pero otras herramientas o frameworks pueden controlar este caso de manera diferente.
Supongamos que el modelo califica un correo electrónico como 0.99, lo que predice que tiene un 99% de probabilidades de ser spam, y otro correo electrónico como 0.51, lo que predice que tiene un 51% de probabilidades de ser spam. Si estableces el umbral de clasificación en 0.5, el modelo clasificará ambos correos electrónicos como spam. Si estableces el umbral en 0.95, solo el correo electrónico con una puntuación de 0.99 se clasificará como spam.
Si bien 0.5 puede parecer un umbral intuitivo, no es una buena idea si el costo de un tipo de clasificación incorrecta es mayor que el otro o si las clases no están equilibradas. Si solo el 0.01% de los correos electrónicos es spam, o si clasificar correos electrónicos legítimos de forma incorrecta es peor que permitir que el spam entre en la carpeta Recibidos, etiquetar como spam todo lo que el modelo considere que tiene al menos un 50% de probabilidades de ser spam produce resultados no deseados.
Matriz de confusión
La puntuación de probabilidad no es la realidad ni la verdad fundamental. Hay cuatro resultados posibles para cada salida de un clasificador binario. En el ejemplo del clasificador de spam, si organizas la verdad fundamental como columnas y la predicción del modelo como filas, el resultado es la siguiente tabla, llamada matriz de confusión:
Positivo real | Negativo real | |
---|---|---|
Positivo previsto | Verdadero positivo (VP): Un correo electrónico de spam clasificado correctamente como tal. Estos son los mensajes de spam que se envían automáticamente a la carpeta de spam. | Falso positivo (FP): Un correo electrónico que no es spam clasificado erróneamente como tal. Estos son los correos electrónicos legítimos que terminan en la carpeta de spam. |
Negativo previsto | Falso negativo (FN): Un correo electrónico de spam clasificado erróneamente como no spam. Son correos electrónicos de spam que el filtro de spam no detecta y que llegan a la carpeta Recibidos. | Verdadero negativo (VN): Un correo electrónico que no es spam y que se clasificó correctamente como tal. Estos son los correos electrónicos legítimos que se envían directamente a la carpeta Recibidos. |
Observa que el total de cada fila muestra todos los positivos pronosticados (VP + FP) y todos los negativos pronosticados (FN + TN), independientemente de la validez. Mientras tanto, el total de cada columna muestra todos los verdaderos positivos (VP + FN) y todos los verdaderos negativos (FP + VN), independientemente de la clasificación del modelo.
Cuando el total de positivos reales no está cerca del total de negativos reales, el conjunto de datos está desbalanceado. Un ejemplo de un conjunto de datos desequilibrado podría ser un conjunto de miles de fotos de nubes, en el que el tipo de nube poco común que te interesa, por ejemplo, las nubes volutus, solo aparece unas pocas veces.
Efecto del umbral en los verdaderos y falsos positivos y negativos
Los diferentes umbrales suelen generar diferentes cantidades de verdaderos y falsos positivos, y verdaderos y falsos negativos. En el siguiente video, se explica por qué ocurre esto.
Intenta cambiar el umbral por tu cuenta.
Este widget incluye tres conjuntos de datos de juguete:
- Separado: En este caso, los ejemplos positivos y negativos suelen estar bien diferenciados, y la mayoría de los ejemplos positivos tienen puntuaciones más altas que los ejemplos negativos.
- Sin separar, en el que muchos ejemplos positivos tienen puntuaciones más bajas que los ejemplos negativos, y muchos ejemplos negativos tienen puntuaciones más altas que los ejemplos positivos.
- Desequilibrados, que contienen solo algunos ejemplos de la clase positiva.