Dit artikel zal bespreken hoe de SMOTE module helpt om ondervertegenwoordigde getallen in de dataset van een machine learning model te vergroten. SMOTE is de beste methode die u in staat stelt om zeldzame gevallen te verhogen in plaats van de vorige te dupliceren.
Wanneer u een onevenwichtige dataset hebt, kunt u het model verbinden met de SMOTE-module. Er kunnen tal van redenen zijn voor een onevenwichtige dataset. Misschien heeft de doelcategorie een unieke dataset in de populatie, of zijn gegevens moeilijk te verzamelen. U kunt de hulp van SMOTE inroepen om de ondervertegenwoordigde klasse te analyseren. De output van de module zal zowel de originele als extra steekproeven bevatten. Deze nieuwe steekproeven zijn synthetische minderheidssteekproeven. U moet het aantal van deze synthetische steekproeven bepalen voordat u met de techniek begint.

Wat zijn onevenwichtige gegevens?

Wanneer de classificatie van de gegevens niet gelijk is, spreekt men van onevenwichtige gegevens. Het is een classificatietaak en veroorzaakt verschillende problemen in de output van het model. Bijvoorbeeld, je hebt 100 gevallen in een binair classificatieprobleem. Klasse-1 omvat 80 gemarkeerde gevallen. Het resterende gemerkte monster daarentegen behoort tot klasse-2. Dit is een eenvoudig voorbeeld van een onevenwichtige dataset. De verhouding van klasse-1 en klasse-2 instanties zou 4:1 zijn.
Het probleem van de onbalans van klassen komt vaak voor, of het nu gaat om echte test datasets of de Kaggle competitie. De echte wereld classificatie problemen zal een zekere mate van classificatie onevenwichtigheid. Dit gebeurt meestal wanneer er geen geschikte gegevensinstanties zijn die in een klasse passen. Daarom is het essentieel om de juiste waarderingsmetriek van het model te kiezen. Als het model een onevenwichtige dataset heeft, zal uw resultaat nutteloos zijn. Als u met dit model een reëel probleem oplost, zal het resultaat echter niets opleveren.
In verschillende situaties zal er altijd sprake zijn van klassenonevenwichtigheid. Een goed voorbeeld is wanneer u de dataset van frauduleuze en niet-frauduleuze transacties bekijkt. U zult minder frauduleuze transacties vinden dan niet-frauduleuze transacties. Dit is waar u problemen zult vinden.

Wat is SMOTE?

SMOTE is een techniek die u kunt gebruiken voor het oversamplen van gegevens. Deze techniek creëert nieuwe synthetische voorbeelden in plaats van oversampling door vervangingen. SMOTE introduceert synthetische voorbeelden in de lijnsegmenten voor oversampling van de minderheidsklasse steekproeven. Het voegt alle k minderheidsklassen samen die dicht bij de buren liggen. De keuze van de buren van de k dichtstbijzijnde buren is willekeurig. Het aantal hangt af van de overbemonsteringshoeveelheid die het model nodig heeft.
De primaire functie van SMOTE is het construeren van minderheidsklassen. Er bestaat een eenvoudig algoritme om deze klassen te maken. Zoals u wellicht weet, kan de ontwikkeling van zich herhalende instanties of oversampling leiden tot overfitting. Bovendien wordt de beslissingsgrens nog nauwer. U kunt het probleem oplossen door gelijksoortige steekproeven te genereren in plaats van ze allemaal te herhalen. SMOTE genereert nieuw samengestelde steekproeven die andere kenmerken hebben dan eerdere steekproeven. Daarom zal de beslissingsgrens zachter worden. Dit zal het algoritme helpen om de juiste hypothese in te schatten. Hieronder vindt u enkele voordelen van SMOTE:
– De informatie gaat niet verloren.
– Deze techniek is eenvoudig, en u kunt hem gemakkelijk interpreteren en in het model implementeren.
– Het verbetert de overfitting als synthetische voorbeelden. Dit zal helpen om nieuwe instanties te genereren in plaats van ze te repliceren.

Hoe het klassenonevenwichtsprobleem oplossen met SMOTE?

SMOTE synthetiseert de nieuwe minderheidsinstanties vergelijkbaar met de echte minderheidsinstanties. Stel je voor dat er een lijn is tussen bestaande instanties. SMOTE trekt deze lijnen om synthetische en nieuwe minderheidsinstanties op deze lijnen te creëren.
library(smotefamily)
dat_plot = SMOTE(dat[,2:4], # kenmerkwaarden
as.numeric(dat[,6]), # klasse-etiketten
K = 6, dup_size =0) # functie parameters
Zodra het syntheseproces van nieuwe minderheidsinstanties voltooid is, zal de output de mindere onevenwichtigheid van de data bevatten. Het model zal nieuwe instanties toevoegen met de hulp van SMOTE die de klassen nivelleert.

De functieparameters van SMOTE

Dup_size en K zijn de twee parameters van SMOTE (). Als u Dup_size en K wilt begrijpen, moet u het werkingsmechanisme van SMOTE () leren. De SMOTE () zal door de vooruitzichten van bestaande instanties werken en willekeurig nieuwe instanties genereren. De functie creëert een nieuwe instantie op enige afstand van hun naburige instantie. Het is echter nog onduidelijk hoe de SMOTE () zijn buren beschouwt voor elke minderheidsinstantie die zij creëert
– De functie beschouwt de dichtstbijzijnde buur bij K = 1.
– De functie beschouwt de dichtstbijzijnde en de eerstvolgende buren bij K = 2.
Normaal gesproken maakt de SMOTE () een lus door de oorspronkelijke minderheidsinstantie. Terwijl de lus iteratie een enkele instantie is, zal het model de nieuwe instantie tussen de oorspronkelijke instantie en de buur creëren. De parameter dup_size geeft aan hoeveel keer de SMOTE-functie de oorspronkelijke instantie doorlust. Bij dup_size = 1 synthetiseert het model bijvoorbeeld slechts vier nieuwe datapunten, enzovoort.

Conclusie

Bij het maken van een voorspellend model in machine learning, kan je te maken krijgen met onevenwichtige datasets. Deze datasets kunnen de uitkomst van het model beïnvloeden. Je kunt dit probleem oplossen door de minderheidsdata te oversamplen. Dus in plaats van de data te dupliceren, gebruik je de SMOTE techniek en maak je synthetische data voor oversampling. Hieronder vindt u enkele variaties van SMOTE:
– Grens-SMOTE
– SMOTE-NC
– SMOTE
– ADASYN
– SVM-SMOOTE