Tengo un conjunto de datos en forma de (características, salida binaria 0 o 1), pero 1 ocurre muy raramente, por lo que al predecir siempre 0, obtengo una precisión entre 70% y 90% (dependiendo de los datos particulares que mire) ) Los métodos de ML me dan la misma precisión, y creo que debería haber algunos métodos estándar para aplicar en esta situación, que mejorarían la precisión sobre la regla de predicción obvia.
machine-learning
classification
binary-data
unbalanced-classes
Gato perezoso
fuente
fuente
Respuestas:
Tanto hxd1011 como Frank tienen razón (+1). Esencialmente, el remuestreo y / o el aprendizaje sensible al costo son las dos formas principales de solucionar el problema de los datos desequilibrados; tercero es usar métodos de kernel que a veces podrían verse menos afectados por el desequilibrio de clases. Permítanme enfatizar que no hay una solución de bala de plata. Por definición, tiene una clase que está representada inadecuadamente en sus muestras.
Habiendo dicho lo anterior, creo que los algoritmos SMOTE y ROSE les resultarán muy útiles. SMOTE utiliza efectivamente una vecinos -nearest enfoque para excluir a los miembros de la clase de la mayoría, mientras que de forma similar la creación de ejemplos de síntesis de una clase minoritaria. ROSE intenta crear estimaciones de las distribuciones subyacentes de las dos clases utilizando un enfoque de arranque suavizado y muestrearlas para obtener ejemplos sintéticos. Ambos están disponibles en R, SMOTE en el paquete DMwR y ROSE en el paquete con el mismo nombre . Tanto SMOTE como ROSE dan como resultado un conjunto de datos de entrenamiento que es más pequeño que el original.k
Probablemente diría que una métrica mejor (o menos mala) para el caso de datos desequilibrados es usar el área de la característica operativa y / o receptor de Cohenk debajo de la curva . El kappa de Cohen controla directamente la precisión esperada, AUC ya que es una función de sensibilidad y especificidad, la curva es insensible a las disparidades en las proporciones de clase. Nuevamente, tenga en cuenta que estas son solo métricas que deben usarse con un gran grano de sal. Idealmente, debe adaptarlos a su problema específico teniendo en cuenta las ganancias y los costos que las clasificaciones correctas e incorrectas transmiten en su caso. He encontrado que mirando curvas de elevaciónen realidad es bastante informativo para este asunto. Independientemente de su métrica, debe intentar utilizar una prueba separada para evaluar el rendimiento de su algoritmo; exactamente debido al sobreajuste desequilibrado de la clase es aún más probable, por lo que las pruebas fuera de la muestra son cruciales.
Probablemente el artículo reciente más popular sobre el tema es Aprender de datos desequilibrados de He y Garcia. Da una muy buena visión general de los puntos planteados por mí y en otras respuestas. Además, creo que el recorrido sobre Submuestreo para desequilibrios de clase , presentado por Max Kuhn como parte del paquete caret , es un excelente recurso para obtener un ejemplo de estructura de cómo puede medirse el submuestreo excesivo o excesivo, así como la creación de datos sintéticos unos contra otros.
fuente
Primero, la métrica de evaluación para datos desequilibrados no sería la precisión. Supongamos que está haciendo detección de fraude, que el 99.9% de sus datos no son fraudes. Podemos hacer fácilmente un modelo ficticio que tenga una precisión del 99.9%. (solo pronostique todos los datos sin fraude).
Desea cambiar su métrica de evaluación de precisión a otra, como puntaje F1 o precisión y recuperación . En el segundo enlace que proporcioné. Hay detalles e intuiciones sobre por qué funcionará la recuperación de precisión.
Para datos altamente desequilibrados, construir un modelo puede ser muy desafiante. Puedes jugar con la función de pérdida ponderada o modelar solo una clase. como SVM de una clase o se ajusta a un gaussiano multivariado (como el enlace que proporcioné anteriormente)
fuente
Los problemas de desequilibrio de clase se pueden abordar con aprendizaje sensible al costo o remuestreo. Vea las ventajas y desventajas del aprendizaje sensible al costo versus el muestreo , copiado a continuación:
{1} proporciona una lista de ventajas y desventajas del aprendizaje sensible al costo versus el muestreo:
También hicieron una serie de experimentos, que no fueron concluyentes:
Luego intentan comprender qué criterios en los conjuntos de datos pueden indicar qué técnica se ajusta mejor.
También comentan que SMOTE puede aportar algunas mejoras:
{1} Weiss, Gary M., Kate McCarthy y Bibi Zabar. "Aprendizaje sensible al costo versus muestreo: ¿cuál es el mejor para manejar clases desequilibradas con costos de error desiguales?" DMIN 7 (2007): 35-41. https://scholar.google.com/scholar?cluster=10779872536070567255&hl=en&as_sdt=0,22 ; https://pdfs.semanticscholar.org/9908/404807bf6b63e05e5345f02bcb23cc739ebd.pdf
fuente
Varias respuestas a esta consulta ya han proporcionado varios enfoques diferentes, todos válidos. Esta sugerencia es de un artículo y software asociado de Gary King, eminente politólogo de Harvard. Es coautor de un artículo titulado Regresión logística en datos de eventos raros que proporciona algunas soluciones bastante convincentes.
Aquí está el resumen:
Aquí hay un enlace al documento ... http://gking.harvard.edu/files/abs/0s-abs.shtml
fuente
El desarrollo de clasificadores para conjuntos de datos con clases desequilibradas es un problema común en el aprendizaje automático. Los métodos basados en la densidad pueden tener ventajas significativas sobre los "clasificadores tradicionales" en tal situación.
Puede consultar el siguiente documento:
"Un estimador de plug-in computable de conjuntos de volumen mínimo para detección de novedad", C. Park, J. Huang e Y. Ding, Investigación de operaciones, 58 (5), 2013.
fuente
Este es el tipo de problema en el que la detección de anomalías es un enfoque útil. Esto es básicamente lo que rodrigo describió en su respuesta, en la que usted determina el perfil estadístico de su clase de entrenamiento y establece un umbral de probabilidad más allá del cual se determina que las mediciones futuras no pertenecen a esa clase. Aquí hay un video tutorial , que debería comenzar. Una vez que haya absorbido eso, recomendaría buscar la Estimación de densidad del núcleo.
fuente