En förvirringsmatris är ett värdefullt instrument för att bedöma hur väl klassificeringsalgoritmer inom maskininlärning, som använder övervakad inlärning, presterar.
Vad innebär en förvirringsmatris?
Människor har olika sätt att tolka information, även när det gäller fakta och osanningar. En linje som jag uppfattar som 10 cm lång, kan du se som 9 cm. Det korrekta måttet kan vara 9, 10 eller ett helt annat värde. Det värde vi uppskattar kallas det predikterade värdet!
Människans tankeprocess
Precis som våra hjärnor använder logik för att förutsäga något, använder maskiner olika algoritmer, kända som maskininlärningsalgoritmer, för att nå ett predikterat värde för en viss fråga. Även dessa värden kan sammanfalla med det faktiska värdet eller skilja sig från det.
I en konkurrensutsatt värld vill vi veta om våra förutsägelser stämmer för att kunna utvärdera vår egen prestation. På samma sätt kan vi bestämma hur väl en maskininlärningsalgoritm presterar genom att räkna hur många korrekta förutsägelser den gör.
Vad är då en maskininlärningsalgoritm?
Maskiner försöker hitta svar på problem genom att tillämpa en viss logik eller en serie instruktioner, det vill säga maskininlärningsalgoritmer. Det finns tre huvudtyper av maskininlärningsalgoritmer: övervakade, oövervakade och förstärkningsinlärning.
Typer av maskininlärningsalgoritmer
De enklaste algoritmerna är de som använder övervakad inlärning. I dessa fall har vi redan svaret och tränar maskinerna att nå det korrekta svaret genom att mata algoritmen med stora mängder data. Det är analogt med hur ett barn lär sig att skilja mellan människor i olika åldersgrupper genom att studera deras egenskaper om och om igen.
Övervakade ML-algoritmer delas upp i två kategorier: klassificering och regression.
Klassificeringsalgoritmer används för att kategorisera eller sortera data baserat på givna kriterier. Om du till exempel vill att din algoritm ska gruppera kunder efter deras matpreferenser – de som gillar pizza och de som inte gillar pizza – skulle du använda en klassificeringsalgoritm som beslutsträd, slumpmässig skog, Naive Bayes eller SVM (Support Vector Machine).
Vilken av dessa algoritmer skulle vara mest lämplig? Varför ska man välja en algoritm framför en annan?
Här kommer förvirringsmatrisen in i bilden…
En förvirringsmatris är en tabell eller matris som ger information om hur korrekt en klassificeringsalgoritm är när den klassificerar en datauppsättning. Namnet är inte avsett att förvirra, men många felaktiga prediktioner tyder på att algoritmen kan ha varit förvirrad 😉!
Kort sagt, en förvirringsmatris är en metod för att utvärdera hur bra en klassificeringsalgoritm presterar.
Hur fungerar det?
Låt oss anta att du har applicerat olika algoritmer på det binära problem vi nämnde tidigare: att klassificera (dela upp) människor baserat på om de gillar pizza eller inte. För att utvärdera vilken algoritm som ger de mest korrekta resultaten, kan du använda en förvirringsmatris. För ett binärt klassificeringsproblem (gillar/gillar inte, sant/falskt, 1/0) ger förvirringsmatrisen fyra kategorier:
- Sanna positiva (TP)
- Sanna negativa (TN)
- Falska positiva (FP)
- Falska negativa (FN)
Vad representerar de fyra kategorierna i en förvirringsmatris?
De fyra värdena som en förvirringsmatris hjälper oss att identifiera bildar matrisens kategorier.
Förvirringsmatrisens kategorier
Sanna positiva (TP) och sanna negativa (TN) är värden som klassificeringsalgoritmen har förutspått korrekt:
- TP representerar de som gillar pizza, och modellen har identifierat dem korrekt,
- TN representerar de som inte gillar pizza, och modellen har identifierat dem korrekt,
Falska positiva (FP) och falska negativa (FN) är värden som klassificeraren har förutspått felaktigt:
- FP representerar de som inte gillar pizza (negativt) men klassificeraren felaktigt har förutspått att de gillar pizza (falskt positivt). FP kallas även typ I-fel.
- FN representerar de som gillar pizza (positivt) men klassificeraren felaktigt har förutspått att de inte gillar pizza (falskt negativt). FN kallas även typ II-fel.
För att ytterligare förtydliga detta, låt oss ta ett exempel från verkligheten.
Anta att du har en datauppsättning med 400 personer som har genomgått ett Covid-test. Du har nu resultaten från olika algoritmer som har försökt bestämma antalet Covid-positiva och Covid-negativa personer.
Här är två förvirringsmatriser för jämförelse:
Vid första anblicken kan man frestas att säga att den första algoritmen är mer exakt. Men för att få ett mer tillförlitligt resultat behöver vi några mätvärden som kan mäta precision, noggrannhet och andra aspekter som bevisar vilken algoritm som är bäst.
Mått baserade på förvirringsmatriser och deras betydelse
De viktigaste mätvärdena som hjälper oss att avgöra hur väl en klassificerare gör sina förutsägelser är:
#1. Recall/Känslighet
Recall, även kallat känslighet, True Positive Rate (TPR) eller detektionssannolikhet, är förhållandet mellan antalet korrekt identifierade positiva resultat (TP) och det totala antalet positiva resultat (dvs. TP och FN).
R = TP/(TP + FN)
Recall mäter antalet korrekta positiva resultat som algoritmen identifierade i förhållande till det totala antalet korrekta positiva resultat som var möjliga. Ett högre recall-värde indikerar färre falska negativa, vilket är bra för algoritmen. Använd recall när det är viktigt att identifiera de falska negativa. Om en person har flera blockeringar i hjärtat och modellen felaktigt indikerar att han är frisk, kan det få allvarliga konsekvenser.
#2. Precision
Precision mäter andelen korrekta positiva resultat av alla förutspådda positiva resultat, inklusive både sanna och falska positiva.
Pr = TP/(TP + FP)
Precision är viktig när falska positiva resultat är av betydelse och inte får ignoreras. Till exempel, om en person inte har diabetes men modellen indikerar att han har det, kan läkaren ordinera mediciner som kan ge allvarliga biverkningar.
#3. Specificitet
Specificitet, även kallat True Negative Rate (TNR), mäter antalet korrekta negativa resultat i förhållande till alla resultat som kunde ha varit negativa.
S = TN/(TN + FP)
Det är ett mått på hur bra klassificeraren identifierar de negativa värdena.
#4. Noggrannhet
Noggrannhet beräknas genom att dividera antalet korrekta prediktioner med det totala antalet prediktioner. Om du till exempel har 20 korrekta positiva och 10 korrekta negativa värden i ett urval av 50, är noggrannheten för din modell 30/50.
Noggrannhet A = (TP + TN)/(TP + TN + FP + FN)
#5. Prevalens
Prevalens är ett mått på andelen positiva resultat i förhållande till alla resultat.
P = (TP + FN)/(TP + TN + FP + FN)
#6. F-poäng
Ibland är det svårt att jämföra två klassificerare (modeller) baserat på enbart precision och recall, som i grunden är ett aritmetiskt medelvärde för kombinationen av de fyra kategorierna i förvirringsmatrisen. I sådana fall kan vi använda F-poäng eller F1-poäng, som är det harmoniska medelvärdet. Detta värde är mer tillförlitligt eftersom det inte påverkas lika mycket av extremt höga värden. En högre F-poäng (max 1) indikerar en bättre modell.
F-poäng = 2*Precision*Recall/ (Recall + Precision)
F1-poängen är användbar när det är viktigt att ta hänsyn till både falska positiva och falska negativa resultat. Till exempel behöver de som inte är Covid-positiva (men algoritmen indikerar att de är det) inte isoleras i onödan. På samma sätt behöver de som är Covid-positiva (men algoritmen indikerar att de inte är det) isoleras.
#7. ROC-kurvor
Mått som noggrannhet och precision är användbara om datamängden är balanserad. I en obalanserad datamängd betyder en hög noggrannhet inte automatiskt att klassificeraren är effektiv. Om till exempel 90 av 100 elever i en grupp talar spanska, och din algoritm säger att alla 100 talar spanska, kommer noggrannheten att vara 90 %, vilket kan ge en felaktig bild av modellens prestanda. När det gäller obalanserade datamängder är mätvärden som ROC mer pålitliga.
Exempel på en ROC-kurva
ROC-kurvan (Receiver Operating Characteristic) visualiserar hur väl en binär klassificeringsmodell presterar vid olika klassificeringströsklar. Det är en graf som visar TPR (True Positive Rate) mot FPR (False Positive Rate), som beräknas som (1-Specificitet) vid olika tröskelvärden. Den punkt som ligger närmast 45-graderslinjen (uppe till vänster) i grafen representerar det mest exakta tröskelvärdet. Om tröskeln är för hög får vi färre falska positiva men fler falska negativa, och vice versa.
När ROC-kurvor för olika modeller jämförs, anses i allmänhet den modell som har störst Area Under the Curve (AUC) vara den bästa.
Låt oss beräkna alla mätvärden för våra förvirringsmatriser för klassificerare I och II:
Jämförelse av mätvärden för klassificerare 1 och 2 i pizzaundersökningen
Vi ser att precisionen är högre för klassificerare II medan noggrannheten är något högre för klassificerare I. Beroende på det specifika problemet kan beslutsfattare välja klassificerare I eller II.
N x N förvirringsmatris
Hittills har vi undersökt förvirringsmatriser för binära klassificerare. Men vad händer om det finns fler kategorier än bara ja/nej eller gilla/ogilla? Om till exempel algoritmen ska sortera bilder efter färgerna röd, grön och blå, kallas den typen av klassificering för flerklassklassificering. Antalet utdatavariabler bestämmer också matrisens storlek. I det här fallet skulle förvirringsmatrisen vara 3×3.
Förvirringsmatris för en flerklassklassificerare
Sammanfattning
En förvirringsmatris är ett utmärkt verktyg för utvärdering eftersom den ger detaljerad information om hur väl en klassificeringsalgoritm presterar. Den fungerar bra för både binära klassificerare och flerklassklassificerare, där det finns fler än två parametrar att ta hänsyn till. Förvirringsmatrisen är lätt att visualisera, och den kan användas för att generera andra prestandamått som F-poäng, precision, ROC och noggrannhet.
Du kan också läsa mer om hur man väljer ML-algoritmer för regressionsproblem.