SMOTE

Verhoogt het aantal voor beelden met weinig incidenten in een gegevensset met behulp van synthetische minderheids oversteek proeven

Categorie: gegevens transformatie/-bewerking

Notitie

Van toepassing op : machine learning Studio (klassiek)

Deze inhoud is alleen van toepassing op Studio (klassiek). Er zijn Vergelijk bare modules voor slepen en neerzetten toegevoegd aan Azure Machine Learning Designer. In dit artikel vindt u meer informatie over de twee versies.

Module overzicht

In dit artikel wordt beschreven hoe u de SMOTE -module in azure machine learning Studio (klassiek) gebruikt om het aantal underepresented-cases in een gegevensset te verg Roten die wordt gebruikt voor machine learning. SMOTE is een betere manier om het aantal zeldzame gevallen te verhogen dan alleen bestaande aanvragen te dupliceren.

U verbindt de SMOTE-module met een gegevensset die niet in balansis. Er zijn verschillende redenen waarom een gegevensset niet in balans kan worden gegeven: de categorie die u wilt richten, kan zeer zelden voor komen in de populatie of het kan lastig zijn om de gegevens te verzamelen. Normaal gesp roken gebruikt u SMOTE als de klasse die u wilt analyseren, wordt weer gegeven.

De module retourneert een gegevensset die de oorspronkelijke voor beelden bevat, plus een extra aantal synthetische minderheids voorbeelden, afhankelijk van het percentage dat u opgeeft.

Meer informatie over SMOTE

SMOTE staat voor synthetische minderheids bemonsterings techniek. Dit is een statistische techniek voor het verhogen van het aantal cases in uw gegevensset op een evenwichtige manier. De module werkt door nieuwe instanties te genereren op basis van bestaande minderheids gevallen die u als invoer opgeeft. Deze implementatie van SMOTE heeft geen invloed op het aantal hoofd gevallen.

De nieuwe instanties zijn niet alleen kopieën van bestaande minderheids gevallen; in plaats daarvan worden voor beelden van de functie ruimte voor elke doel klasse en de dichtstbijzijnde neighbors gebruikt en worden nieuwe voor beelden gegenereerd waarin de functies van de doel case worden gecombineerd met functies van de neighbors. Met deze methode worden de beschik bare functies voor elke klasse verhoogd en worden de voor beelden algemeen uitgebreid.

SMOTE neemt de hele gegevensset als invoer, maar het percentage van de minderheids deelnemingen wordt verhoogd. Stel bijvoorbeeld dat u een niet-sluitende gegevensset hebt waarbij slechts 1% van de gevallen de doel waarde A (de klasse minderheid) heeft en 99% van de gevallen de waarde B heeft. Als u het percentage minderheids deelnemingen wilt verhogen naar twee maal het vorige percentage, voert u 200 in voor SMOTE percentage in de eigenschappen van de module.

Voorbeelden

We raden u aan om SMOTE te gebruiken met een kleine gegevensset om te zien hoe het werkt. In het volgende voor beeld wordt de bloeddonatie-gegevensset gebruikt die beschikbaar is in Azure Machine Learning Studio (klassiek).

Als u de gegevensset toevoegt aan een experiment en op visualiseren klikt op de uitvoer van de gegevensset, ziet u dat, van de 748-rijen of-cases in de gegevensset, er 570 cases zijn (76%) van klasse 0 en 178 cases (24%) van klasse 1. Hoewel dit niet terribly niet is gebalanceerd, staat klasse 1 voor de mensen die bloed hebben gedoneerd en daarom bevatten deze rijen de functie ruimte die u wilt model leren.

Als u het aantal cases wilt verhogen, kunt u als volgt de waarde van het SMOTE percentageinstellen met behulp van veelvouden van 100:

Klasse 0 Klasse 1 totaal
Oorspronkelijke gegevensset

(gelijk aan SMOTE-percentage = 0)
570

76%
178

uur
748
Percentage SMOTE = 100 570

62%
356

38%
926
Percentage SMOTE = 200 570

52%
534

48%
1104
Percentage SMOTE = 300 570

44%
712

56%
1282

Waarschuwing

Het verhogen van het aantal cases met behulp van SMOTE is niet gegarandeerd om nauw keurigere modellen te maken. Probeer te experimenteren met verschillende percentages, verschillende functie sets en verschillende nummers van dichtstbijzijnde neighbors om te zien hoe het toevoegen van aanvragen van invloed is op uw model.

SMOTE configureren

  1. Voeg de SMOTE-module toe aan uw experiment. De module onder de modules voor gegevens transformatie vindt u in de categorie manipulatie.

  2. Verbind de gegevensset die u wilt verhogen. Als u de functie ruimte wilt opgeven voor het maken van de nieuwe cases, hetzij door alleen specifieke kolommen te gebruiken, of door een deel ervan uit te sluiten, gebruikt u de module select columns in dataset om de kolommen te isoleren die u wilt gebruiken voordat u SMOTEgebruikt.

    Anders is het maken van nieuwe cases met SMOTE gebaseerd op alle kolommen die u opgeeft als invoer.

  3. Zorg ervoor dat de kolom met het label of de doel klasse als zodanig is gemarkeerd.

    Als er geen kolom Label is, gebruikt u de module meta gegevens bewerken om de kolom te selecteren die de klassen labels bevat en selecteert u Label in de vervolg keuzelijst velden .

  4. De SMOTE -module identificeert automatisch de klasse minderheid in de kolom Label en vervolgens worden alle voor beelden voor de klasse minderheid opgehaald.

  5. Typ in de optie percentage SMOTE een geheel getal dat het doel percentage van minderheids deelnemingen in de uitvoer gegevensset aangeeft. Bijvoorbeeld:

    • U typt 0 (%). De SMOTE-module retourneert precies dezelfde gegevensset die u hebt opgegeven als invoer, waardoor er geen nieuwe minderheids aanvragen worden toegevoegd. In deze gegevensset is de klasse-verhouding niet gewijzigd.

    • U typt 100 (%). In de SMOTE-module worden nieuwe minderheids gevallen gegenereerd en worden hetzelfde aantal minderheids aanvragen toegevoegd als de oorspronkelijke gegevensset. Omdat SMOTE het aantal hoofd gevallen niet verhoogt, is het gedeelte van de cases van elke klasse nu gewijzigd.

    • U typt 200 (%). De module verdubbelt het percentage minderheids gevallen vergeleken met de oorspronkelijke gegevensset. Dit leidt niet tot twee keer zoveel minderheids gevallen als voorheen. In plaats daarvan wordt de grootte van de gegevensset zo verhoogd dat het aantal meerderheids gevallen hetzelfde blijft, en het aantal minderheids deelnemings wordt verhoogd en de gewenste percentage waarde overeenkomt.

    Notitie

    Gebruik alleen veelvouden van 100 voor het SMOTE-percentage.

  6. Gebruik het aantal dichtstbijzijnde neighbors om de grootte te bepalen van de functie ruimte die het SMOTE-algoritme gebruikt bij het bouwen van nieuwe cases. Een nabijgelegen neighbor is een rij met gegevens (een aanvraag) die veel lijkt op een doel case. De afstand tussen twee gevallen wordt gemeten door de gewogen vectoren van alle functies te combi neren.

    • Door het aantal dichtstbijzijnde buren te verhogen, profiteert u van meer zaken over functies.
    • Door het aantal dichtstbijzijnde neighbors te bewaren, kunt u gebruikmaken van functies die meer lijken op die in de oorspronkelijke steek proef.
  7. Typ een waarde in het tekstvak wille keurig Seed als u dezelfde resultaten wilt hebben als voor uitvoering van hetzelfde experiment, met dezelfde gegevens. Anders genereert de module een wille keurige Seed op basis van de klok waarden van de processor wanneer het experiment wordt geïmplementeerd. Dit kan ertoe leiden dat de resultaten enigszins verschillen.

  8. Voer het experiment uit.

    De uitvoer van de module is een gegevensset met de oorspronkelijke rijen plus een aantal toegevoegde rijen met minderheids gevallen.

Tip

Als u wilt weten welke nieuwe rijen er zijn toegevoegd, kunt u de modules SQL-trans formatie Toep assen of gegevens samenvoegen gebruiken.

Technische opmerkingen

  • Wanneer u een model publiceert dat gebruikmaakt van de SMOTE -module, verwijdert u SMOTE uit het voorspellende experiment voordat het wordt gepubliceerd als een webservice. De reden hiervoor is dat SMOTE is bedoeld voor het verbeteren van een model tijdens de training en niet is bedoeld voor scores. Er wordt mogelijk een fout bericht weer geven als een gepubliceerd voorspellend experiment de module SMOTE bevat.

  • U kunt vaak betere resultaten krijgen als u ontbrekende waarde opschonen of andere trans formaties toepast om gegevens te corrigeren voordat u SMOTE toepast.

  • Sommige onderzoekers hebben onderzocht of SMOTE effectief is op zeer dimensionale of sparse gegevens, zoals die worden gebruikt in tekst classificaties of Genomics. Dit document bevat een goed overzicht van de effecten en de theoretische geldigheid van het Toep assen van SMOTE in de volgende gevallen: Blagus en LUSA: SMOTE voor grootschalige, gebalanceerde gegevens

    Als SMOTE niet effectief is in uw gegevensset, kunt u overwegen om diverse methoden te gebruiken voor het overmeten van de minderheids gevallen of het ondersampling van de hoofd gevallen, evenals ensemble-technieken die de kenniser rechtstreeks helpen, door gebruik te maken van clustering, bebakening of adaptief Boosting.

Verwachte invoer

Naam Type Beschrijving
Voorbeelden Gegevens tabel Een gegevensset met steek proeven

Module parameters

Naam Bereik Type Standaard Beschrijving
Percentage SMOTE >= 0 Geheel getal 100 Hoeveelheid oversampling in veelvouden van 100.
Aantal dichtstbijzijnde neighbors >= 1 Geheel getal 1 Het aantal dichtstbijzijnde neighbors waarvan de functies voor nieuwe cases moeten worden getekend
Wille keurige Seed Alle Geheel getal 0 Seed voor de generator voor wille keurige getallen

Uitvoer

Naam Type Beschrijving
Tabel Gegevens tabel Een gegevens tabel met de oorspronkelijke steek proeven plus een extra aantal synthetische minderheids-voor beelden. Het aantal nieuwe steek proeven is (smotePercent/100) * T, waarbij T het aantal voor beelden van minderheids klasse is.

Zie ook

Voor beeld en splitsing
Module lijst a-Z