vix.ing · top · new · best · stats

Oversampling for Imbalanced Learning Based on K-Means and SMOTE

2017/11/30 by Georgios Douzas, Fernando Bacao, Fernando Bação +1 · 1,195 citations
Computer Science · Engineering · Mathematics · #Algorithm #Anomaly Detection Techniques and Applications #Artificial intelligence #Bandwidth (computing) #Class (philosophy) #Classifier (UML) #Cluster analysis #Computer science #Data mining #Electricity Theft Detection Techniques #Heuristic #Imbalanced Data Classification Techniques #Machine learning #Noise (video) #Oversampling #Python (programming language) #cs.LG #stat.ML

paper · pdf · doi:10.1016/j.ins.2018.06.056

published in Information Sciences 465, 1-20 (Elsevier BV) · 19 pages, 8 figures

openalex created_date 2017/11/10 · arxiv created 2017/12/12 · openalex publication_date 2018/06/28 · arxiv updated 2020/03/06 · openalex updated_date 2026/08/05

Abstract

Learning from class-imbalanced data continues to be a common and challenging problem in supervised learning as standard classification algorithms are designed to handle balanced class distributions. While different strategies exist to tackle this problem, methods which generate artificial data to achieve a balanced class distribution are more versatile than modifications to the classification algorithm. Such techniques, called oversamplers, modify the training data, allowing any classifier to be used with class-imbalanced datasets. Many algorithms have been proposed for this task, but most are complex and tend to generate unnecessary noise. This work presents a simple and effective oversampling method based on k-means clustering and SMOTE oversampling, which avoids the generation of noise and effectively overcomes imbalances between and within classes. Empirical results of extensive experiments with 71 datasets show that training data oversampled with the proposed method improves classification results. Moreover, k-means SMOTE consistently outperforms other popular oversampling methods. An implementation is made available in the python programming language.

Cited by

Related