Optimización para curvas de recuperación de precisión bajo desequilibrio de clase


30

Tengo una tarea de clasificación en la que tengo varios predictores (uno de los cuales es el más informativo), y estoy usando el modelo MARS para construir mi clasificador (estoy interesado en cualquier modelo simple, y usar glms con fines ilustrativos sería bien también). Ahora tengo un gran desequilibrio de clase en los datos de entrenamiento (alrededor de 2700 muestras negativas para cada muestra positiva). Al igual que las tareas de recuperación de información, estoy más preocupado por predecir las muestras de prueba positivas de mejor clasificación. Por esta razón, el rendimiento en las curvas de Precision Recall es importante para mí.

En primer lugar, simplemente entrené el modelo en mis datos de entrenamiento manteniendo el desequilibrio de clase tal como está. Visualizo mi modelo entrenado en rojo, y la entrada más importante en azul.

Capacitación sobre datos no balanceados, evaluación sobre datos no balanceados :

PR para entrenamiento desequilibrado ROC para entrenamiento desequilibrado

Pensando que el desequilibrio de clase está desestabilizando el modelo, ya que aprender las muestras positivas de más alto rango es una parte minúscula de todo el conjunto de datos, realicé un muestreo de los puntos de entrenamiento positivos para obtener un conjunto equilibrado de datos de entrenamiento. Cuando trazo el rendimiento en el conjunto de entrenamiento equilibrado , obtengo un buen rendimiento. Tanto en las curvas PR como ROC, mi modelo entrenado funciona mejor que las entradas.

Capacitación sobre datos balanceados (muestreados), evaluación también sobre datos balanceados (muestreados):

PR para un entrenamiento equilibrado, visualizado en un conjunto de datos equilibrado ROC para un entrenamiento equilibrado, visualizado en un conjunto de datos equilibrado

Sin embargo, si uso este modelo entrenado en los datos balanceados, para predecir sobre el conjunto de entrenamiento original y no balanceado, todavía obtengo un mal desempeño en la curva PR.

Capacitación sobre datos balanceados (muestreados), evaluación sobre datos originales no balanceados:

PR para un entrenamiento equilibrado, visualizado en un conjunto de datos original no balanceado ROC para un entrenamiento equilibrado, visualizado en un conjunto de datos original no balanceado

Entonces mis preguntas son:

  1. ¿Es la razón por la que la visualización de la curva PR muestra un rendimiento inferior de mi modelo entrenado (rojo), mientras que la curva ROC muestra mejoras debido al desequilibrio de clase?
  2. ¿Pueden los enfoques de remuestreo / muestreo ascendente / muestreo descendente resolver esto para obligar a la capacitación a centrarse en la región de alta precisión / baja memoria?
  3. ¿Hay alguna otra forma de enfocar el entrenamiento en la región de alta precisión / baja recuperación?

¿Podría editar su pregunta para aclarar qué medidas se calculan en el conjunto de capacitación y cuáles en los datos retenidos?
Jack Tanner

@JackTanner, todo se calcula en el conjunto de entrenamiento por ahora. Como el modelo no tiene tantos parámetros y la cantidad de muestras en el conjunto de entrenamiento es enorme, no me preocupo demasiado por el sobreajuste. Además, quiero asegurarme de que estoy obteniendo un buen rendimiento en el conjunto de entrenamiento antes de que pueda esperar en el conjunto de prueba.
highBandWidth

¿Qué control está controlando en su algoritmo de aprendizaje para evaluar la precisión en diferentes niveles de recuperación? ¿Ha intentado expandir su conjunto de características, por ejemplo, con combinaciones de características y transformaciones?
Jack Tanner el

@JackTanner, el modelo que tengo (MARS con función logit) da resultados en el rango de 0 a 1, similar a la regresión logística. Básicamente es lo mismo, pero incluye algunas características más. Para obtener precisión en diferentes retiros, simplemente configuro los umbrales en diferentes puntos. Solo uso la forma estándar para calcular PR o ROC de una lista clasificada.
highBandWidth

Respuestas:


15
  1. La curva ROC es insensible a los cambios en el desequilibrio de clase; ver Fawcett (2004) "Gráficos ROC: notas y consideraciones prácticas para los investigadores".
  2. El muestreo ascendente de la clase de baja frecuencia es un enfoque razonable.
  3. Hay muchas otras formas de lidiar con el desequilibrio de clase. Impulsar y embolsar son dos técnicas que vienen a la mente. Esto parece un estudio reciente relevante: Comparación de técnicas de refuerzo y embolsado con datos ruidosos y desequilibrados

PD Problema ordenado; Me encantaría saber cómo resulta.



1

Quería llamar la atención sobre el hecho de que los últimos 2 experimentos están utilizando el mismo modelo en casi el mismo conjunto de datos. La diferencia en el rendimiento no es la diferencia del modelo, se explica por diferentes distribuciones del conjunto de datos de validación y las propiedades de METRICS particulares utilizados: precisión y recuperación, que dependen en gran medida de esa distribución. Para elaborar este punto un poco más, si tomó X entradas distintas de su conjunto de datos de validación inicial y replicó la clase minoritaria para el conjunto de datos escalado, su modelo hará las mismas predicciones para esas entradas X, correctas o incorrectas, tanto en escalado como no balanceado conjuntos de datos de validación. La única diferencia es que para cada falso positivo habrá menos positivos verdaderos en el conjunto de datos inicial (por lo tanto, menor precisión) y más positivos verdaderos en el conjunto de datos equilibrado (simplemente debido al hecho de que hay más ejemplos positivos en el conjunto de datos en general) . Es por eso que se dice que Precision and Recall son sensibles al sesgo. Por otro lado, como ilustran también sus experimentos, ROC no cambia. Esto se puede observar observando también su definición. Es por eso que se dice que ROC no es sensible al sesgo.

Todavía no tengo buenas respuestas para los puntos 2 y 3, ya que las estoy buscando :)


0

Suponiendo que las muestras positivas muestreadas tienen la "misma distribución" que en el "conjunto original". A medida que aumenta el número de muestras positivas, ocurren pocos cambios

1) el número de TruePositives (TP) aumenta para "todos los umbrales" y, como resultado, las relaciones TP / (TP + FP) y TP / (TP + FN) aumentan para todos los umbrales. De modo que el área bajo PRC está aumentando.

2) la precisión esperada, también llamada precisión del modelo "tonto", aumenta de ~ 1/2700 (en el conjunto original) a ~ 1/2 (en caso de equilibrio "ideal"). Suponiendo que su modelo funciona mejor que el modelo "tonto" significa que el área bajo la curva será más de 0.00037 en el "conjunto original" y más de 0.5 en el conjunto idealmente equilibrado.

3) mientras se entrena el modelo en un conjunto de datos mejorado, algunos modelos pueden "sobreajustar" muestras positivas.

Con respecto a las curvas ROC, se sabe que las curvas ROC muestran poco efecto de las variaciones de distribución de clase (el aumento de escala tiene un efecto muy pequeño en FPR, mientras que puede ver algún efecto en TPR).

Con respecto al enfoque en la región de alta precisión / baja recuperación, puede optimizar con respecto a una función de costo donde los falsos positivos son penalizados más que los falsos negativos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.