What is SMOTE?

A payments team trains a fraud model on a year of transactions in which only a small share are fraudulent. A model can score high accuracy by predicting “not fraud” almost every time. SMOTE is one way to give the training data more fraud-like examples without copying the same records over and over.

SMOTE was introduced by Nitesh Chawla and colleagues in a 2002 paper in the Journal of Artificial Intelligence Research. The paper shows that combining their method of over-sampling the minority class with under-sampling the majority class can achieve better classifier performance in ROC space than under-sampling the majority class alone.

How SMOTE creates a synthetic example, as described in the imbalanced-learn over-sampling guide:

  • pick a record from the rare class
  • find its nearest neighbors among the other rare-class records
  • choose one neighbor and create a new record at a random point on the line between the two
  • repeat until the rare class reaches the share the team wants in the training data

How is SMOTE different from random oversampling?

  • Random oversampling, or upsampling, duplicates existing rare-class records, so the model sees the same examples more often.
  • SMOTE creates new points between existing rare-class records, so the added examples are similar but not identical.
  • Under-sampling removes majority-class records, and class weighting keeps the data as is but penalizes errors on the rare class more. All four respond to an imbalanced dataset, and SMOTE is one form of data augmentation.

Where does SMOTE break in AI work?

SMOTE breaks when it is applied before the data is split. The imbalanced-learn guide to common pitfalls describes resampling the entire dataset before splitting it into training and test partitions as a common mistake that leaks information and makes reported performance over-optimistic. Synthetic records belong in the training data only, and the model should be scored on original records.

Synthetic points can also be unrealistic. Interpolating between two customers can produce combinations no real customer has, especially for categorical fields. The gain should be compared against simpler options on the original data, such as threshold tuning or class weighting. CUBIG’s Iranian Churn experiment lists minority-class augmentation among its preparation steps without fully documenting the algorithm; the write-up notes it did not compare that against threshold tuning or class weighting on the original data.

CUBIG Shorts

Plausible Rows Aren’t the Same as Useful Rows

A short take on synthetic rows: values can look reasonable on their own while the combinations are wrong for the task.

▶  Watch on YouTubeSubscribe

Frequently asked questions

When should SMOTE be used?

When a classification task has a rare class that matters, such as fraud, churn or equipment failure, and the model misses too many of those cases. It should be tested against simpler options, such as class weights or a different threshold.

Should SMOTE be applied to test data?

No. Synthetic records should be added to the training data only, after the split, and the model should be evaluated on original records that reflect real class proportions.

Does SMOTE cause overfitting?

It can. Synthetic points are built from a small set of rare-class records, so a model can learn patterns specific to those records. Evaluating on untouched original data shows whether the gain holds.