One-vs-One Multiclass

In dit artikel wordt beschreven hoe u het onderdeel One-vs-One Multiclass gebruikt in de Azure Machine Learning-ontwerpfunctie. Het doel is om een classificatiemodel te maken dat meerdere klassen kan voorspellen, met behulp van de een-versus-een-benadering .

Dit onderdeel is handig voor het maken van modellen die drie of meer mogelijke resultaten voorspellen, wanneer het resultaat afhankelijk is van continue of categorische voorspellingsvariabelen. Met deze methode kunt u ook binaire classificatiemethoden gebruiken voor problemen waarvoor meerdere uitvoerklassen zijn vereist.

Meer informatie over een-versus-een-modellen

Sommige classificatiealgoritmen maken het gebruik van meer dan twee klassen per ontwerp mogelijk. Andere beperken de mogelijke resultaten tot een van twee waarden (een binair model of een model met twee klassen). Maar zelfs binaire classificatiealgoritmen kunnen worden aangepast voor classificatietaken met meerdere klassen via verschillende strategieën.

Met dit onderdeel wordt de één-versus-één-methode geïmplementeerd, waarbij per klassepaar een binair model wordt gemaakt. Op het moment van voorspelling wordt de klasse geselecteerd die de meeste stemmen heeft ontvangen. Omdat het nodig is om classificaties aan te passen n_classes * (n_classes - 1) / 2 , is deze methode meestal langzamer dan één versus alle, vanwege de complexiteit van de O(n_classes^2). Deze methode kan echter voordelig zijn voor algoritmen zoals kernelalgoritmen die niet goed worden geschaald met n_samples. Dit komt doordat elk afzonderlijk leerprobleem slechts een kleine subset van de gegevens omvat, terwijl bij een-versus-alles de volledige gegevensset keer wordt gebruikt n_classes .

In wezen maakt het onderdeel een ensemble van afzonderlijke modellen en voegt vervolgens de resultaten samen om één model te maken dat alle klassen voorspelt. Elke binaire classificatie kan worden gebruikt als basis voor een één-versus-één-model.

Stel dat u een model voor ondersteuningsvectormachine met twee klassen configureert en dat opgeeft als invoer voor het onderdeel One-vs-One Multiclass. Het onderdeel maakt twee klassen ondersteuningsvectormachinemodellen voor alle leden van de uitvoerklasse. Vervolgens wordt de één-versus-één-methode toegepast om de resultaten voor alle klassen te combineren.

Het onderdeel maakt gebruik van OneVsOneClassifier van sklearn. Meer informatie vindt u hier.

De One-vs-One Multiclass-classificatie configureren

Met dit onderdeel maakt u een ensemble van binaire classificatiemodellen om meerdere klassen te analyseren. Als u dit onderdeel wilt gebruiken, moet u eerst een binair classificatiemodel configureren en trainen.

U verbindt het binaire model met het One-vs-One Multiclass-onderdeel. Vervolgens traint u het ensemble van modellen met behulp van Train Model met een gelabelde trainingsgegevensset.

Wanneer u de modellen combineert, maakt One-vs-One Multiclass meerdere binaire classificatiemodellen, optimaliseert het algoritme voor elke klasse en voegt vervolgens de modellen samen. Het onderdeel voert deze taken uit, ook al kan de trainingsgegevensset meerdere klassewaarden hebben.

  1. Voeg het onderdeel One-vs-One Multiclass toe aan uw pijplijn in de ontwerpfunctie. U vindt dit onderdeel onder Machine Learning - Initialiseren in de categorie Classificatie .

    De One-vs-One Multiclass-classificatie heeft geen eigen configureerbare parameters. Eventuele aanpassingen moeten worden uitgevoerd in het binaire classificatiemodel dat als invoer wordt opgegeven.

  2. Voeg een binair classificatiemodel toe aan de pijplijn en configureer dat model. U kunt bijvoorbeeld Two-Class Support Vector Machine of Two-Class Boosted Decision Tree gebruiken.

  3. Voeg het onderdeel Train Model toe aan uw pijplijn. Verbind de niet-getrainde classificatie die de uitvoer is van One-vs-One Multiclass.

  4. Bij de andere invoer van Train Model verbindt u een gelabelde trainingsgegevensset met meerdere klassewaarden.

  5. Verzend de pijplijn.

Resultaten

Nadat de training is voltooid, kunt u het model gebruiken om voorspellingen met meerdere klassen te doen.

U kunt de niet-getrainde classificatie ook doorgeven aan Cross-Validate Model voor kruisvalidatie voor kruisvalidatie op basis van een gelabelde validatiegegevensset.

Volgende stappen

Bekijk de set onderdelen die beschikbaar zijn voor Azure Machine Learning.