În învățarea automată, folosim adesea modelele de clasificare pentru a obține un rezultat prezis al datelor populației. Clasificarea, care este una dintre cele două secțiuni ale învățării supravegheate, se ocupă de date din diferite categorii. Setul de date de instruire antrenează modelul pentru a prezice etichetele necunoscute ale datelor populației. Există mai mulți algoritmi, și anume: regresia logistică, K-nearest neighbour, arborele de decizie, Naive Bayes etc. Toți acești algoritmi au un stil propriu de execuție și tehnici diferite de predicție. Dar, în cele din urmă, trebuie să aflăm eficiența unui algoritm. Pentru a găsi cel mai potrivit algoritm pentru o anumită problemă de afaceri, există câteva tehnici de evaluare a modelelor. În acest articol vor fi discutate diferite tehnici de evaluare a modelelor.
Probabil că și-a primit numele de la starea de confuzie cu care se ocupă. Dacă vă amintiți de testarea ipotezelor, poate vă amintiți cele două erori pe care le-am definit ca fiind de tip-I și de tip-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.
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?
Confusion matrix is the image given above. Este o reprezentare matriceală a rezultatelor oricărei testări binare. De exemplu, să luăm cazul prezicerii unei boli. Ați făcut niște teste medicale și, cu ajutorul rezultatelor acestor teste, veți prezice dacă persoana respectivă suferă de o boală. Deci, de fapt, veți valida dacă ipoteza de a declara o persoană ca fiind bolnavă este acceptabilă sau nu. Să zicem că, din 100 de persoane, preziceți că 20 de persoane vor avea o boală. În realitate, doar 15 persoane sunt bolnave, iar dintre aceste 15 persoane ați diagnosticat corect 12 persoane. Așadar, dacă aș pune rezultatul într-o matrice de confuzie, acesta va arăta astfel –
Atunci, dacă comparăm fig.3 cu fig.2 vom găsi –
- True Positive: 12 (Ați prezis corect cazul pozitiv!)
- True Negative: 77 (Ați prezis corect cazul negativ!)
- False Positive: 8 (Oh! Ați prezis aceste persoane ca având boala, dar în realitate nu au. Dar nu vă faceți griji, acest lucru poate fi rectificat în analize medicale ulterioare. Deci, aceasta este o eroare cu risc scăzut. Aceasta este o eroare de tip II în acest caz).
- False Negative: 3 (Oh ho! I-ați prezis pe acești trei sărmani ca fiind apți. Dar, de fapt, ei au boala. Acest lucru este periculos! Aveți grijă! Aceasta este o eroare de tip I în acest caz).
Acum, dacă întreb care este acuratețea modelului de predicție pe care l-am urmat pentru a obține aceste rezultate, răspunsul ar trebui să fie raportul dintre numărul prezis cu exactitate și numărul total de persoane, care este (12+77)/100 = 0,89. Dacă studiați temeinic matricea de confuzie, veți găsi următoarele lucruri –
- Rândul de sus reprezintă numărul total de predicții pe care le-ați făcut ca având boala respectivă. Dintre aceste predicții, ați prezis corect că 12 persoane au boala în mod real. Așadar, raportul 12/(12+8) = 0,6 este măsura acurateței modelului dumneavoastră în detectarea unei persoane care să aibă boala. Aceasta se numește precizie a modelului.
- Acum, luați prima coloană. Această coloană reprezintă numărul total de persoane care au boala în mod real. Și ați prezis corect pentru 12 dintre ele. Deci, raportul, 12/(12+3) = 0,8 este măsura preciziei modelului dvs. de a detecta o persoană care are boala din toate persoanele care au boala în realitate. Acest lucru este denumit Recall.
Acum, s-ar putea să vă puneți întrebarea că de ce avem nevoie să măsurăm precizia sau recall pentru a evalua modelul?
Răspunsul este că este foarte recomandat atunci când un anumit rezultat este foarte sensibil. De exemplu, veți construi un model pentru o bancă pentru a prezice tranzacțiile frauduloase. Nu este foarte frecvent să avem o tranzacție frauduloasă. În 1000 de tranzacții, este posibil să existe 1 tranzacție care să fie frauduloasă. Deci, fără îndoială, modelul dvs. va prezice cu mare precizie o tranzacție care nu este frauduloasă. Prin urmare, în acest caz, precizia totală nu contează, deoarece va fi întotdeauna foarte mare, indiferent de precizia predicției tranzacțiilor frauduloase, deoarece acestea reprezintă un procent foarte mic din întreaga populație. Dar prezicerea unei tranzacții frauduloase ca fiind non-frauduloase nu este de dorit. Prin urmare, în acest caz, măsurarea preciziei va avea un rol esențial în evaluarea modelului. Aceasta va ajuta la înțelegerea numărului de tranzacții frauduloase reale pe care le prezice. Dacă aceasta este scăzută, chiar dacă precizia generală este ridicată, modelul nu este acceptabil.
Curba caracteristicilor de funcționare a receptorului (ROC)
Măsurarea ariei de sub curba ROC este, de asemenea, o metodă foarte utilă pentru evaluarea unui model. ROC este raportul dintre rata adevăraților pozitivi (TPR) și rata falșilor pozitivi (FPR) (a se vedea fig.2). În exemplul nostru de detectare a bolilor, TPR este măsura raportului dintre numărul de previziuni corecte ale persoanelor care au boala și numărul total de persoane care au boala în realitate. FPR este raportul dintre numărul de persoane pentru care se prezice corect că nu au boala și numărul total de persoane care nu au boala în realitate. Așadar, dacă trasăm curba, aceasta se prezintă astfel –