En-mot-en-multiklass
Den här artikeln beskriver hur du använder One-vs-One Multiclass-komponenten i Azure Mašinsko učenje designer. Målet är att skapa en klassificeringsmodell som kan förutsäga flera klasser med hjälp av en-mot-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-mot-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 metoden one-versus-one, där en binär modell skapas per klasspar. Vid förutsägelsetiden väljs den klass som fick flest röster. Eftersom den kräver att klassificerare får plats n_classes * (n_classes - 1) / 2
ä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-mot-alla används n_classes
gånger.
I grund och botten skapar komponenten en ensemble av 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åklasssmodell för stödvektordatorer och anger den som indata till komponenten One-vs-One Multiclass. Komponenten skulle skapa tvåklasssmodeller för stödvektordatorer för alla medlemmar i utdataklassen. Den skulle sedan använda en-mot-en-metoden för att kombinera resultaten för alla klasser.
Komponenten använder OneVsOneClassifier av sklearn och du kan läsa mer information här.
Så här konfigurerar du en-mot-en-klassificeraren för flera klasser
Den här komponenten skapar en ensemble av binära klassificeringsmodeller för att analysera flera klasser. Om du vill använda den här komponenten måste du konfigurera och träna en binär klassificeringsmodell först.
Du ansluter den binära modellen till komponenten One-vs-One Multiclass. Sedan tränar du ensemblen av 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 binära klassificeringsmodeller, 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.
Lägg till komponenten One-vs-One Multiclass i din pipeline i designern. Du hittar den här komponenten under Mašinsko učenje – Initiera i kategorin Klassificering.
Klassificeraren one-vs-One multiclass har inga egna konfigurerbara parametrar. Eventuella anpassningar måste göras i den binära klassificeringsmodellen som tillhandahålls som indata.
Lägg till en binär klassificeringsmodell i pipelinen och konfigurera modellen. Du kan till exempel använda tvåklasssstödvektormaskin eller tvåklasssförstärkning av beslutsträd.
Lägg till komponenten Träna modell i pipelinen. Anslut den otränade klassificeraren som är utdata från One-vs-One Multiclass.
Anslut en märkt träningsdatauppsättning som har flera klassvärden på den andra indatan i Train Model.
Skicka pipelinen.
Resultat
När träningen är klar kan du använda modellen för att göra förutsägelser för flera grupper.
Du kan också skicka den otränade klassificeraren till Korsverifieringsmodell för korsvalidering mot en märkt valideringsdatauppsättning.
Nästa steg
Se den uppsättning komponenter som är tillgängliga för Azure Mašinsko učenje.