Sur-échantillonnage (Oversampling) des classes minoritaires avec RandomOverSampler de imblearn
Le sur-échantillonnage (oversampling) des classes minoritaires avec RandomOverSampler de la bibliothèque imblearn est une technique permettant de rééquilibrer un dataset en augmentant le nombre d’exemples dans la classe minoritaire. Cette méthode consiste à générer de nouvelles instances synthétiques de la classe minoritaire, généralement en répliquant aléatoirement les exemples existants.
Fonctions :
-
RandomOverSampler()
Le RandomOverSampler est utilisé pour effectuer un sur-échantillonnage des classes minoritaires dans un jeu de données déséquilibré. L'objectif est d'augmenter le nombre d'exemples dans la classe minoritaire en répliquant certains exemples existants, ce qui aide à équilibrer la distribution des classes et à améliorer la performance du modèle, notamment pour la classe minoritaire.
Importation :
from imblearn.over_sampling import RandomOverSampler
Attributs :
Paramètre Description sampling_strategy
Stratégie de sur-échantillonnage. Peut être 'auto'
pour équilibrer les classes, ou un nombre pour spécifier un ratio.random_state
Contrôle la reproductibilité de l'échantillonnage aléatoire. Par défaut, None
.replacement
Détermine si le sur-échantillonnage est effectué avec ou sans remplacement. Par défaut, False
.Exemple de code :
from imblearn.over_sampling import RandomOverSampler # Initialisation du RandomOverSampler oversampler = RandomOverSampler() # Appliquer le sur-échantillonnage X_resampled, y_resampled = oversampler.fit_resample(X, y) # Afficher la distribution des classes avant et après print("Distribution des classes avant sur-échantillonnage :") print(y.value_counts()) print("Distribution des classes après sur-échantillonnage :") print(pd.Series(y_resampled).value_counts())
Explication du code :
- Importation :
RandomOverSampler
est importé depuisimblearn.over_sampling
pour être utilisé dans le processus de sur-échantillonnage. - Initialisation de l'oversampler : Un objet
oversampler
est créé. Il peut être configuré pour ajuster la stratégie de sur-échantillonnage selon les besoins (par défaut, la stratégie est'auto'
, ce qui équilibre les classes). - Application du sur-échantillonnage : La méthode
fit_resample(X, y)
applique le sur-échantillonnage sur les données d'entréeX
et les labelsy
, produisant des versions sur-échantillonnéesX_resampled
ety_resampled
. - Affichage de la distribution des classes : Avant et après l'application de
RandomOverSampler
, la distribution des classes est imprimée pour observer les changements.
Remarques
- Le sur-échantillonnage peut conduire à un sur-apprentissage (overfitting), car les exemples minoritaires sont dupliqués, ce qui peut rendre le modèle trop spécialisé sur ces exemples et moins généralisable.
- Il est important de tester différentes stratégies d'échantillonnage (sur-échantillonnage, sous-échantillonnage ou une combinaison des deux) pour identifier la meilleure approche pour un modèle spécifique.
- Importation :