SMOTE, short for Synthetic Minority Over-sampling Technique, is one of the most widely used methods for handling imbalanced datasets in machine learning. When one class in your data vastly outnumbers another, most classifiers will learn to predict the majority class almost exclusively, effectively ignoring the rare events you actually care about. SMOTE addresses this by generating synthetic examples of the underrepresented class, filling in the gaps so the model has enough minority-class data to learn meaningful patterns. The technique has become a default tool in fraud detection, medical diagnosis, and dozens of other fields where the interesting cases are rare, but its popularity has also led to widespread misuse and some sharp limitations that practitioners routinely overlook.
How SMOTE Actually Works
The core idea behind SMOTE is surprisingly simple. Rather than duplicating existing minority-class samples (which just gives the model the same examples repeated), SMOTE creates brand-new synthetic samples by interpolating between real ones. For each minority-class data point, the algorithm identifies its nearest neighbors within the same class, picks one of those neighbors, and then creates a new point somewhere along the line connecting the two. The new sample inherits a blend of both points’ features, which means it is plausible but not identical to anything in the original dataset.
This interpolation approach is what makes SMOTE more effective than naive oversampling, which simply copies existing minority samples and tends to cause overfitting. By populating the feature space between real examples, SMOTE encourages the classifier to learn broader decision boundaries around the minority class rather than memorizing a handful of specific cases. The result, in many settings, is a model that recognizes the minority class more reliably without collapsing into rote memorization.
Why Imbalanced Data Causes Problems in the First Place
If you train a model on a dataset where fraudulent transactions make up half a percent of the total, the model can achieve over 99% accuracy by simply predicting “not fraud” every single time. That accuracy number looks great on paper, but the model is useless for its intended purpose. Most classifiers optimize for overall accuracy by default, so they naturally gravitate toward predicting whichever class appears most often. The minority class gets treated as noise.
This is not just a theoretical concern. In healthcare, the events you want to predict, like disease onset or rare adverse reactions, are often uncommon in the training data. In cybersecurity, actual intrusions are dwarfed by legitimate traffic. Balancing techniques like SMOTE exist to correct this skew so that classifiers have enough minority-class signal to learn from. Research consistently shows that models trained on balanced data outperform those trained on raw imbalanced data for tasks where the minority class matters most.1Frontiers in Big Data. Impact of imbalanced features on large datasets
SMOTE Variants and Extensions
The original SMOTE algorithm, published in 2002, was designed for continuous numerical features. Since then, a large family of variants has emerged to handle its shortcomings and extend it to different data types.
One persistent problem with standard SMOTE is that it treats all minority-class samples equally when generating synthetic neighbors. If the minority class contains outliers or noisy data points, SMOTE will happily interpolate toward those outliers, creating synthetic samples in regions of the feature space where the minority class does not actually belong. This generates misleading data that can confuse the classifier rather than help it. Several extensions address this directly by weighting neighbors so that outliers have less influence on where new synthetic samples are placed. Techniques like Distance ExtSMOTE and BGMM SMOTE, for instance, use weighted averages of neighboring instances to improve the quality of synthetic samples and reduce the pull of abnormal data points. Experiments across simulated and real-world datasets show that these variants improve classification performance compared to both the original SMOTE and its most competitive alternatives.2ScienceDirect / Machine Learning with Applications. Enhancing SMOTE for imbalanced data with abnormal minority instances
Another well-known variant, Borderline-SMOTE, focuses synthesis on minority samples that sit near the decision boundary between classes, where the model most needs help distinguishing them. ADASYN (Adaptive Synthetic Sampling) takes a related approach, generating more synthetic samples in regions where the minority class is harder for the model to learn. SMOTE-ENN combines oversampling with a cleaning step, using Edited Nearest Neighbors to remove samples that are misclassified by their neighbors, which helps eliminate noisy synthetic points after they have been created.
The Categorical Data Problem
Standard SMOTE only works with numerical features because it relies on interpolation, and you cannot meaningfully interpolate between categories like “red” and “blue.” For datasets that mix numerical and categorical columns, a variant called SMOTE-NC was developed. It handles the continuous features through normal interpolation and assigns categorical features by taking the most common value among the nearest neighbors.
SMOTE-NC has a notable limitation, though: it requires at least some continuous features in the dataset. If every feature is categorical, SMOTE-NC cannot function at all. A newer method called SMOTE-ENC was designed to address this gap. Experiments show that SMOTE-ENC produces better predictions than SMOTE-NC when the dataset has a substantial number of categorical features and when there is meaningful association between those features and the target class.3arXiv (Appl. Syst. Innov. 2021, 4, 18). SMOTE-ENC: A novel SMOTE-based method to generate synthetic data for nominal and continuous features If you are working with survey data, medical records with coded diagnoses, or any dataset dominated by categorical columns, the choice of variant matters more than the decision to use SMOTE in the first place.
The Calibration Trap
This is where many practitioners get burned. SMOTE and other resampling methods can improve a model’s ability to rank cases correctly, meaning it gets better at telling which patients are higher risk or which transactions are more suspicious. But they often destroy the model’s ability to estimate actual probabilities. If your model says a patient has a 40% chance of a certain diagnosis, you want that number to mean something close to reality. After SMOTE, those probability estimates can be wildly inflated.
A study examining this effect found that models trained on imbalance-corrected data showed severely overestimated probability estimates. For scenarios with very rare events (around 1% frequency), the calibration error was extreme, with median calibration intercepts of −4.5 or lower, meaning the predicted probabilities were orders of magnitude too high. Even in scenarios with a 10% event rate, calibration intercepts dropped to −2.1 or lower after applying SMOTE or similar corrections, compared to intercepts near zero for models trained on uncorrected data.4Journal of the American Medical Informatics Association. The harm of class imbalance corrections for risk prediction models: illustration and simulation using logistic regression A separate study confirmed this pattern, finding that resampled models showed higher Brier scores (worse calibration) with increases of 0.029 to 0.080, along with marked deviations in calibration slope, indicating distorted predicted risks even when the model’s ranking performance was preserved.5PubMed. Tipping the balance: impact of class imbalance correction on the performance of clinical risk prediction models
The practical takeaway is significant. If you only care about ranking (identifying which cases are most likely to be positive, without needing accurate probability numbers), SMOTE can work well. But if you need calibrated probabilities, such as when communicating risk to patients or setting insurance premiums, applying SMOTE without recalibration afterward will produce misleading outputs. Recalibration methods like Platt scaling or isotonic regression can partially fix this, but you need to apply them deliberately. The earlier study found that a recalibration step did correct the distortion, but many practitioners skip this step entirely because they never check calibration in the first place.
High-Dimensional Data and the Curse of Distance
SMOTE relies on the concept of “nearest neighbors,” which means it depends on distance measurements between data points. In high-dimensional spaces, where each sample has hundreds or thousands of features, distance measurements start to behave strangely. Points that are genuinely different start looking equally far from everything else, and the notion of “nearest” loses much of its meaning.
Research has shown that when using Euclidean distance in high-dimensional settings, test samples actually end up closer to SMOTE-generated synthetic samples than to the original minority-class samples they were modeled on. As the number of features increases, this effect grows more pronounced. With enough dimensions (around 300 in one study’s setup), the nearest neighbor of virtually any test sample turns out to be a synthetic SMOTE sample rather than a real one. The practical result is that classifiers like k-nearest neighbors become heavily biased toward predicting the minority class, which defeats the purpose of balanced classification.6PubMed Central. SMOTE for high-dimensional class-imbalanced data
This matters because many of the fields where imbalanced data is common, like genomics, text classification, and medical imaging features, also happen to involve high-dimensional data. If you are working with gene expression profiles or radiomic features extracted from scans, applying vanilla SMOTE with default settings is likely to do more harm than good. Dimensionality reduction before oversampling, or using SMOTE variants specifically designed for high-dimensional spaces, can help mitigate the problem.
The Oversampling-Before-Cross-Validation Mistake
One of the most common and most damaging mistakes with SMOTE is applying it to the entire dataset before splitting into training and validation folds. This sounds innocuous, but it creates a form of data leakage that inflates performance metrics dramatically and gives you a completely false picture of how well your model actually works.
Here is why: SMOTE generates synthetic samples by interpolating between existing minority-class points. If you oversample the whole dataset first and then split, synthetic samples in your validation fold will be interpolations of real samples that exist in your training fold. The model has already seen the building blocks of its test data. It is essentially being tested on data derived from its own training set.
A study specifically investigating this in medical imaging found that applying oversampling before cross-validation produced a large positive bias: up to 0.34 in AUC, 0.33 in sensitivity, 0.31 in specificity, and 0.37 in balanced accuracy compared to correctly applied oversampling. The bias grew worse as the class imbalance increased, with roughly an additional 0.10 AUC inflation for each step up in imbalance severity. Calibration was affected too, with Brier score differences of up to 0.18 between correct and incorrect pipelines.7Nature. Applying oversampling before cross-validation will lead to high bias in radiomics
The fix is straightforward: always apply SMOTE inside each cross-validation fold, only to the training portion. Most modern ML libraries make this easy through pipeline objects that encapsulate preprocessing and modeling together. But published papers in medical imaging and other fields still regularly make this error, producing results that look far better than they would hold up in practice. If you see a study reporting unusually high performance on a highly imbalanced dataset, checking whether oversampling was correctly sequenced is one of the first things worth investigating.
Alternatives That Do Not Require Synthetic Data
SMOTE is not the only way to handle class imbalance, and for some tasks it is not the best way. Two common alternatives avoid generating synthetic data entirely: class-weight tuning and decision-threshold calibration.
Class-weight tuning tells the learning algorithm to penalize misclassification of the minority class more heavily. Instead of modifying the data, you modify the loss function. Most classifiers in popular libraries support a “class_weight” parameter that does exactly this. The minority class gets a higher penalty multiplier, which nudges the model to take its examples more seriously during training. This approach avoids all the problems SMOTE introduces with calibration, high-dimensional distance warping, and data leakage risk, because the original data remains untouched.
Decision-threshold calibration takes yet another angle. Instead of changing the data or the training process, you adjust the threshold at which the model’s output gets classified as positive or negative. Most binary classifiers output a probability score, and the default threshold of 0.5 is rarely optimal for imbalanced problems. Lowering the threshold means the model will flag more cases as positive, catching more of the minority class at the cost of some additional false positives. A large-scale comparison of SMOTE, class weights, and threshold calibration across 30 datasets and 15 model types found all three strategies effective, confirming that synthetic oversampling is only one option among several viable ones.8arXiv. Balancing the Scales: A Comprehensive Study on Tackling Class Imbalance in Binary Classification
A real-world comparison in hospital appointment no-show prediction tested SMOTE, SMOTE-ENN, cost-sensitive learning, and Balanced Random Forest across six classifiers. The three best-performing configurations, which achieved minority-class recall between roughly 0.53 and 0.68 with well-calibrated probabilities, included cost-sensitive Gradient Boosting and Balanced Random Forest alongside Random Forest with SMOTE.9Array. Predicting hospital appointment No-shows under class imbalance: A comparative study with SMOTE, Cost-Sensitive learning and post-hoc calibration The fact that cost-sensitive learning matched SMOTE-based approaches while avoiding synthetic data generation entirely is worth considering, especially when calibration matters or when your data has characteristics that make synthetic interpolation unreliable.
Real-World Applications Where SMOTE Has Helped
Despite its limitations, SMOTE remains genuinely useful in many practical settings, particularly when applied carefully and when the goal is detection rather than probability estimation.
Credit card fraud detection is one of the most common use cases. Fraudulent transactions typically represent a tiny fraction of all transactions, and catching them matters enormously. One study applying SMOTE alongside dimensionality reduction found that Logistic Regression, SVM, k-Nearest Neighbors, and XGBoost models all achieved around 97% correct prediction of both fraudulent and non-fraudulent cases after balancing.10VAWKUM Transactions on Computer Sciences. Optimizing Machine Learning Classifiers for Credit Card Fraud Detection on Highly Imbalanced Datasets Using PCA and SMOTE Techniques In this context, the primary goal is flagging suspicious transactions for review rather than assigning precise probability estimates, so the calibration issues discussed earlier are less of a concern.
Healthcare is another domain where SMOTE has found extensive use. Rare disease prediction, risk gene discovery, and congenital heart disease classification have all benefited from oversampling approaches. A study applying a self-adaptive variant of SMOTE to healthcare datasets, including risk gene discovery and fatal congenital heart disease prediction, demonstrated improvements over existing SMOTE-based methods for these highly imbalanced clinical scenarios.11PubMed Central. A self-inspected adaptive SMOTE algorithm (SASMOTE) for highly imbalanced data classification in healthcare The key insight for medical applications, though, is that when the downstream decision involves communicating risk probabilities to patients or clinicians, SMOTE needs to be paired with recalibration or swapped for alternatives like cost-sensitive learning.
The Overlapping-Class Problem
One issue that does not get enough attention is what happens when the minority and majority classes overlap in feature space. In an ideal scenario, the two classes occupy somewhat distinct regions, and SMOTE fills in the minority class’s territory with plausible synthetic points. But real data is messy. Minority-class examples often sit right alongside majority-class examples with similar feature values. When SMOTE generates synthetic points in these overlapping regions, it effectively adds noise: more minority-class samples in areas where both classes coexist, making the boundary between them harder to learn rather than easier.
The original SMOTE algorithm has no mechanism for detecting or avoiding this overlap. It treats every minority-class sample and its neighbors as equally valid starting points for synthesis, regardless of whether those points sit deep in minority territory or right on top of majority-class examples. Variants like Borderline-SMOTE partially address this by focusing on boundary samples, but even these can exacerbate overlap when the boundary itself is poorly defined. One approach specifically designed to reduce this issue, Outlier-SMOTE, focuses on minimizing the chance that synthetic samples overlap with the opposing class.12Europe PMC. Outlier-SMOTE: A refined oversampling technique for improved detection of COVID-19
Choosing Whether and How to Use SMOTE
Given all these considerations, a reasonable decision framework depends on what you are building, what your data looks like, and what you need from your model’s output.
- Detection tasks: If you are flagging fraud, intrusions, defective products, or disease cases for human review, and you care about catching as many positives as possible, SMOTE is a reasonable default. The calibration issues are less important because you are ranking, not estimating probabilities.
- Probability estimation: If you need calibrated risk scores, like in clinical decision support or insurance pricing, either skip SMOTE in favor of cost-sensitive learning or apply recalibration after SMOTE. Do not use SMOTE’s raw probability outputs for anything consequential.
- High-dimensional data: If your feature space is large (hundreds of columns or more), apply dimensionality reduction before SMOTE, or consider class-weight adjustments that avoid synthetic generation entirely.
- Mixed or categorical features: Standard SMOTE will not work. Use SMOTE-NC for mixed data or SMOTE-ENC when categorical features dominate.
- Noisy minority class: If your minority-class data contains outliers or labeling errors, vanilla SMOTE will amplify that noise. Use a variant that weights neighbors or cleans the data first.
Whatever approach you choose, sequence it correctly within your cross-validation pipeline. The performance inflation from leaking synthetic data into validation folds is large enough to make an unreliable model look excellent on paper. That single mistake, applying SMOTE before the train-test split, probably accounts for more misleading published results than any limitation of the algorithm itself.

