Supongamos que quiero aprender un clasificador que predice si un correo electrónico es spam. Y supongamos que solo el 1% de los correos electrónicos son spam.
Lo más fácil sería aprender el clasificador trivial que dice que ninguno de los correos electrónicos son spam. Este clasificador nos daría un 99% de precisión, pero no aprendería nada interesante y tendría una tasa de 100% de falsos negativos.
Para resolver este problema, la gente me ha dicho que "reduzca la muestra" o que aprenda en un subconjunto de datos donde el 50% de los ejemplos son spam y el 50% no lo son.
Pero estoy preocupado por este enfoque, ya que una vez que construimos este clasificador y comenzamos a usarlo en un corpus real de correos electrónicos (a diferencia de un conjunto de prueba 50/50), puede predecir que muchos correos electrónicos son spam cuando ' re realmente no. Solo porque está acostumbrado a ver mucho más spam del que realmente hay en el conjunto de datos.
Entonces, ¿cómo solucionamos este problema?
("Upsampling" o repetir los ejemplos de entrenamiento positivo varias veces, por lo que el 50% de los datos son ejemplos de entrenamiento positivos, parece sufrir problemas similares).
fuente
El verdadero problema aquí es su elección de métrica: el% de precisión es una mala medida del éxito de un modelo en un conjunto de datos no equilibrado (por la razón exacta que menciona: es trivial lograr un 99% de precisión en este caso).
Equilibrar su conjunto de datos antes de ajustar el modelo es una mala solución, ya que sesga su modelo y (aún peor) arroja datos potencialmente útiles.
Es mucho mejor equilibrar su métrica de precisión, en lugar de equilibrar sus datos. Por ejemplo, podría utilizar la precisión equilibrada cuando se evalúa a modelar:
(error for the positive class + error for the negative class)/2
. Si predice todo positivo o todo negativo, esta métrica será50%
una buena propiedad.En mi opinión, la única razón para reducir la muestra es cuando tienes demasiados datos y no puedes ajustarte a tu modelo. Muchos clasificadores (regresión logística, por ejemplo) funcionarán bien con datos no balanceados.
fuente
Como siempre
@Marc Claesen
como una gran respuesta.Solo agregaría que el concepto clave que parece faltar es el concepto de una función de costo . En cualquier modelo tiene un costo implícito o explícito de falsos negativos a falsos positivos (FN / FP). Para los datos desequilibrados descritos, a menudo se desea tener una relación de 5: 1 o 10: 1. Hay muchas formas de introducir funciones de costos en los modelos. Un método tradicional es imponer un límite de probabilidad en las probabilidades producidas por un modelo; esto funciona bien para la regresión logística.
Un método utilizado para clasificadores estrictos que no generan estimaciones de probabilidad de forma natural es submuestrear la clase mayoritaria en una proporción que induzca la función de costo que le interesa. Tenga en cuenta que si muestrea a 50/50 está induciendo una función de costo arbitraria. La función de costo es diferente pero tan arbitraria como si se tomara una muestra a la tasa de prevalencia. A menudo puede predecir una proporción de muestreo adecuada que corresponde a su función de costo (generalmente no es 50/50), pero la mayoría de los profesionales con los que he hablado solo prueban un par de proporciones de muestreo y eligen la más cercana a su función de costo.
fuente
Respondiendo directamente a la pregunta de Jessica: una de las razones para reducir el muestreo es cuando trabajas con un gran conjunto de datos y enfrentas límites de memoria en tu computadora o simplemente quieres reducir el tiempo de procesamiento. La disminución de la resolución (es decir, tomar una muestra aleatoria sin reemplazo) de los casos negativos reduce el conjunto de datos a un tamaño más manejable.
Usted mencionó el uso de un "clasificador" en su pregunta, pero no especificó cuál. Un clasificador que puede evitar son los árboles de decisión. Cuando ejecuto un árbol de decisión simple en datos de eventos raros, a menudo encuentro que el árbol construye solo una raíz, dado que tiene dificultades para dividir tan pocos casos positivos en categorías. Puede haber métodos más sofisticados para mejorar el rendimiento de los árboles para eventos raros; no conozco ninguno fuera de mi cabeza.
Por lo tanto, usar una regresión logística que devuelva un valor de probabilidad pronosticado continuo, como lo sugiere Marc Claesen, es un mejor enfoque. Si está realizando una regresión logística en los datos, los coeficientes siguen siendo imparciales a pesar de que hay menos registros. Tendrá que ajustar la intersección, , de su regresión de acuerdo con la fórmula de Hosmer y Lemeshow, 2000:β0
donde es la fracción de casos positivos en su población previa al muestreo.p+
Puede encontrar su umbral de ID de correo no deseado preferido con el ROC al calificar primero el conjunto de datos completo con los coeficientes del modelo trazados en el conjunto de datos disminuido y luego clasificar los registros de mayor a menor probabilidad pronosticada de ser spam. Luego, tome los mejores registros calificados, donde es el umbral que desea establecer (100, 500, 1000, etc.) y luego calcule el porcentaje de casos falsos positivos en los casos superiores y el porcentaje de casos falsos negativos en el nivel inferior restante de - casos para encontrar el equilibrio correcto de sensibilidad / especificidad que satisfaga sus necesidades.n n n N n
fuente
Por supuesto, clasificar todo como 'no spam' le permite decir que, dados 100 correos, clasifica correctamente 99 de ellos, pero también clasifica como 'no spam' el único etiquetado como spam (100% falso positivo). Resulta que la métrica que elige para evaluar el algoritmo no se adapta. Este video ejemplifica el concepto.
En términos generales, equilibrar el conjunto de datos le permite sopesar los errores de clasificación errónea. Un algoritmo que usa un conjunto de entrenamiento desequilibrado presumiblemente no aprenderá a discriminar las características, porque no le daría mucha importancia al hecho de que clasifica erróneamente los datos de la clase escasa.
fuente
No elegiría tanto el muestreo como el muestreo descendente, ya que ambos engañan al algoritmo de aprendizaje, sin embargo, si los datos se desequilibran, la medida de precisión se vuelve inválida o no informativa, por lo tanto, es mejor usar medidas de precisión y recuperación, ambas dependen principalmente del TP ( los spams correctamente clasificados en su caso), esto da una buena idea sobre el rendimiento real de su sistema en términos de detección de spam independientemente del número de ejemplos negativos.
fuente