I maskininlärning använder vi ofta klassificeringsmodeller för att få fram ett förutsagt resultat av befolkningsdata. Klassificering, som är en av de två delarna av övervakad inlärning, behandlar data från olika kategorier. Träningsdatasetet tränar modellen för att förutsäga de okända etiketterna för befolkningsdata. Det finns flera algoritmer, nämligen logistisk regression, K-närmaste granne, beslutsträd, Naive Bayes osv. Alla dessa algoritmer har sin egen stil för genomförande och olika tekniker för förutsägelser. Men i slutändan måste vi ta reda på hur effektiv en algoritm är. För att hitta den lämpligaste algoritmen för ett visst affärsproblem finns det några modellutvärderingstekniker. I den här artikeln kommer olika tekniker för modellutvärdering att diskuteras.
Sannolikt har den fått sitt namn från det tillstånd av förvirring som den behandlar. Om du minns hypotesprövning kommer du kanske ihåg de två fel som vi definierade som typ-I och typ-II. As depicted in Fig.1, type-I error occurs when null hypothesis is rejected which should not be in actual. And type-II error occurs when although alternate hypothesis is true, you are failing to reject null hypothesis.
![](https://miro.medium.com/max/60/1*BVoaV9v4RMi6vAcinhvJKA.png?q=20)
In figure 1 it is depicted clearly that the choice of confidence interval affects the probabilities of these errors to occur. But the fun is that if you try to reduce either if these errors, that will result the increase of the other one.
So, what is confusion matrix?
![](https://miro.medium.com/max/60/1*sJJZnGduFsNxlqWLMsrmBw.png?q=20)
Confusion matrix is the image given above. Det är en matrisrepresentation av resultaten av en binär testning. Låt oss till exempel ta fallet med att förutsäga en sjukdom. Du har gjort några medicinska tester och med hjälp av resultaten av dessa tester ska du förutsäga om personen har en sjukdom. Du ska alltså validera om hypotesen att en person har en sjukdom är godtagbar eller inte. Säg att du bland 100 personer förutspår att 20 personer kommer att ha en sjukdom. I verkligheten är det bara 15 personer som har sjukdomen och bland dessa 15 personer har du diagnostiserat 12 personer korrekt. Om jag lägger in resultatet i en förvirringsmatris kommer det att se ut på följande sätt –
![](https://miro.medium.com/max/60/1*qhZlyixE7wIj0sjOQqc_mA.png?q=20)
Så, om vi jämför fig.3 med fig.2 får vi följande resultat –
- True Positive: 12 (Du har förutspått det positiva fallet korrekt!)
- True Negative: 77 (Du har förutspått det negativa fallet korrekt!)
- False Positive: 8 (Åh! Du har förutspått att dessa människor har en sjukdom, men i själva verket har de inte det. Men oroa dig inte, detta kan rättas till i ytterligare medicinsk analys. Detta är alltså ett fel med låg risk. Detta är ett typ II-fel i det här fallet).
- Falskt negativt: 3 (Oh ho! Du har förutspått att dessa tre stackare är lämpliga. Men i själva verket har de sjukdomen. Detta är farligt! Var försiktig! Detta är ett typ I-fel i det här fallet).
Om jag nu frågar vad som är noggrannheten hos den prediktionsmodell som jag följde för att få dessa resultat, bör svaret vara förhållandet mellan det korrekt predikterade antalet och det totala antalet personer, vilket är (12+77)/100 = 0,89. Om du studerar förvirringsmatrisen noggrant kommer du att finna följande saker –
- Den översta raden visar det totala antalet personer som du förutspådde att de hade sjukdomen. Bland dessa förutsägelser har du korrekt förutspått att 12 personer har sjukdomen i verkligheten. Förhållandet 12/(12+8) = 0,6 är alltså ett mått på hur exakt din modell är när det gäller att upptäcka att en person har sjukdomen. Detta kallas modellens precision.
- Nu tar vi den första kolumnen. Denna kolumn representerar det totala antalet personer som har sjukdomen i verkligheten. Och du har förutspått korrekt för 12 av dem. Så förhållandet 12/(12+3) = 0,8 är ett mått på modellens noggrannhet när det gäller att upptäcka en person som har sjukdomen av alla de personer som har sjukdomen i verkligheten. Detta kallas Recall.
Nu kanske du ställer frågan varför vi behöver mäta precision eller recall för att utvärdera modellen?
Svaret är att det rekommenderas starkt när ett visst resultat är mycket känsligt. Du ska till exempel bygga en modell för en bank för att förutsäga bedrägliga transaktioner. Det är inte särskilt vanligt med bedrägliga transaktioner. På 1 000 transaktioner kan det finnas en transaktion som är bedrägeri. Så din modell kommer utan tvekan att förutsäga att en transaktion inte är bedräglig med stor noggrannhet. I det här fallet spelar hela noggrannheten ingen roll, eftersom den alltid kommer att vara mycket hög oavsett noggrannheten i förutsägelsen av de bedrägliga transaktionerna, eftersom de utgör en mycket liten andel av hela populationen. Men det är inte önskvärt att förutsäga att en bedräglig transaktion inte är bedräglig. I detta fall kommer mätningen av precisionen att spela en viktig roll för att utvärdera modellen. Det kommer att hjälpa till att förstå hur många av alla faktiska bedrägliga transaktioner den förutsäger. Om precisionen är låg, även om den totala noggrannheten är hög, är modellen inte acceptabel.
Receiver Operating Characteristics (ROC) Curve
Mätning av arean under ROC-kurvan är också en mycket användbar metod för att utvärdera en modell. ROC är förhållandet mellan True Positive Rate (TPR) och False Positive Rate (FPR) (se fig.2). I vårt exempel på sjukdomsdetektering är TPR ett mått på förhållandet mellan antalet korrekta förutsägelser av personer med sjukdom och det totala antalet personer med sjukdom i verkligheten. FPR är förhållandet mellan antalet personer som korrekt förutspått att de inte har sjukdomen och det totala antalet personer som inte har sjukdomen i verkligheten. Om vi ritar upp kurvan ser den ut så här –
![](https://miro.medium.com/max/60/1*jbf_0S8JA_YpwlEaN66MQA.png?q=20)
Den blå linjen visar förändringen av TPR med olika FPR för en modell. Mer förhållandet mellan arean under kurvan och den totala arean (100 x 100 i det här fallet) definierar modellens noggrannhet. Om det blir 1 kommer modellen att vara överanpassad och om det är mindre än 0,5 (dvs. när kurvan ligger längs den streckade diagonala linjen) kommer modellen att vara för felaktig för att användas.
För klassificeringsmodeller finns det många andra utvärderingsmetoder som Gain and Lift-tabeller, Gini-koefficient etc. Men djupgående kunskaper om förvirringsmatrisen kan hjälpa till att utvärdera alla klassificeringsmodeller på ett mycket effektivt sätt. I den här artikeln har jag försökt att avmystifiera förvirringarna kring förvirringsmatrisen för att hjälpa läsarna.
Glad modellering!