En-till-en-multiklass

I den här artikeln beskrivs hur du använder komponenten One-vs-One Multiclass i Azure Machine Learning-designern. Målet är att skapa en klassificeringsmodell som kan förutsäga flera klasser med hjälp av en-till-en-metoden .

Den här komponenten är användbar för att skapa modeller som förutsäger tre eller fler möjliga resultat, när resultatet är beroende av kontinuerliga eller kategoriska förutsägelsevariabler. Med den här metoden kan du också använda binära klassificeringsmetoder för problem som kräver flera utdataklasser.

Mer om en-till-en-modeller

Vissa klassificeringsalgoritmer tillåter användning av fler än två klasser avsiktligt. Andra begränsar möjliga utfall till ett av två värden (en binär modell eller tvåklassmodell). Men även binära klassificeringsalgoritmer kan anpassas för klassificeringsuppgifter med flera klasser genom en mängd olika strategier.

Den här komponenten implementerar en-till-en-metoden, där en binär modell skapas per klasspar. Vid förutsägelsetiden väljs den klass som fick flest röster. Eftersom det krävs för att passa n_classes * (n_classes - 1) / 2 klassificerare är den här metoden vanligtvis långsammare än en-mot-alla, på grund av dess O(n_classes^2) komplexitet. Den här metoden kan dock vara fördelaktig för algoritmer som kernelalgoritmer som inte skalas bra med n_samples. Det beror på att varje enskilt inlärningsproblem endast omfattar en liten delmängd av data, medan den fullständiga datamängden med en eller alla används n_classes gånger.

I huvudsak skapar komponenten en ensemble med enskilda modeller och sammanfogar sedan resultaten för att skapa en enda modell som förutsäger alla klasser. Alla binära klassificerare kan användas som grund för en modell med en eller ett.

Anta till exempel att du konfigurerar en tvåklasss stödvektormaskinmodell och anger den som indata till komponenten One-vs-One Multiclass. Komponenten skulle skapa tvåklasss stödvektormaskinmodeller för alla medlemmar i utdataklassen. Den skulle sedan använda en-till-en-metoden för att kombinera resultaten för alla klasser.

Komponenten använder OneVsOneClassifier av sklearn och du kan läsa mer här.

Så här konfigurerar du en-till-en-multiklassificeraren

Den här komponenten skapar en ensemble av modeller för binär klassificering för att analysera flera klasser. Om du vill använda den här komponenten måste du först konfigurera och träna en binär klassificeringsmodell .

Du ansluter den binära modellen till komponenten One-vs-One Multiclass. Sedan tränar du ensemblen med modeller med hjälp av Träna modell med en märkt träningsdatauppsättning.

När du kombinerar modellerna skapar One-vs-One Multiclass flera modeller för binär klassificering, optimerar algoritmen för varje klass och sammanfogar sedan modellerna. Komponenten utför dessa uppgifter även om träningsdatauppsättningen kan ha flera klassvärden.

  1. Lägg till komponenten One-vs-One Multiclass i din pipeline i designern. Du hittar den här komponenten under Machine Learning – Initiera i kategorin Klassificering .

    One-vs-One Multiclass-klassificeraren har inga egna konfigurerbara parametrar. Eventuella anpassningar måste göras i den binära klassificeringsmodellen som tillhandahålls som indata.

  2. Lägg till en binär klassificeringsmodell i pipelinen och konfigurera den modellen. Du kan till exempel använda tvåklasssstödvektormaskin eller tvåklass-förbättrat beslutsträd.

  3. Lägg till komponenten Train Model (Träna modell) i pipelinen. Anslut den otränade klassificeraren som är utdata från One-vs-One Multiclass.

  4. Anslut en märkt träningsdatauppsättning som har flera klassvärden på de andra indata i Träningsmodell.

  5. Skicka pipelinen.

Resultat

När träningen är klar kan du använda modellen för att göra förutsägelser med flera klasser.

Du kan också skicka den otränade klassificeraren till Korsvalideringsmodell för korsvalidering mot en märkt valideringsdatauppsättning.

Nästa steg

Se den uppsättning komponenter som är tillgängliga för Azure Machine Learning.