Cet article traite de la manière dont le module SMOTE permet d’augmenter les nombres sous-représentés dans l’ensemble de données d’un modèle d’apprentissage automatique. SMOTE est la meilleure méthode qui vous permet d’augmenter les cas rares au lieu de dupliquer les précédents.
Lorsque vous avez un ensemble de données déséquilibré, vous pouvez connecter le modèle avec le module SMOTE. Il peut y avoir de nombreuses raisons pour un ensemble de données déséquilibré. Peut-être que la catégorie cible a un ensemble de données unique dans la population, ou que les données sont difficiles à collecter. Vous pouvez demander l’aide de SMOTE pour analyser la classe sous-représentée. La sortie du module contiendra l’échantillon original ainsi que des échantillons supplémentaires. Ces nouveaux échantillons sont des échantillons synthétiques de minorités. Vous devez définir le nombre de ces échantillons synthétiques avant de lancer la technique.

Qu’est-ce qu’une donnée déséquilibrée ?

Lorsque la classification des données n’est pas égale, on peut parler de données déséquilibrées. Il s’agit d’une tâche de classification qui entraîne divers problèmes dans la sortie du modèle. Par exemple, vous avez 100 cas dans un problème de classification binaire. La classe 1 comprend 80 instances marquées. D’autre part, l’échantillon marqué restant sera dans la classe-2. Il s’agit d’un exemple simple d’un ensemble de données déséquilibré. Le rapport entre les instances de classe 1 et de classe 2 serait de 4:1.
Le problème du déséquilibre des classes est très courant, qu’il s’agisse de jeux de données de test réels ou de la compétition Kaggle. Les problèmes de classification du monde réel comportent un certain niveau de déséquilibre de classification. Cela se produit généralement lorsqu’il n’y a pas d’instances de données appropriées qui correspondent à une classe. Par conséquent, il est essentiel de choisir la bonne métrique d’évaluation du modèle. Si le modèle comporte un ensemble de données déséquilibré, votre résultat sera inutile. En revanche, si vous résolvez un problème de la vie réelle avec ce modèle, le résultat sera un gaspillage.
Dans diverses situations, le déséquilibre des classes se produira toujours. Un bon exemple est lorsque vous considérez l’ensemble de données des transactions frauduleuses et non frauduleuses. Vous trouverez moins de transactions frauduleuses que de transactions non frauduleuses. C’est là que vous trouverez des problèmes.

Qu’est-ce que SMOTE ?

SMOTE est une technique que vous pouvez utiliser pour le suréchantillonnage des données. Cette technique crée de nouveaux exemples synthétiques au lieu de suréchantillonner par remplacement. SMOTE introduit des exemples synthétiques dans les segments de ligne pour suréchantillonner les échantillons de la classe minoritaire. Il joint tous les k classes minoritaires qui sont proches des voisins. Le choix des voisins parmi les k voisins les plus proches est aléatoire. Le nombre dépend de la quantité de suréchantillonnage dont le modèle a besoin.
La fonction principale de SMOTE est de construire des classes minoritaires. Il existe un algorithme simple pour créer ces classes. Comme vous le savez peut-être, le développement d’instances répétitives ou le suréchantillonnage peuvent entraîner un surajustement. De plus, la frontière de décision devient encore plus étroite. Vous pouvez résoudre ce problème en générant des échantillons similaires plutôt que de les répéter tous. SMOTE génère des échantillons nouvellement construits qui ont des caractéristiques différentes des échantillons précédents. Par conséquent, la limite de décision devient plus souple. Cela aidera l’algorithme à estimer l’hypothèse exacte. Vous trouverez ci-dessous quelques avantages de SMOTE :
– L’information ne sera pas perdue.
– Cette technique est simple, et vous pouvez facilement l’interpréter et l’implémenter dans le modèle.
– Elle améliore l’overfitting en tant qu’exemples synthétiques. Cela aidera à générer de nouvelles instances au lieu de les répliquer.

Comment résoudre le problème de déséquilibre des classes avec SMOTE ?

SMOTE synthétise les nouvelles instances minoritaires similaires aux instances minoritaires réelles. Imaginez qu’il y ait une ligne entre les instances existantes. SMOTE trace ces lignes pour créer des instances synthétiques et de nouvelles instances minoritaires sur ces lignes.
library(smotefamily)
dat_plot = SMOTE(dat[,2:4], # valeurs des caractéristiques
as.numeric(dat[,6]), # étiquettes de classe
K = 6, dup_size =0) # paramètres de la fonction
Une fois que vous avez terminé le processus de synthèse des nouvelles instances minoritaires, la sortie comprendra le moindre déséquilibre des données. Le modèle ajoutera de nouvelles instances avec l’aide de SMOTE qui nivelle les classes.

Les paramètres de la fonction SMOTE

Dup_size et K sont les deux paramètres de SMOTE (). Si vous voulez comprendre Dup_size et K, vous devez apprendre le mécanisme de fonctionnement de SMOTE (). La fonction SMOTE () va travailler sur les perspectives des instances existantes et en générer de nouvelles de manière aléatoire. La fonction créera une nouvelle instance à une certaine distance de son instance voisine. Cependant, la façon dont la SMOTE () considère ses voisins pour chaque instance minoritaire qu’elle crée n’est pas encore claire.
– La fonction considère le voisin le plus proche à K = 1.
– La fonction considérera les voisins les plus proches et les voisins suivants à K = 2.
Normalement, la fonction SMOTE () parcourt en boucle l’instance minoritaire d’origine. Pendant que l’itération en boucle est une instance unique, le modèle créera la nouvelle instance entre l’instance originale et le voisin. Le paramètre dup_size indique combien de fois la fonction SMOTE va boucler l’instance originale. Par exemple, à dup_size = 1, le modèle ne synthétisera que quatre nouveaux points de données et ainsi de suite.

Conclusion

Lors de la création d’un modèle prédictif en apprentissage automatique, vous pouvez rencontrer des ensembles de données déséquilibrés. Ces ensembles de données peuvent affecter le résultat du modèle. Vous pouvez résoudre ce problème en suréchantillonnant les données minoritaires. Ainsi, au lieu de dupliquer les données, utilisez la technique SMOTE et créez des données synthétiques pour le suréchantillonnage. Vous trouverez ci-dessous quelques variations de SMOTE :
– Borderline-SMOTE
– SMOTE-NC
– SMOTE
– ADASYN
– SVM-SMOTE