Dolování dat Vyhodnocení výsledků – 2. část Jan Górecki Název prezentace Název projektu Rozvoj vzdělávání na Slezské univerzitě v Opavě Registrační číslo projektu CZ.02.2.69/0.0./0.0/16_015/0002400 Logolink_OP_VVV_hor_barva_cz Obsah přednášky •Klasifikační úlohy •Hodnocení v podobě grafů •Regresní úlohy •Vizualizace •Volba nejvhodnějšího algoritmu Klasifikační úlohy •kritériem úspěšnost klasifikace (predikce) na datech • • Testování modelů •testování na celých trénovacích datech •náhodné rozdělení na část trénovací a testovací •křížová validace (cross-validation) •leave-one-out •bootstrap (náhodný výběr s opakováním pro učení) •testování na testovacích datech Cílem je zjistit v kolika případech došlo ke shodě resp. neshodě modelu (systému) s informací od učitele csvukrs Matice záměn (Confusion matrix) Naivní Bayes Skutečnost Predikce ano ano ano ano ne ano ano ano ano ano ne ne ano ano ano ano ne ne ano ano ne ne ano ano Celková správnost (Acc) nebere v potaz: 1.Různé ceny chyb FP a FN (lze řešit maticí cen) 2.Míru přesvědčení klasifikátoru o správnosti klasifikace Více k maticím cen za chyby (cost matrices) na https://www.kdnuggets.com/2019/11/machine-learning-what-why-how-weighting.html Hodnocení v podobě grafů •Většina klasifikačních metod dává k dispozici, kromě samotné klasifikace, i tzv. skóre (score) klasifikace, tedy jak moc je model „přesvědčen“ o tom, že daný objekt patří do dané třídy => lze taktéž využít pro další hodnocení modelů Skutečné zařazení našich 12ti bankovních klientů do třídy, klasifikace dle Naivního Bayese a skóre klasifikace pro jednotlivé třídy Vytváří se pro jednu zvolenou tzv. pozitivní třídu – všechny ostatní třídy se pak sloučí do tzv. negativní třídy Tabulka vytvořena na základě skriptu v sem11.txt Hodnocení v podobě grafů •Křivka navýšení (lift curve) • • • • • Vztah mezi počtem úspěšných klasifikací a váhou klasifikace Pro volbu skutečné třídy „ano“ Jedna „tečka“ odpovídá jednomu řádku dat (mimo tečky vlevo dole) Tvorba křivky se neřídí predikovanou třídou! Řídí se pouze podle skóre a skutečné třídy! Vytváří se pro jednu zvolenou tzv. pozitivní třídu – všechny ostatní třídy se pak sloučí do tzv. negativní třídy http://www2.cs.uregina.ca/~dbd/cs831/notes/lift_chart/lift_chart.html http://mlwiki.org/index.php/Cumulative_Gain_Chart Pozn.: na ose X jedna tečka postupuje o 1/12 (jeden objekt ke všem). Na ose Y o 1/8 (jeden objekt ke všem, které jsou ze třídy „ano“) Pozn2: je jasné, že křivka navýšení půjde „šikmě-vpravo-nahoru“ tolikrát, kolikrát je v datech skutečná třída (zde 8x), a „čistě-doprava“ tolikrát, kolikrát je v datech negativní třída (tady 4x). Jde jen o to, jak to je uspořádáno, Klasifikátor je pak tím lepší, čím víckrát pro velké skóre dává správnou třídu. Hodnocení v podobě grafů •Křivka ROC • • • • • Vztah mezi TP a FP pro různá nastavení klasifikátoru Interpretace: Každý bod křivky říká, kolik falešně pozitivních objektů budu mít, pokud budu chtít mít určité procento skutečně pozitivních objektů (modrý bod - 10% falešných při 40% skutečných) roc Tvorba křivky se neřídí predikovanou třídou! Řídí se pouze podle skóre skutečné třídy! Interpre Vytvoření ROC křivky AUC = 0.9844 AUC = Area Under Curve (obsah plochy pod křivkou) Pro volbu skutečné třídy „ne“ Jedna „tečka“ odpovídá jedné úrovni skóre (mimo tečky vlevo dole) POZOR: O tom, co je skutečně nebo falešně pozitivní, rozhoduje POUZE úroveň skóre (pod (<=) je pozitivní, nad není pozitivní) Tvorba křivky se neřídí predikovanou třídou! Řídí se pouze podle skóre a skutečné třídy! Pozn.: na ose X jedna tečka postupuje o 1/8 (jeden objekt ke všem z negativní třídy (v tomto případě z „ano“)). Na ose Y o 1/4 (jeden objekt ke všem ze skutečné (pozitivní) třídy (v tomto případě z „ne“)) Pozn.: ROC křivka jde jen „nahoru“, pokud v daném kroku zahrneme do výpočtu bodu křivky jen skutečně pozitivní případy. Pozn.: ROC křivka jde jen „doprava“, pokud v daném kroku zahrneme do výpočtu bodu křivky jen falešně pozitivní případy. Poz ROC křivky pro více modelů Do „šedé zóny“ se lze dostat kombinací modelů, např. bagging nebo boosting Levý obrázek získán příkladem ze sem11.txt https://en.wikipedia.org/wiki/Bootstrap_aggregating https://en.wikipedia.org/wiki/Boosting_(machine_learning) Pozn, (obr. vpravo): model A se víckrát trefí u objektů s vysokým skóre, kdežto model B se víckrát trefí u objektů s nižším skóre. Pak stojí za to uvažovat o nějaké jejich kombinaci. Numerické predikce •pi predikovaná hodnota •si skutečná hodnota Obě pro i-tý příklad ze soubor n příkladů tvořících trénovací data Obrázek získán pomocí nnstart, fitting app a data Abalone RSE – Relative Squared Error (výsledek je spojen se škálou chyby, narozdíl od (R)MSE a MAE Hodnocení pro numerický výstup – regresi Analogie k matici záměn. Obrázek získán pomocí nnstart, fitting app a data Abalone Vizualizace - pravidla IF nezamestnany(ne) THEN uver(ano) grafpravidla2 Uvedený graf názorněji ukazuje, že platnost pravidla 5/6 je větší než relativní četnost třídy úvěr(ano) v datech (ta je rovna 8/12), a že tedy toto pravidlo dobře charakterizuje bonitní klienty. csvukrs Vizualizace – Rozhodovací stromy Přetrénovaný klasifikační strom Optimalizovaný klasifikační strom Obrázky ze sem10.txt Vizualizace – Shlukování Dendrogram pro Fisher Iris data Obrázek získán ze sem3.txt Vizualizace – Rozhodovací povrchy Jen pro dvou- či maximálně tří-rozměrná numerická data! csvukrs Volba nejvhodnějšího algoritmu • •charakteristiky algoritmů vs. charakteristiky dat –vyjadřovací síla, –schopnost práce s numerickými atributy, –schopnost práce se zašuměnými a chybějícími daty, –schopnost práce s maticí cen, –předpoklad nezávislosti mezi atributy, –ostrá vs. neostrá klasifikace No Free Lunch Theorem: „Neexistuje metoda, která by byla nejlepší na libovolných datech“ https://en.wikipedia.org/wiki/No_free_lunch_theorem Děkuji za pozornost Některé snímky převzaty od: prof. Ing. Petr Berka, CSc. berka@vse.cz