INFORMACIONI SISTEMI ZA PODRŠKU MENADŽMENTU OBLAST: ČVOROVI (WIDGET): SKUPOVI PODATAKA: Classification Test learners, Predictions, Confusion matrix, ROC analysis, Calibration Plot Heart disease AUTOR: Kablar Dragan 513/07 2011, Beograd
Na početku naravno treba učitati bazu podataka, u našem slučaju reč je o bazi Heart disease. To činimo tako što na radnu površinu prevučemo File ikonicu sa Data kartice, a zatim dvoklikom na istu otvaramo prozor u kome biramo koju bazu podataka želimo da obraďujemo. Preporučljivo je da u sledećem koraku našu bazu tabelarno predstavimo da bismo stekli bolji uvid u same atribute u datoj bazi. To ćemo učiniti tako što ćemo na radnu površinu prevući Data Table ikonicu, koja se takoďe nalazi na Data kartici. Izlaz File ikonice povezujemo sa ulazom Data Table ikonice (Drag and drop operacija). Dvoklikom na Data Table ikonicu će nam se otvoriti tabela sa pregledom svih naših atributa. Sa leve strane će nam se pojaviti neke informacije vezane za našu bazu, u našem slučaju program nas informiše da naša baza ima 303 zapisa, svaki od njih ima 13 atributa, takoďe nam piše i da je broj nedostajućih atributa 2 i da ne postoje meta atributi, izlazni atribut je diskretna vrednost koja u našem slučaju može biti 1 ili 0. Desna strana nam daje kompletan uvid u sve zapise kao i u vrednost atributa svakog od zapisa. Objasnimo sada čvor Test Learners. Kako su svi čvorovi koji će ovde biti opisani ustvari čvorovi za evaluaciju, odnosno ocenu modela, prvo treba da istreniramo neki model na konkretnoj bazi, pa tek onda da vršimo ocenjivanje
kvaliteta modela, odnosno njegove tačnosti. Mi ćemo u našem slučaju izvršiti klasifikaciju i to koristeći Classification Tree čvor (odnosno metod klasifikacije). Na radnu površinu ćemo prevući ranije pomenuta dva čvora koji se nalaze na karticama Classify i Evaluate. Način povezivanja ovih čvorova (videti sliku) jasno pokazuje njihovu funkciju, odnosno jasno se vidi da je čvor Test Learners zapravo čvor koji se koristi za OCENU kvaliteta nekog modela (metode), ovde konkretno stabla odlučivanja. Dvoklikom na čvor Test Learners se otvara se prozor u kome na levoj strani možemo da odaberemo način na koji ćemo da vršimo ocenu modela, kao i kriterijume (parametre) ocenjivanja. Cross-validation metoda celu bazu deli na broj zadatih Foldova (jednakih skupova), u našem slučaju pet, zatim trenira na četiri skupa, a testira na jednom. Ova operacija se ponavlja pet puta (svaki skup je po jedan put izabran za test skup), za ocenu tačnosti se uzima prosečna vrednost ovih pet ponavljanja. Kod manjih baza možemo koristiti i Leave-one-out metod koji u svakoj iteraciji izbacuje po jedan zapis za test, a trenira na ostalima, na kraju nam daje uprosečenu vrednost svih iteracija (nije preporučljiv za velike baze(veliki broj iteracija smanjuje brzinu obrade)). Random sampling nam omogućuje da odredimo veličinu trening skup (u procentima) i broj iteracija pre nego što nam da uprosečene vrednosti kriterijuma ocenjivanja. Opcija Test on train data, kako joj samo ime kaže, testira na trening podacima. Poslednja opcija, Test on test data, nam omogućava da testiramo na test podacima, ali nam ona nije dostupna sada zato što nismo podelili podatke na trening i test set pre obrade koristeći Data Sampler. Preporučuje se da dugme Apply on any change bude čekirano jer će nam omogućiti da svaka promena bude automatski prihvaćena, u suprotnom bismo morali da nakon svakog menjanja kliknemo na Apply dugme koje se nalazi tik ispod. Što se parametara ocenjivanja tiče mi smo ovde odabrali neke koji će nadalje biti objašnjeni. Bitno je napomenuti da se parametri čitaju za svaku izlaznu klasu ponaosob, klasa se bira u padajućem meniju Target class. Classification accuracy ili tačnost klasifikacije 73,93% u našem primeru, što znači da model u 73,93% slučajeva daje tačan izlaz. Sensitivity nam govori u koliko posto slučajeva je model rekao da je izlazna klasa 0 kada ona to zaista i jeste bila(78,66% slučajeva), dok nam Specificity govori u koliko posto slučajeva model nije odredio izlaznu klasu 0 kada ona to zaista nije bila(68,35% slučajeva). Area under ROC curve, odnosno površina ispod ROC krive iznosi 0,7969 (što je vrednost bliža 1 model je kvalitetniji). Što se tiče Predictions čvora njime ćemo izvršiti ocenjivanje tako što ćemo prvo pomoću Data Sampler čvora (Data kartica) podeliti podatke na test i trening skup, metodom Random sampling, i to u razmeri 30% prema 70%. Zatim ćemo sa Evaluate kartice prevući i Predictions čvor i vezati ga kao na slici (na model i na podatke).
Sa leve strane biramo da li će nam biti prikazana izlazna klasa iz modela tako što čekiramo Show predicted class, takoďe biramo i da li će nam biti prikazane verovatnoće predviďanja za odreďivanje u koju će klasu biti svrstan koji zapis čekirajući Show predicted probabilities, i to birajući koje klase želimo (u našem slučaju 0 i/ili 1), kao i broj decimala za te verovatnoće. Možemo odabrati i da li želimo da nam se prikazuju vrednosti atributa za svaki zapis i to u opciji Data atributes => Show all. Primer isčitavanja tabele: za zapis broj 3 je model 100% siguran da pripada klasi 0. Confusion Matrix vezujemo na Test Learners čvor kao na slici, ovaj čvor će nam pokazati vezu izmeďu stvarnih klasa, koji su prikazani u redovima matrice, i klasa koje je predvideo model, koje su prikazane u kolonama matrice. Dvoklikom na Confusion Matrix čvor će nam se otvoriti prozor u kome će biti prikazana matrica čija polja se nalaze u preseku stvarnih klasa (redovi) i klasa koje je predvideo model (kolone). Koje vrednosti će biti predstavljene u samim poljima matrice (presecima kolona i redova) odabiramo iz padajućeg menija Show. Možemo odabrati da nam predstavi: broj slučajeva (number of examples), odnos posmatranih i očekivanih slučajeva (observed and expected examples), proporciju predviďanja (proportions of predicted) i proporciju tačnosti (proportions of true).
U delu Selection odabiramo da nam se osenče polja u matrici u kojima su vrednisti tačnih predviďanja, koja će se naći na glavnoj dijagobali matrice (opcija Correct), polja sa vrednostima za koja je model izneo pogrešna predviďanja (opcija Misclassified) ili pak da nam ne osenči ništa (opcija None). Kada su u opciji Output čekirana oba polja (Append class predictions i Append predicted class probabilites) tada smo osigurali da će dodavanje novih atributa u bazu imati uticaja na svrstavanje odreďenog slučaja u neku klasu, odnosno na verovatniću sa kojom model vrši tačnost predviďanja. Što se tiče čitanja vrednosti u samoj matrici primer bi bio sledeći: Model je u 31,7% slučajeva rekao da će izlazna klasa biti 0, a trebao je da odredi klasu 1. Ista analogija se primenjuje i na sva druga polja u matrici. Čvor ROC Analysis se takoďe vezuje na čvor Test Learners. Dvoklikom na ovaj čvor će nam se pojaviti prozor u kome će biti prikazan grafikon na čijoj je X-osi predstavljen FP Rate (false positive rate), a na Y-osi TP Rate (true positive rate). Na našem konkretnom primeru TP Rate bi bili procenti slučajevi kada je model rekao da je izlazna klasa 0, a ona to stvarno i jeste, dok bi FP Rate prikazivao procenat slučajeva za koje je model trebao da odredi izlaznu klasu 1, a on je pogrešio i odredio klasu 0 (analogna metodologija se primenjuje i za klasu 1 kada se ona odabere u opciji Target class). Na kartici General se vrši odabir klase (Target class) za koju želimo da vidimo ROC krivu (u našem slučaju je odabrana
klasa 0). Ukoliko smo više klasifikacionih modela (njihovih izlaza) povezali na ulaz Roc Analysis-a moguće je u opciji Classifiers odabrati krivu modela (odnosno metoda klasifikacije) koji nas zanima. U našem slučaju smo radili smo sa modelom Classification Tree pa je on jedini prikazan. Ova opcija daje vrlo jasan prikaz površina ispod ROC krive (za različite metode klasifikacije) što pokazuje i kvalitet samog modela, što je površina veća to je model bolji. Da bismo jasnije (slikovitije) predstavili ovo o čemu govorimo upotrebićemo još jedan klasifikator, Naive Bayes. Kao što nam sama slika prikazuje, vidimo da je model Naive Bayes (plava linija) daleko kvalitetnije obradio našu bazu od modela Classifucation Tree (crvena linija), jer je površina ispod plave linije znatno veća od površine pod crvenom linijom (vrednosti površina možemo pronaći u čvoru Test Learners parametar AUC(area under curve)). **Napomenimo da i čvor Confusion Matrix omogućava uporedni prikaz ova dva modela. Kada ponovo dvokliknemo na njega videćemo da se u polju Learners pojavio i Naive Bayes, a kada ga odaberemo videćemo da se verovatnoća greške koja je ranije iznosila 31,7% upotrebom novog modela smanjila na 19,4%.**Ostale opcije na karticama General, Analysis i Setings se pre svega koriste za samo grafičko prikazivanje modela, odnosno debljine linija, veličina tačaka i sl. Na kartici Analysis pod opcijom Test Sets možemo odabrati koliko i koje skupove zapisa (Folds) želimo da predstavimo ROC krivom. Kod nas se pojavljuje pet skupova (0-4) što je posledica načina uzorkovanja u Test Learnes čvoru kada smo odabrali metod Cross-validation u opciji Sampling i odredili da nam se ona odradi na pet foldova (da smo tu izabrali 8 Fold-ova u ROC analysis-u bi imali Test set-ove 0-7). Čvor Calibration Plot nam daje uvid u odnos stvarnih verovatnoća (actual probability) i predviďenih verovatnoća (estimated probability). Kao i kod čvora Roc Analysis biramo za koju klasu želimo da vidimo grafikon (opcija Target class), a takoďe biramo i za koje klasifikatore želimo da vidimo krivu u odabranoj klasi (opcija Classifiers). Na samom grafikonu je predstavljena dijagonalna linija (koju možemo i isključiti u opciji Show Diagonal Line na kartici Setings), njena svrha je da jasnije i preciznije vidimo kvalitet modela (odnosno klasifikatora) za odabranu klasu. Naime, što je kriva koja predstavlja model bliža toj dijagonali to je model kvalitetniji. Ovo je naravno posledica toga što su stvarne i predviďene verovatnoće približne jedno drugoj, u idealnoj situaciji kriva modela bi se preklopila sa dijagonalnom linijom grafikona. U našem slučaju model Naive Bayes je bolji od Classification Tree model, što je predstavljeno i na slici gde kriva koja više odgovara dijagonalnoj liniji predstavlja krivu Naive Bayes modela.
Vrednosti na samoj krivoj modela se tumače na sledeći način: ukoliko se vrednost na krivoj nalazi iznad dijagonale reč je o takozvanim potcenjenim predviďenim verovatnoćama (predviďene verovatnoće su manjih vrednosti od stvarnih verovatnoća), a u slučaju da su vrednosti na krivoj ispod dijagonale reč je o precenjenim predviďenim verovatnoćama (model je dao veće vrednosti verovatnoća od onih koje su stvarne). Ovo odstupanje je posledica toga što model nije sto posto siguran koji slučaj će biti svrstan u koju klasu. **Objašnjenje ovoga je moguće prikazati i sa slikom Predictions čvora gde možemo videti da je model za četvrti zapis u bazi odredio verovatnoću od 25% da će model biti svrstan u klasu 0, dok verovatnoća da će biti svrstan u klasu 1 iznosi 75%.**