Existen varias estrategias para aprender de datos no balanceados.
Este documento sobre el tema debería ayudarlo (Una idea de la clasificación con datos desequilibrados: resultados empíricos y tendencias actuales sobre el uso de características intrínsecas de datos (PDF) – Semantic Scholar), pero trataré de resumir algunas estrategias a continuación:
- Submuestreo : elimine muestras de la clase mayoritaria (clase con más muestras) utilizando un algoritmo de submuestreo. Ejemplos: Selección unilateral (OSS), vecinos más cercanos editados (ENN), enlaces Tomek, muestreo aleatorio …
- Sobremuestreo : genera nuevas muestras de la clase minoritaria (clase con pocas muestras) utilizando un algoritmo de sobremuestreo. Ejemplos: SMOTE , BorderlineSMOTE, SPIDER, Random Resampling …
- Aprendizaje sensible al costo : cambie el algoritmo de creación del árbol de decisión para que las clasificaciones erróneas de las muestras de clases minoritarias tengan un costo más alto que las clasificaciones erróneas de las muestras de clases mayoritarias.
- Ensemble Learning : en lugar de usar un solo árbol de decisión, intente usar varios árboles de decisión. Echa un vistazo al algoritmo de ensacado, bosques aleatorios, clasificadores de árboles adicionales, Iterative-Classifier-Selection-Bagging (ICSBagging) …
- Combinación : Combina estrategias de submuestreo, sobremuestreo y aprendizaje conjunto. La mayoría de los métodos de aprendizaje de vanguardia para aprender de datos desequilibrados utilizan una combinación de diferentes estrategias. Elija el que sea mejor para usted.
Además, existe este paquete de python: fmfn / UnbalancedDataset para aprender de datos no balanceados en python. Le proporcionará un acceso fácil a varias estrategias para que pueda evaluar cuál es la mejor para usted. Al evaluar, recuerde utilizar una métrica adecuada, como el Área bajo la curva ROC (AUC).
- Cómo construir un reconocimiento de objetos basado en dispositivos móviles utilizando técnicas de aprendizaje automático
- ¿Cuál es la diferencia entre TensorFlow y Grep? ¿Cuál es el más adecuado para el aprendizaje automático? ¿Por qué o por qué no?
- ¿Auto-sklearn es realmente mejor que un clasificador único optimizado por hiperparámetro? ¿Tienes experiencia con esto?
- ¿Puede un autoencoder sobreajustar cuando tiene una cantidad mucho menor de neuronas de capa oculta que la capa de entrada y también se usa la deserción?
- ¿Cómo se relaciona el error cuadrático medio (RMSE) y la clasificación?