SMOTE for Imbalanced Classification with Python - MachineLearningMastery.com
smoteimbalanced-classificationoversamplingdata-augmentationpython
Abstraction: Synthetic minority oversampling technique for handling class imbalance
Key points:
- SMOTE (Synthetic Minority Oversampling Technique, Chawla et al. 2002) synthesizes new minority-class examples by interpolating between a sample and one of its k=5 nearest neighbors in feature space
- Combining SMOTE oversampling with random undersampling outperforms either technique alone; a 1:10 minority oversample followed by 1:2 undersample raised decision-tree ROC AUC from 0.76 to 0.83
- SMOTE must be applied only to the training fold in cross-validation to avoid data leakage; use a Pipeline to enforce this
- Borderline-SMOTE focuses synthetic generation on misclassified boundary examples; SVMSMOTE uses SVM support vectors to identify the boundary
- ADASYN generates synthetic samples inversely proportional to local minority density, concentrating on hard-to-learn regions but potentially amplifying outliers
- The imbalanced-learn Python library provides SMOTE, BorderlineSMOTE, SVMSMOTE, and ADASYN as drop-in scikit-learn-compatible transforms
Connections: Scikit Learn · Imbalanced Classification · Oversampling · Data Augmentation
Source: https://machinelearningmastery.com/smote-oversampling-for-imbalanced-classification/