

Imbalanced classification#
Imbalanced, mal balancé, skewed, ce type de problème de données est très fréquent. Il signifie qu’une classe dans un problème de classification est sous-représentée par rapport aux autres et que le modèle de machine learning n’est pas suffisamment pénalisé s’il n’en tient pas compte. Le cas classique est un problème à deux classes, une majoritaire à 99%, une minoritaire à 1%. Un modèle qui répond toujours la majorité est correct 99% du temps mais il n’a rien appris puisque sa réponse est constante. Comment le forcer à apprendre quelque chose ? Il existe trois types approches et la réponse est souvent un mélange des trois :
boosting : le modèle pondère davantage les exemples sur lesquels il fait des erreurs, a fortiori, les exemples de la classe minoritaire
over sampling : on multiplie les exemples de la classe minoritaire de façon à lui donner plus de poids
under sampling : on réduit le nombre d’exemples de la classe majoritaire sans altérer la capacité du modèle à trouver une bonne solution, cela consiste à enlever des exemples loin de la frontière de classification.
Notebooks
Lectures
Classification of Imbalanced Data with a Geometric Digraph Family
rusboost.py (plutôt un bout de code)
Boosting and AdaBoost for Machine Learning, A Gentle Introduction to the Gradient Boosting Algorithm for Machine Learning, Thoughts on Hypothesis Boosting, Predictions Games and Arcing Algorithms
Lectures - subsampling
Modules
imbalanced-learn (la documentation est intéressante)