Klassificering med flera klasser

Slutförd

Multiklassklassificering används för att förutsäga till vilken av flera möjliga klasser en observation tillhör. Som en övervakad maskininlärningsteknik följer den samma iterativa träning, validering och utvärderingsprocess som regression och binär klassificering där en delmängd av träningsdata hålls tillbaka för att verifiera den tränade modellen.

Exempel – klassificering med flera klasser

Multiklassklassificeringsalgoritmer används för att beräkna sannolikhetsvärden för flera klassetiketter, vilket gör det möjligt för en modell att förutsäga den mest sannolika klassen för en viss observation.

Låt oss utforska ett exempel där vi har några observationer av pingviner, där flipperlängden (x) för varje pingvin registreras. För varje observation innehåller data pingvinarterna (y), som kodas på följande sätt:

  • 0: Adelie
  • 1: Gentoo
  • 2: Chinstrap

Kommentar

Precis som med tidigare exempel i den här modulen skulle ett verkligt scenario innehålla flera funktionsvärden (x). Vi använder en enda funktion för att hålla det enkelt.

Diagram of a measuring ruler. Diagram of three penguins.
Flipperlängd (x) Arter (y)
167 0
172 0
225 2
197 1
189 1
232 2
158 0

Träna en klassificeringsmodell för flera klasser

För att träna en klassificeringsmodell med flera klasser måste vi använda en algoritm för att anpassa träningsdata till en funktion som beräknar ett sannolikhetsvärde för varje möjlig klass. Det finns två typer av algoritmer som du kan använda för att göra detta:

  • OvR-algoritmer (One-vs-Rest)
  • Multinomalgoritmer

OvR-algoritmer (One-vs-Rest)

En-vs-Rest-algoritmer tränar en binär klassificeringsfunktion för varje klass, var och en beräknar sannolikheten för att observationen är ett exempel på målklassen. Varje funktion beräknar sannolikheten för att observationen är en specifik klass jämfört med någon annan klass. För vår klassificeringsmodell för pingvinarter skulle algoritmen i princip skapa tre binära klassificeringsfunktioner:

  • f0(x) = P(y=0 | x)
  • f1(x) = P(y=1 | x)
  • f2(x) = P(y=2 | x)

Varje algoritm genererar en sigmoidfunktion som beräknar ett sannolikhetsvärde mellan 0,0 och 1,0. En modell som tränats med den här typen av algoritm förutsäger klassen för den funktion som ger högsta sannolikhetsutdata.

Multinomalgoritmer

En alternativ metod är att använda en multinomalgoritm, som skapar en enda funktion som returnerar flervärdesutdata. Utdata är en vektor (en matris med värden) som innehåller sannolikhetsfördelningenför alla möjliga klasser – med en sannolikhetspoäng för varje klass som när den summeras lägger till upp till 1,0:

f(x) =[P(y=0|x), P(y=1|x), P(y=2|x)]

Ett exempel på den här typen av funktion är en softmax-funktion som kan generera utdata som i följande exempel:

[0.2, 0.3, 0.5]

Elementen i vektorn representerar sannolikheterna för klasserna 0, 1 respektive 2. så i det här fallet är klassen med högst sannolikhet 2.

Oavsett vilken typ av algoritm som används använder modellen den resulterande funktionen för att fastställa den mest sannolika klassen för en viss uppsättning funktioner (x) och förutsäger motsvarande klassetikett (y).

Utvärdera en klassificeringsmodell för flera klasser

Du kan utvärdera en klassificerare med flera klasser genom att beräkna binära klassificeringsmått för varje enskild klass. Du kan också beräkna aggregerade mått som tar hänsyn till alla klasser.

Anta att vi har verifierat vår klassificerare med flera klasser och fått följande resultat:

Flipperlängd (x) Faktiska arter (y) Förutsagda arter (ŷ)
165 0 0
171 0 0
205 2 1
195 1 1
183 1 1
221 2 2
214 2 2

Förvirringsmatrisen för en klassificerare med flera klasser liknar den för en binär klassificerare, förutom att den visar antalet förutsägelser för varje kombination av förutsagda (ŷ) och faktiska klassetiketter (y):

Diagram of a multiclass confusion matrix.

Från den här förvirringsmatrisen kan vi fastställa måtten för varje enskild klass på följande sätt:

Klass TP TN FP FN Noggrannhet Återkalla Precision F1-poäng
0 2 5 0 0 1.0 1.0 1.0 1.0
1 2 4 1 0 0,86 1.0 0.67 0,8
2 2 4 0 1 0,86 0.67 1.0 0,8

Om du vill beräkna måtten för total noggrannhet, träffsäkerhet och precision använder du summan av måtten TP, TN, FP och FN :

  • Total noggrannhet = (13+6)÷(13+6+1+1) = 0,90
  • Total träff = 6÷(6+1) = 0,86
  • Total precision = 6÷(6+1) = 0,86

Den totala F1-poängen beräknas med hjälp av de övergripande måtten för återkallande och precision:

  • Totalt F1-poäng = (2x0,86x0,86)÷(0,86+0,86) = 0,86