Let's say that I have unbalanced data set that has two classes, and I am using Random Forest to make my predictions. Random forest will be biased towards the majority class, which will cause low recall and high precision on minority class predictions that I am interested in, and it might not be desirable.

One approach is to plot recall, precision and f1 score on the y-axis and threshold on the axis, and use this plot to select the proper threshold.

Another approach is to use oversampling, let's say SMOTE, for the minority class.

My questions is: What advantages would oversampling approach offer?

So far I only see disadvantages:

1) We have to be very careful, that our minority class is in one cluster, otherwise SMOTE will put points between the clusters, which is not desired at all. To avoid that, we should create different labels for different clusters, which is much more complicated.

2) We are creating extra data, that increases run time and memory usage.

3) Even after we have done oversampling, we still might not have ideal recall, threshold balance, and it feels redundant to still have to adjust the threshold.

I know that oversampling is a commonly used technique, what am I missing?


1 Answer 1


I would suggest to not use oversampling because of the disadvantages you listed above. Important one is that it increase noise, may contain biased data & may have outliers that demands another pre-processing step. I would suggest go for undersampling the majority class. But for your answer here is the link which will help you further if you are opting for oversampling

  • $\begingroup$ Thank you for the answer, but the article you are linking to is suggesting that SMOTE (and Random Forest) is the best option in their case. Also undersampling performed worse than oversampling (possibly due to underfitting). $\endgroup$
    – Akavall
    Nov 22, 2019 at 20:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.