One-vs-All Multiclass

In dit artikel wordt beschreven hoe u het one-vs-all-onderdeel met meerdere klassen 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-alles-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-alle-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.

Dit onderdeel implementeert de een-versus-alles-methode, waarin een binair model wordt gemaakt voor elk van de meerdere uitvoerklassen. Het onderdeel beoordeelt elk van deze binaire modellen voor de afzonderlijke klassen op basis van het complement (alle andere klassen in het model) alsof het een binair classificatieprobleem is. Naast de rekenkundige efficiëntie (alleen n_classes classificaties zijn nodig), is een voordeel van deze benadering de interpreteerbaarheid. Omdat elke klasse wordt vertegenwoordigd door slechts één classificatie, is het mogelijk om kennis over de klasse op te doen door de bijbehorende classificatie te inspecteren. Dit is de meest gebruikte strategie voor classificatie met meerdere klassen en is een eerlijke standaardkeuze. Het onderdeel voert vervolgens een voorspelling uit door deze binaire classificaties uit te voeren en de voorspelling met de hoogste betrouwbaarheidsscore te kiezen.

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 een-versus-alles-model.

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

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

De classificatie One-vs-All Multiclass configureren

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

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

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

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

    De classificatie One-vs-All Multiclass heeft geen eigen configureerbare parameters. Eventuele aanpassingen moeten worden uitgevoerd in het binaire classificatiemodel dat als invoer is 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 Model trainen toe aan uw pijplijn. Verbind de niet-getrainde classificatie die de uitvoer is van One-vs-All 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 het model voor kruisvalidatie voor kruisvalidatie voor een gelabelde validatiegegevensset.

Volgende stappen

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