Ve strojovém učení často používáme klasifikační modely k získání předpovězeného výsledku populačních dat. Klasifikace, která je jednou ze dvou částí učení pod dohledem, se zabývá daty různých kategorií. Tréninková sada dat trénuje model k předpovídání neznámých štítků populačních dat. Existuje více algoritmů, a to logistická regrese, K-nejbližší soused, rozhodovací strom, Naive Bayes atd. Všechny tyto algoritmy mají svůj vlastní styl provádění a různé techniky předpovídání. Nakonec však musíme zjistit účinnost algoritmu. Pro nalezení nejvhodnějšího algoritmu pro konkrétní obchodní problém existuje několik technik hodnocení modelu. V tomto článku se budeme zabývat různými technikami vyhodnocování modelů.
Pravděpodobně dostala svůj název podle stavu zmatku, kterým se zabývá. Pokud si vzpomínáte na testování hypotéz, možná si vzpomenete na dvě chyby, které jsme definovali jako typ-I a 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.
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. Jedná se o maticové zobrazení výsledků libovolného binárního testování. Vezměme si například případ předpovědi nemoci. Provedli jste nějaké lékařské testy a pomocí výsledků těchto testů se chystáte předpovědět, zda daná osoba trpí nějakou nemocí. Takže vlastně budete ověřovat, zda je hypotéza o prohlášení osoby za nemocnou přijatelná, nebo ne. Řekněme, že ze 100 lidí předpovídáte, že 20 lidí bude mít nemoc. Ve skutečnosti má nemoc pouze 15 lidí a z těchto 15 lidí jste správně diagnostikovali 12 lidí. Pokud tedy výsledek vložím do matice záměny, bude vypadat takto –
Pokud tedy porovnáme obr.3. s obr.2 zjistíme –
- Pravdivě pozitivní: 12 (Pozitivní případ jste předpověděli správně!)
- Pravdivě negativní: 77 (Negativní případ jste předpověděli správně!)
- Falešně pozitivní: 8 (Aha! Předpověděli jste, že tito lidé mají nemoc, ale ve skutečnosti ji nemají. Ale nebojte se, to lze napravit při další lékařské analýze. Jedná se tedy o chybu s nízkým rizikem. V tomto případě se jedná o chybu typu II.)
- Falešně negativní: 3 (Oh ho! Předpověděli jste, že tito tři nešťastníci jsou fit. Ve skutečnosti však nemoc mají. To je nebezpečné! Buďte opatrní! V tomto případě se jedná o chybu typu I.)
Pokud se nyní zeptám, jaká je přesnost predikčního modelu, podle kterého jsem postupoval, abych získal tyto výsledky, odpovědí by měl být poměr přesně předpovězeného počtu a celkového počtu lidí, který je (12+77)/100 = 0,89. To znamená, že se jedná o přesnost. Pokud důkladně prostudujete matici záměny, zjistíte následující věci –
- V horním řádku je znázorněn celkový počet predikcí, které jste provedli jako mající danou nemoc. Z těchto předpovědí jste správně předpověděli, že 12 lidí má nemoc ve skutečnosti. Poměr 12/(12+8) = 0,6 je tedy mírou přesnosti vašeho modelu při odhalování osoby, která má mít danou nemoc. Tomu se říká přesnost modelu.
- Nyní vezměte první sloupec. Tento sloupec představuje celkový počet osob, které mají nemoc ve skutečnosti. A vy jste správně předpověděli 12 z nich. Takže poměr, 12/(12+3) = 0,8, je mírou přesnosti vašeho modelu odhalit osobu, která má nemoc, ze všech osob, které mají nemoc ve skutečnosti. To se označuje jako Recall.
Nyní si možná položíte otázku, proč potřebujeme k vyhodnocení modelu měřit přesnost nebo odvolání?
Odpovědí je, že se to velmi doporučuje, když je určitý výsledek velmi citlivý. Například se chystáte vytvořit model pro banku, který bude předpovídat podvodné transakce. Není příliš časté, aby došlo k podvodné transakci. Na 1000 transakcí může být 1 transakce, která je podvodná. Váš model tedy nepochybně předpoví transakci jako nepodvodnou velmi přesně. V tomto případě tedy na celé přesnosti nezáleží, protože bude vždy velmi vysoká bez ohledu na přesnost předpovědi podvodných transakcí, protože těch je v celé populaci velmi malé procento. Předpověď podvodné transakce jako nepodvodné však není žádoucí. V tomto případě tedy bude měření přesnosti hrát zásadní roli při hodnocení modelu. Pomůže pochopit, kolik ze všech skutečných podvodných transakcí předpovídá. Pokud je nízká, i když je celková přesnost vysoká, model není přijatelný.
Křivka ROC (Receiver Operating Characteristics)
Měření plochy pod křivkou ROC je také velmi užitečnou metodou hodnocení modelu. ROC je poměr míry pravdivých pozitivních výsledků (True Positive Rate, TPR) a míry falešných pozitivních výsledků (False Positive Rate, FPR) (viz obr. 2). V našem příkladu detekce onemocnění je TPR mírou poměru mezi počtem přesných předpovědí osob s onemocněním a celkovým počtem osob se skutečným onemocněním. FPR je poměr mezi počtem správně předpovězených osob, které nemoc nemají, a celkovým počtem osob, které nemoc ve skutečnosti nemají. Pokud tedy vykreslíme křivku, vyjde nám tato –
Modrá čára označuje změnu TPR při různých FPR pro model. Větší poměr plochy pod křivkou a celkové plochy (v tomto případě 100 x 100) definuje větší přesnost modelu. Pokud nabývá hodnoty 1, bude model nadhodnocený, a pokud se rovná hodnotě nižší než 0,5 (tj. když je křivka podél přerušované úhlopříčky), bude model příliš nepřesný k použití.
Pro klasifikační modely existuje mnoho dalších metod hodnocení, jako jsou grafy Gain a Lift, Giniho koeficient atd. Hluboké znalosti o matici záměny však mohou pomoci velmi efektivně vyhodnotit jakýkoli klasifikační model. V tomto článku jsem se tedy pokusil demystifikovat nejasnosti kolem matice záměny, abych čtenářům pomohl.
Šťastné modelování!