Machine learning Tumačenje matrice konfuzije i podataka Fajl koji je korišćen može se naći na http://www.technologyforge.net/datasets/. Fajl se odnosi na pečurke (Edible mushrooms). Svaka instanca je definisana sa 23 atributa (raznih: oblik šešira, boja, boje spora...). Poslednji atribut je klasa i može uzimati vrednosti Y ili N (Y - jestiva, N - poisonous). Podaci se propuštaju kroz klasifikator da bi se omogućilo da se na osnovu njih, neka nova pečurka, sa određenim atributima, svrsta u jednu od ovih klasa. Rezultat klasifikacije nam govori koliko je model dobar. Šta se dešava: Klasifikator napravi model koji treba da na osnovu prethodno poznatih podataka, klasifikuje novu instancu pečurke u jednu od dveju klasa. Zatim se taj model proverava nekim podacima za koje se znaju klase, da bi se procenila uspešnost modela. Pošto se model pravi nad velikom količinom podataka, naravno da neće biti savršen (što je i dobro - ali to je neka druga priča) već će i praviti greške. Rezultat koji dobijemo pokazuje uspešnost modela. U našem slučaju, model je napravljen na celokupnom setu podataka. Zatim je isti taj set (ceo) korišćen za proveru. Rezultat je dobijen korišćenjem filtera Naive Bayes, 10-folds iteration, u programu Weka:
Ovo je deo izlaza koji je nama potreban. === Stratified cross-validation === === Summary === Correctly Classified Instances 7785 95.8272 % Incorrectly Classified Instances 339 4.1728 % Kappa statistic 0.9162 Mean absolute error 0.0419 Root mean squared error 0.1757 Relative absolute error 8.3961 % Root relative squared error 35.159 % Total Number of Instances 8124 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure ROC Area Class 0.992 0.078 0.932 0.992 0.961 0.998 Y 0.922 0.008 0.991 0.922 0.955 0.998 N Weighted Avg. 0.958 0.044 0.96 0.958 0.958 0.998 === Confusion Matrix === a b <-- classified as 4176 32 a = Y 307 3609 b = N
Matrica konfuzije Matrica konfuzije se pravi za jednu klasu. Matrica je data u obliku: TP - True positives FP - False positives FN - False negatives TN - True negatives Pogledajmo šta to znači na gornjem primeru: a b <-- classified as 4176 32 a = Y 307 3609 b = N U ovom slučaju, matrica je data za klasu a (koja predstavlja Y - jestive pečurke). Značenje je sledeće: 4176 je true positives - to znači da je za 4176 instanci klasifikator predvideo da su jestive, i da je bio u pravu, da one zaista jesu jestive 32 je false negatives - model je za 32 instance predvideo da su otrovne, a one su zapravo jestive 307 je false positives - model je za 307 instanci predvideo da su jestive, a one su zapravo otrovne 3609 je true negatives - model je za 3609 instanci smatrao da su otrovne i bio je u pravu, one jesu otrovne. Odavde možemo videti koliko je model dobar - poželjno je da na glavnoj dijagonali matrice bude što veći broj elemenata - time je ispravnost modela veća. Čitanje matrice: po vertikali su brojevi elemenata koje je model klasifikovao u neku od klasa. Po horizontali su elementi koji zapravo pripadaju nekoj od klasa (prema podacima iz fajla). Matrica konfuzije za klasu b (N - otrovne pečurke) bi bila: a b <-- classified as 3609 307 a = N 32 4176 b = Y
Računanje pokazatelja ispravnosti Dobijeni rezultat: TP Rate FP Rate Precision Recall F-Measure ROC Area Class 0.992 0.078 0.932 0.992 0.961 0.998 Y 0.922 0.008 0.991 0.922 0.955 0.998 N Weighted Avg. 0.958 0.044 0.96 0.958 0.958 0.998 Matrice konfuzije: Klasa Y Klasa N a b <-- classified as 4176 32 a = Y 307 3609 b = N a b <-- classified as 3609 307 a = N 32 4176 b = Y Podaci TP Rate - pokazuje osetljivost modela. Ovaj broj pokazuje udeo dobro predviđenih instanci neke klase, u ukupnom broju instanci koje zapravo pripadaju toj klasi. Npr: Za klasu Y, model je od 4208 instanci, uspešno klasifikovao 4176. FP Rate - pokazuje specifičnost modela, tačnije njegovu sposobnost da uspešno klasifikuje negativne instance (tačnije one koje ne pripadaju klasi za koju se pravi matrica konfuzije). Npr: za klasu Y, od 3916 instanci koje su u drugoj klasi, pogrešio je u klasifikaciji 307 instanci.
Precision - pokazuje preciznost modela. Ovaj broj pokazuje udeo dobro predviđenih instanci neke klase, u ukupnom broju instanci koje je model svrstao u datu klasu. Drugim rečima, pokazuje koliki deo rezultata u jednoj klasi je uspešno klasifikovan. Npr: Za klasu Y, model je ukupno klasifikovao 4383 instance da će pripadati toj klasi, od toga, 4176 zaista pripada toj klasi. Recall je jednak TP Rate. F- measure je harmonijska sredina Recall i Precission. Služi da označi tačnost. ROC Area - to je površina ispod ROC krive. Ova kriva se dobija iscrtavanjem vrednosti koje predstavljaju odnos TP rate i FP rate. Ovo je kumulativna funkcija. Accuracy - nema ga u izveštaju a odnosi se na procenat uspešno klasifikovanih instanci u odnosu na ukupan broj instanci. Računa se kao: U našem slučaju to je:
Još malo o Recall i Precision. Ovo su dve najznačajnije mere ispravnosti modela. Recall možemo posmatrati kao meru kompletnosti (kvantiteta) a Precission kao meru tačnosti (kvaliteta) Recall pokazuje koliko je relevantnih rezultata algoritam vratio, a Precision pokazuje koliki je udeo relevantnih u nerelevantnim rezultatima koje je algoritam vratio. by Hijavata