aloitetaan määrittelemällä, mitä luokituksella tarkoitetaan, luokittelu on prosessi, jossa jollekin käytettävissä olevista ryhmistä yritetään antaa jotain. Sinulla voi olla 2 ryhmää (Binääriluokitus) tai enemmän kuin 2 ryhmää (Moniluokkaluokitus).
Luokittelualgoritmeja ovat: (logistinen regressio, K-lähin naapuri, Tukivektorikone ja naiivi Bayes…jne)
datatieteilijälle on todella tärkeää varmistaa, kuinka hyvä on luokittelumallisi. On joitakin kuuluisia mahdollisia tapoja arvioida mallia. Ne voidaan luetella seuraavasti:
- Sekaannusmatriisi — se voidaan laskea helposti käyttämällä Scikit-Opi kirjasto-toteutusta. Sille täytyy vain syöttää vektori, joka sisältää riippuvaisen muuttujan y ^ ennustukset ja riippuvaisen muuttujan Y: n todellisten arvojen vektori
nyt kun olet laskenut sekaannusmatriisisi, joka on 2*2 matriisi mille tahansa binääriluokitusongelmalle, tuloksena oleva matriisi olisi tällainen
A confusion matrix consists of 4 values which are very valuable to know for every data scientist:
- väärät positiiviset (FP) — tapaukset, jotka on virheellisesti luokiteltu positiivisiksi (0,1) = 5
- väärät negatiiviset (Fn) — tapaukset, jotka on virheellisesti luokiteltu negatiivisiksi (1,0) = 10
- tosi positiiviset (TP) — tapaukset, jotka on oikein luokiteltu positiivisiksi (1,1) = 50
- tosi negatiiviset (tn) — tapaukset, jotka on oikein luokiteltu negatiivisiksi (0,0) = 35
tietokokonaisuuden esiintymät yhteensä (koulutus + testiesiintymät) = 5+10+50+35 = 100
nyt voidaan laskea 2 tärkeää prosenttia:
1-tarkkuusaste = oikea / yhteensä = (50+35)/ 100 = 85%
2-virhetaso = virheellinen / yhteensä = (5+10)/ 100 = 15%
nyt pitäisi juhlia, kun on rakennettu tällainen luokittelija se on niin hyvä tarkkuus korko, … vai pitäisikö ?!
Let ’s see, please follow me in the following scenario” you are a data scientist who working in a bank and has built a classification model to classification fraud and non-fraud transactions, you want to evaluate your model so you decided to calculate the confusion matrix and that was the result:”
analysoimalla sekaannusmatriisia voimme sanoa, että meillä on aika hyvä luokittelija tarkkuusnopeudella = 9,800/ 10,000 = 98%
mutta datatieteilijällä on aika outo ajatus, että hän haluaa kokeilla; Ajatuksena on estää luokittajaa luokittelemasta mitään liiketoimista petokseksi (positiivinen luokka”1″) Sitten hän laski uuden sekaannusmatriisin ja se oli seuraava:
luokittajan tarkkuusaste = 9,850/ 10,000 = 98,5% eli tarkkuusaste kasvaa 0,5%, vaikka luokittaja ei toimi kunnolla!
ja sitä kutsutaan Tarkkuusloukuksi, joten sanomme ehdottomasti, että tarkkuusnopeuden mittaaminen ei riitä vastaamaan kysymykseen ” kuinka hyvä luokittelijasi on?!”
ratkaisuna on kokeilla toista mittaustapaa, joka on
2. Kumulatiivinen Tarkkuusprofiili (CAP) käyrä-se on vankempi menetelmä konemallimme avuksi. Ymmärtääksesi intuition sen takana, sinun täytyy seurata minua seuraavissa skenaarioissa:
Skenaario#1 — Kuvittele, että sinä datatieteilijänä työskentelet yrityksessä, joka haluaa mainostaa uutta tuotettaan, joten he lähettävät sähköpostin tarjouksineen kaikille asiakkaille ja yleensä 10% asiakasvastauksista ja todella ostavat tuotteen, joten he uskovat, että näin on tällä kertaa ja tätä skenaariota kutsutaan satunnaiseksi skenaarioksi.
skenaario#2 — työskentelet edelleen samassa yrityksessä, mutta tällä kertaa päätit tehdä sen systemaattisemmin:
- tarkasta historialliset tietosi ja ota joukko asiakkaita, jotka ovat ostaneet tarjouksen ja yritä poimia nämä tiedot
- mittaa nämä tekijät ja yritä selvittää, mikä niistä vaikuttaa ostettujen tuotteiden määrään tai toisin sanoen sovittaa tiedot logistiseen regressiomalliin.
- tee ennuste siitä, ketkä asiakkaat todennäköisemmin ostavat tuotteen.
- kohdentakaa sitten erityisesti ne ihmiset, joiden ennustitte ostavan tuotteen todennäköisemmin.
- tämän jälkeen mittaamalla ”CAP Curve” – käyrässä edustetun kohderyhmän vastetta.
voimme varmasti huomata parannuksen; kun otit yhteyttä 20 000 kohdennettuun asiakkaaseen, sait noin 5 000 positiivista vastausta, missä skenaariossa#1 ottamalla yhteyttä samaan asiakasmäärään, sait vain 2 000 positiivista vastausta.
ideana on siis verrata malliasi satunnaiseen skenaarioon ja voit viedä sen seuraavalle tasolle rakentamalla toisen mallin ehkä tukivektorikoneen (SVM)/ytimen SVM-mallin, jolla voit verrata sitä nykyiseen logistiseen regressiomalliisi.
mutta, kuinka analysoida tuloksena oleva kuvaaja ?
Mitä parempi malli, sitä suurempi on sen CAP-käyrän ja satunnaisen skenaariosuoran välinen alue.
hypoteettisesti voidaan piirtää niin sanottu täydellinen malli, joka esittää mallia, jota on tavallaan mahdotonta rakentaa, ellei ole jonkinlaista kristallipalloa . Se osoittaa, että kun lähetät tarjouksen 10,000 mahdollinen asiakas sait täydellisen positiivisen vastauksen, jossa kaikki yhteyttä ihmiset ostivat tuotteen.
tällaisen hypoteettisen mallin piirtäminen auttaa meitä vertailukohtana mallikattokäyrien arvioinnissa.
edellisen kaavion analysointiin on olemassa 2 lähestymistapaa:
ensimmäinen —
- laske pinta —ala täydellisen Mallikäyrän alle (ap)
- laske pinta-ala täydellisen Mallikäyrän alle (aR)
- laske tarkkuusaste(AR) = aR/ aP; as (AR)~1 (Parempi on mallisi) ja as (AR)~0 (huonompi on mallisi)
- piirrä viiva 50% pisteestä (50,000) kokonaisakselilla aina mallikattokäyrään
- asti sitten tuosta risteyskohdasta projisoi se ostetulle akselille
- tämä x% – arvo kuvaa, kuinka hyvä mallisi on:
toinen –
- Jos X < 60% /(6000) niin on roskamalli
- Jos 60% < X < 70% /(7000) niin on huono malli
- Jos 70% < X < 80% /(8000) niin on hyvä malli
- Jos 80% < X < 90%/ (9000) niin sinulla on erittäin hyvä malli
- Jos 90% < X < 100% / (10 000) niin mallisi on liian hyvä ollakseen totta! mitä tarkoitan on, että, tämä tapahtuu yleensä johtuu Overfitting mikä ei todellakaan ole hyvä asia, koska malli on hyvä luokittelemaan vain tiedot se on koulutettu, mutta erittäin huono uusia näkymättömiä tapauksia.