Questo articolo discuterà come il modulo SMOTE aiuta ad aumentare i numeri sottorappresentati nel set di dati di un modello di apprendimento automatico. SMOTE è il metodo migliore che permette di aumentare i casi rari invece di duplicare quelli precedenti.
Quando avete un set di dati squilibrato, potete collegare il modello con il modulo SMOTE. Ci possono essere numerose ragioni per un dataset squilibrato. Forse la categoria di destinazione ha un set di dati unico nella popolazione, o i dati sono difficili da raccogliere. Puoi chiedere aiuto a SMOTE per analizzare la classe sottorappresentata. L’output del modulo conterrà i campioni originali e quelli aggiuntivi. Questi nuovi campioni sono campioni sintetici di minoranza. È necessario definire il numero di questi campioni sintetici prima di iniziare la tecnica.

Cosa sono i dati sbilanciati?

Quando la classificazione dei dati non è uguale, ci si può riferire ad essi come dati squilibrati. Si tratta di un compito di classificazione e causa vari problemi nell’output del modello. Per esempio, si hanno 100 casi in un problema di classificazione binaria. La classe-1 include 80 istanze etichettate. D’altra parte, il campione marcato rimanente sarà in Classe-2. Questo sarà un semplice esempio di dataset squilibrato. Il rapporto tra istanze di Classe 1 e Classe 2 sarebbe 4:1.
Il problema dello sbilanciamento delle classi è molto comune, sia che si parli di dataset di test reali o della competizione Kaggle. I problemi di classificazione del mondo reale includeranno un certo livello di squilibrio di classificazione. Questo di solito accade quando non ci sono istanze di dati adatti che si adattano a qualsiasi classe. Pertanto, è essenziale scegliere la corretta metrica di valutazione del modello. Se il modello ha un set di dati squilibrato, il vostro risultato sarà inutile. Tuttavia, se si risolve un problema di vita reale con questo modello, il risultato sarà uno spreco.
In varie situazioni, lo squilibrio di classe si verificherà sempre. Un buon esempio è quando si considera il set di dati delle transazioni fraudolente e non fraudolente. Troverete meno transazioni fraudolente che transazioni non fraudolente. È qui che troverete dei problemi.

Cos’è SMOTE?

SMOTE è una tecnica che potete usare per il sovracampionamento dei dati. Questa tecnica crea nuovi esempi sintetici invece di sovracampionare per sostituzioni. SMOTE introduce esempi sintetici nei segmenti di linea per sovracampionare i campioni della classe minoritaria. Unisce tutte le k classi minoritarie che sono vicine ai vicini. La scelta dei vicini dei k vicini più vicini è casuale. Il numero dipende dalla quantità di sovracampionamento di cui il modello ha bisogno.
La funzione primaria di SMOTE è quella di costruire le classi di minoranza. C’è un semplice algoritmo per creare queste classi. Come saprete, lo sviluppo di istanze ripetitive o il sovracampionamento possono causare l’overfitting. Inoltre, il confine decisionale diventa ancora più stretto. È possibile risolvere il problema generando campioni simili invece di ripeterli tutti. SMOTE genera nuovi campioni costruiti che hanno caratteristiche diverse dai campioni precedenti. Pertanto, il confine decisionale diventerà più morbido. Questo aiuterà l’algoritmo a stimare l’ipotesi accurata. Di seguito troverete alcuni vantaggi di SMOTE:
– L’informazione non andrà persa.
– Questa tecnica è semplice, e si può facilmente interpretare e implementare nel modello.
– Migliora l’overfitting come esempi sintetici. Questo aiuterà a generare nuove istanze invece di replicarle.

Come risolvere il problema dello squilibrio di classe con SMOTE?

SMOTE sintetizza le nuove istanze minoritarie simili alle istanze minoritarie reali. Immaginate che ci sia una linea tra le istanze esistenti. SMOTE disegna queste linee per creare istanze di minoranza sintetiche e nuove su queste linee.
libreria(smotefamily)
dat_plot = SMOTE(dat[,2:4], # valori delle caratteristiche
as.numeric(dat[,6]), # etichette di classe
K = 6, dup_size =0) # parametri della funzione
Una volta completato il processo di sintesi di nuove istanze minoritarie, l’output includerà il minore squilibrio dei dati. Il modello aggiungerà nuove istanze con l’aiuto di SMOTE livellando le classi.

I parametri di funzione di SMOTE

Dup_size e K sono i due parametri di SMOTE (). Se volete capire Dup_size e K, dovete imparare il meccanismo di funzionamento di SMOTE (). SMOTE () lavorerà attraverso le prospettive delle istanze esistenti e ne genererà di nuove in modo casuale. La funzione creerà una nuova istanza ad una certa distanza dall’istanza vicina. Tuttavia, non è ancora chiaro come SMOTE () consideri i suoi vicini per ogni istanza minoritaria che crea
– La funzione considererà il vicino più vicino a K = 1.
– La funzione considererà i vicini più vicini e quelli successivi a K = 2.
Normalmente, SMOTE () eseguirà un ciclo attraverso l’istanza minoritaria originale. Mentre l’iterazione del ciclo è una singola istanza, il modello creerà la nuova istanza tra l’istanza originale e il vicino. Il parametro dup_size indica quante volte la funzione SMOTE eseguirà il loop dell’istanza originale. Per esempio, con dup_size = 1, il modello sintetizzerà solo quattro nuovi punti dati e così via.

Conclusione

Quando si crea un modello predittivo nell’apprendimento automatico, si possono avere serie di dati sbilanciati. Questi set di dati possono influenzare il risultato del modello. È possibile risolvere questo problema sovracampionando i dati di minoranza. Quindi, invece di duplicare i dati, utilizzate la tecnica SMOTE e create dati sintetici per il sovracampionamento. Di seguito troverete alcune varianti di SMOTE:
– Borderline-SMOTE
– SMOTE-NC
– SMOTE
– ADASYN
– SVM-SMOTE