Synthetic Minority Over-sampling Technique (SMOTE)

Synthetic Minority Over-sampling Technique (SMOTE)


Synthetic Minority Over-sampling Technique, or SMOTE, is a popular algorithm used to address the problem of class imbalance in machine learning. It’s a type of oversampling method that generates synthetic examples in the feature space to balance the minority class, thereby improving the performance of predictive models.


In many real-world scenarios, datasets often exhibit class imbalance, where one class has significantly more instances than the other. This imbalance can lead to biased models that favor the majority class, resulting in poor predictive performance for the minority class. SMOTE is a powerful technique that helps to overcome this issue.

SMOTE works by selecting examples that are close in the feature space, drawing a line between the examples in the feature space, and drawing a new sample at a point along that line. Specifically, it generates synthetic examples in the minority class by:

  1. Choosing a minority class instance ‘a’ at random.
  2. From the k nearest neighbors of ‘a’, a neighbor ‘b’ is randomly selected.
  3. A new instance is created at a random point between ‘a’ and ‘b’.

This process helps to increase the number of instances in the minority class, making it equal to the majority class, and thus, balancing the dataset.

Use Cases

SMOTE is widely used in various domains where class imbalance is a common issue. These include but are not limited to:

  • Fraud detection: In financial transactions, fraudulent activities are typically the minority class. SMOTE can help improve the detection of these activities by balancing the classes.
  • Medical diagnosis: In healthcare, certain diseases may be rare and thus form the minority class. SMOTE can enhance the predictive performance of models in diagnosing these diseases.
  • Text classification: In text mining, some categories may have fewer documents. SMOTE can be used to balance these categories, improving the classification performance.


  • Improves model performance: By balancing the classes, SMOTE can significantly enhance the predictive performance of models, especially for the minority class.
  • Versatility: SMOTE can be used with any classification algorithm, making it a versatile solution for class imbalance.
  • Synthetic sample generation: Unlike simple oversampling, SMOTE generates synthetic samples rather than just duplicating instances, which can lead to more diverse and generalized models.


  • Noise amplification: If the minority class has noisy instances, SMOTE might generate synthetic instances that are also noisy or that fall into the majority class space, leading to less accurate models.
  • Overfitting: As SMOTE generates synthetic instances based on the feature space of the minority class, it can lead to over-generalization and hence overfitting.
  • Class Imbalance: A situation in machine learning where the total number of instances of one class is significantly lower than the other class(es).
  • Oversampling: A technique used to adjust the class distribution of an imbalanced dataset by increasing the size of the minority class.
  • Under-sampling: A technique used to adjust the class distribution of an imbalanced dataset by reducing the size of the majority class.