Connect with us

AI 101

Mikä on Confusion Matrix?

mm

Yksi tehokkaimmista analyysityökaluista koneoppimisessa ja data-tieteessä on confusion matrix. Confusion matrix kykenee antamaan tutkijoille yksityiskohtaisia tietoja siitä, miten koneoppimisen luokittelija on suorittanut kohde-luokkien suhteen datasetissä. Confusion matrix näyttää oikein luokitellut esimerkit väärin luokiteltujen esimerkkien rinnalla. Tarkastellaan tarkemmin, miten confusion matrix on rakennettu ja miten sitä voidaan tulkita.

Mikä on Confusion Matrix?

Aloita antamalla yksinkertainen määritelmä confusion matrixille. Confusion matrix on ennustava analytiikka-työkalu. Nimenomaan se on taulukko, joka näyttää ja vertaa todellisia arvoja mallin ennustettujen arvojen kanssa. Koneoppimisen kontekstissa confusion matrix käytetään mittarina, jolla analyysi voidaan suorittaa siitä, miten koneoppimisen luokittelija suoritti datasetissä. Confusion matrix luo visualisoinnin metrikoista, kuten tarkkuudesta, täsmällisyydestä, spesifisyydestä ja muistista.

Syy, miksi confusion matrix on erityisen hyödyllinen, on, että toisin kuin muut luokittelumetrikat, kuten yksinkertainen tarkkuus, confusion matrix luo täydellisemmän kuvan siitä, miten malli suoritti. Käyttäminen pelkästään tarkkuus-metrikkaa voi johtaa tilanteeseen, jossa malli tunnistaa täysin ja johdonmukaisesti yhden luokan väärin, mutta se ei huomata, koska keskimääräinen suorituskyky on hyvä. Confusion matrix antaa vertailun eri arvojen välillä kuten False Negatives, True Negatives, False Positives ja True Positives.

Määritellään eri metriikat, joita confusion matrix edustaa.

Recall Confusion Matrixissa

Recall on oikeasti positiivisten esimerkkien määrä jaettuna väärin negatiivisten esimerkkien ja positiivisten esimerkkien yhteismäärällä. Toisin sanoen recall edustaa oikeasti positiivisten esimerkkien osuutta, jonka koneoppimismalli on luokitellut. Recall ilmoitetaan prosentteina positiivisista esimerkeistä, joita malli pystyi luokittelemaan kaikkien positiivisten esimerkkien joukosta datasetissä. Tätä arvoa voidaan myös kutsua “hit rateksi” ja siihen liittyvä arvo on “herkkyys”, joka kuvaa todennäköisyyttä recallille eli oikeiden positiivisten ennusteiden määrää.

Tarkkuus Confusion Matrixissa

Kuten recall, tarkkuus on arvo, joka seuraa mallin suorituskykyä positiivisten esimerkkien luokittelussa. Toisin kuin recall kuitenkin, tarkkuus on huolissaan siitä, kuinka moni esimerkki, jonka malli on merkinnut positiiviseksi, oli todella positiivinen. Tämän laskemiseen tarvitaan jakaa oikeasti positiiviset esimerkit väärin positiivisten ja oikeasti positiivisten esimerkkien yhteismäärällä.

Jotta ero recallin ja tarkkuuden välillä selvenisi, tarkkuus pyrkii selvittämään, mikä prosentti kaikista positiivisiksi merkityistä esimerkeistä oli todella positiivisia, kun taas recall seuraa kaikkien todella positiivisten esimerkkien prosenttia, joita malli pystyi tunnistamaan.

Spesifisyyden Confusion Matrixissa

Kun recall ja tarkkuus ovat arvoja, jotka seuraavat positiivisia esimerkkiä ja oikeasti positiivisen luokan määrää, spesifisyyden määrä oikeasti negatiivisten esimerkkien määrä eli esimerkkien määrä, joita malli on määritellyt negatiivisiksi ja jotka todella ovat negatiivisia. Tämä lasketaan jakamalla esimerkkejä, jotka on luokiteltu negatiivisiksi, jaettuna väärin positiivisten ja oikeasti negatiivisten esimerkkien yhteismäärällä.

Ymmärtäminen Confusion Matrixista

Photo: Jackverr via Wikimedia Commons, (https://commons.wikimedia.org/wiki/File:ConfusionMatrix.png), CC BY SA 3.0

Esimerkki Confusion Matrixista

Määriteltyäni tarvittavat termit kuten tarkkuus, recall, herkkyys ja spesifisyyden, voimme tarkastella, miten nämä eri arvot ovat edustettuina confusion matrixissa. Confusion matrix luodaan luokittelutilanteissa, sovellettavissa tapauksiin, joissa on kaksi tai useampi luokka. Confusion matrix, joka luodaan, voi olla yhtä korkea ja leveä kuin tarvitaan, ja se voi sisältää halutun määrän luokkia, mutta yksinkertaisuuden vuoksi tarkastelemme 2×2 confusion matrixia binääriselle luokittelutehtävälle.

Oletetaan, että luokittelija käytetään määrittämään, onko potilaalla tauti. Ominaisuudet syötetään luokittelijaan, ja luokittelija palauttaa yhden kahdesta eri luokittelusta – joko potilaalla ei ole tautia tai hänellä on.

Aloita vasemmasta reunasta. Vasen puoli confusion matrixia edustaa ennusteita, joita luokittelija on tehnyt yksittäisille luokille. Binäärisessä luokittelutehtävässä on kaksi riviä. Yläosassa seurataan todellisia arvoja, todellisia luokka-etikettejä, data-eksemplääreistä.

Confusion matrixin tulkinta voidaan tehdä tarkastelemalla, missä rivit ja sarakkeet leikkaavat toisensa. Tarkastellaan mallin ennusteita mallin todellisten etikettien suhteen. Tässä tapauksessa True Positives -arvo, oikeiden positiivisten ennusteiden määrä, sijaitsee ylävasemmalla kulmalla. Väärät positiiviset löytyvät yläoikeasta kulmasta, missä esimerkit ovat todella negatiivisia, mutta luokittelija on merkinnut ne positiivisiksi.

Alavasemman kulman ruudussa näkyvät esimerkit, joita luokittelija on merkinnut negatiivisiksi, mutta jotka ovat todella positiivisia. Lopulta confusion matrixin alaoikean kulman ruudussa ovat True Negative -arvot eli todella negatiiviset esimerkit.

Kun datasetissä on enemmän kuin kaksi luokkaa, matriisi kasvaa luokkien määrän mukaan. Esimerkiksi jos on kolme luokkaa, matriisi on 3×3-matriisi. Riippumatta confusion matrixin koosta, tulkintatapa on täsmälleen sama. Vasen puoli sisältää ennustetut arvot ja todelliset luokka-etiketit juoksuvat yläreunassa. Oikein ennustetut esimerkit juoksuvat vinottain ylävasemman kulman ja alaoikean kulman välillä. Katsomalla matriisia voidaan erottaa neljä yllä mainittua ennustemetriikkaa.

Esimerkiksi voit laskea recallin ottamalla true positiiviset ja false negatiiviset, lisäämällä ne yhteen ja jakamalla niitä true positiivisten esimerkkien määrällä. Vastaavasti tarkkuus voidaan laskea yhdistämällä false positiiviset true positiivisten kanssa ja jakamalla arvoa true positiivisten esimerkkien määrällä.

Vaikka voit viettää aikaa manuaalisesti laskemassa metriikoita, kuten tarkkuutta, recallia ja spesifisyyttä, nämä metriikat ovat niin yleisesti käytettyjä, että useimmat koneoppimiskirjastot sisältävät menetelmiä, joilla ne voidaan näyttää. Esimerkiksi Scikit-learn Pythonissa sisältää funktion, joka luo confusion matrixin.

Blogger ja ohjelmoija, jolla on erityisalat Machine Learning ja Deep Learning -aiheissa. Daniel toivoo pystyvänsä auttamaan muita käyttämään tekoälyn voimaa sosiaaliseen hyvään.