Sekaannusmatriisi koneoppimisessa: Yhden luukun ratkaisu

Tämä artikkeli keskittyy sekaannusmatriisiin, joka on yksi tärkeimmistä näkökohdista koneoppimisen algoritmeissa, joita käytetään sen tarkkuuden arviointiin.

Sisään , meillä on yleensä 2 erilaista käyttötapausta, ja ongelma. Confusion Matrix auttaa luokitusmallin tarkkuuden laskemisessa, mikä auttaa meitä epäsuorasti kuvaamaan luokitusmallin suorituskykyä. Se on tärkein askel mallin arvioinnissa. Käsittelen seuraavia aiheita tässä artikkelissa:

1. Mikä on sekaannusmatriisi?





2. Sekaannusmatriisin tarkkuus ja komponentit

3. Tarkkuus, palautus ja F-mittaus



4. Sekoitusmatriisin luominen Pythonin ja Sklearnin avulla

Mikä on sekaannusmatriisi?

Sekaannusmatriisi on vertailuyhteenveto ennustetuista tuloksista ja todellisista tuloksista missä tahansa luokitusongelman käyttötapauksessa. Vertailukooste on äärimmäisen välttämätön mallin suorituskyvyn määrittämiseksi sen jälkeen, kun se on koulutettu joillakin harjoitustiedoilla. Accuracy-Confusion-MatrixBinaarisen luokituksen käyttötapauksessa sekaannusmatriisi on 2 × 2 -matriisi, joka on alla olevan kuvan mukainen
Ennustettu luokan 1 arvo EG: 1 Ennustettu luokan 2 arvo EG: 0
Todellinen luokan 1 arvo

EG: 1

TP (todellinen positiivinen) FN (väärä negatiivinen)
Todellinen luokan 2 arvo



EG: 0

FP (väärä positiivinen) TN (tosi negatiivinen)

Yllä olevasta kuvasta:
Meillä on,

  • Todellinen luokan 1 arvo = 1, joka on samanlainen kuin positiivisen arvon binaarituloksessa.
  • Todellinen luokan 2 arvo = 0, joka on samanlainen kuin binaarituloksen negatiivinen arvo.

Sekaannusmatriisin vasemmanpuoleinen indeksi osoittaa periaatteessa todelliset arvot ja ylempi sarake osoittaa ennustetut arvot.

Sekoitusmatriisin luomisessa on olemassa useita komponentteja. Komponentit mainitaan alla

Positiivinen (P): Ennustettu tulos on positiivinen (Esimerkki: Kuva on kissa)

Negatiivinen (N): ennustettu tulos on negatiivinen (Esimerkki: Kuvat eivät ole kissa)

Todellinen positiivinen (TP): Tässä TP osoittaa periaatteessa ennustetun ja todelliset arvot ovat 1 (True)

Todellinen negatiivinen (TN): Tässä TN ilmaisee ennustetun ja todellinen arvo on 0 (väärä)

Väärä negatiivinen (FN): Tässä FN osoittaa, että ennustettu arvo on 0 (negatiivinen) ja todellinen arvo on 1. Tässä molemmat arvot eivät täsmää. Siksi se on väärä negatiivinen.

Väärä positiivinen (FP): Tässä FP osoittaa, että ennustettu arvo on 1 (positiivinen) ja todellinen arvo 0. Tässä taas molemmat arvot eivät täsmää. Siksi se on väärä positiivinen.

Sekaannusmatriisin tarkkuus ja komponentit

Kun sekaannusmatriisi on luotu ja määritetty kaikki komponenttien arvot, tarkkuuden laskeminen on meille melko helppoa. Joten katsotaanpa komponentit ymmärtämään tätä paremmin.
  • Luokittelun tarkkuus

Edellä esitetystä kaavasta TP: n (tosi positiivinen) ja TN: n (tosi negatiivinen) summa on oikea ennustettu tulos. Siksi tarkkuuden laskemiseksi prosentteina jaamme kaikkien muiden komponenttien kanssa. Tarkkuudessa on kuitenkin joitain ongelmia, emmekä voi olla täysin riippuvaisia ​​siitä.

Katsotaanpa, että tietojoukkomme on täysin epätasapainossa. Tässä skenaariossa 98%: n tarkkuus voi olla hyvä tai huono ongelmalausekkeen perusteella. Siksi meillä on vielä joitain avainsanoja, jotka auttavat meitä olemaan varmoja laskemastamme tarkkuudesta. Ehdot ovat seuraavat:

  • TPR (todellinen positiivinen osuus) tai herkkyys:

Todellinen positiivinen osuus, joka tunnetaan myös nimellä herkkyys, mittaa todellisen positiivisen prosenttiosuuden todellisten positiivisten kokonaismäärien suhteen, joka ilmaistaan ​​(TP + FN)

muuntamalla kaksinkertainen int
Ennustettu luokan 1 arvo EG: 1 Ennustettu luokan 2 arvo EG: 0 Kaikki yhteensä
Todellinen luokan 1 arvo

EG: 1

TP (todellinen positiivinen) FN (väärä negatiivinen) Todelliset positiiviset kokonaismäärä
Todellinen luokan 2 arvo

EG: 0

FP (väärä positiivinen)TN (tosi negatiivinen)Todelliset negatiiviset yhteensä
TPR = tosi positiivinen / (tosi positiivinen + väärä negatiivinen
  • TNR (True Negative Rate) tai spesifisyys:

Todellinen negatiivinen osuus tai spesifisyys mittaa todellisten negatiivisten osuutta negatiivisten kokonaismäärästä

Ennustettu luokan 1 arvo EG: 1 Ennustettu luokan 2 arvo EG: 0 Kaikki yhteensä
Todellinen luokan 1 arvo

EG: 1

TP (todellinen positiivinen)FN (väärä negatiivinen)Todelliset positiiviset kokonaismäärä
Todellinen luokan 2 arvo

EG: 0

FP (väärä positiivinen) TN (tosi negatiivinen) Todelliset negatiiviset yhteensä

TNR = tosi negatiivinen / (tosi negatiivinen + väärä positiivinen)

  • Väärä positiivinen osuus (FPR):

Väärän positiivisen prosenttiosuus on ennustetun väärän positiivisen (FP) prosenttiosuus ennustettujen positiivisten tulosten kokonaismäärästä (TP + FP).

Ennustettu luokan 1 arvo EG: 1 Ennustettu luokan 2 arvo EG: 0
Todellinen luokan 1 arvo EG: 1 TP (todellinen positiivinen) FN (väärä negatiivinen)
Todellinen luokan 2 arvo EG: 0 FP (väärä positiivinen) TN (tosi negatiivinen)
Ennustetun positiivisen kokonaissumma Ennustettujen negatiivisten kokonaissumma
FPR = väärä positiivinen / (tosi positiivinen + väärä positiivinen)
  • Väärän negatiivinen osuus (FNR):

False Negative Rate on ennustetun väärän negatiivisen (FP) prosenttiosuus ennustettujen negatiivisten tulosten kokonaismäärästä (TN + FN).

Ennustettu luokan 1 arvo EG: 1 Ennustettu luokan 2 arvo EG: 0
Todellinen luokan 1 arvo EG: 1TP (todellinen positiivinen) FN (väärä negatiivinen)
Todellinen luokan 2 arvo EG: 0FP (väärä positiivinen) TN (tosi negatiivinen)
Ennustetun positiivisen kokonaissumma Ennustettujen negatiivisten kokonaissumma
FNR = väärä negatiivinen / (väärä negatiivinen + todellinen negatiivinen)

Tarkkuus, palautus ja F-mittaus

  • Palauttaa mieleen:

Palautus on samanlainen kuin todellinen positiivinen osuus ja se on oikein ennustettujen positiivisten arvojen (TP) kokonaismäärän suhde kaikkiin positiivisiin arvoihin.

  • Tarkkuus:

Tarkkuus osoittaa periaatteessa kaikki pisteet, jotka malli ennusti positiivisiksi, ja kuinka suuri osa niistä on tosiasiallisesti positiivisia.

Tarkkuus ja palautus ovat mittarituloksia, jotka keskittyvät positiiviseen luokkaan, kuten yllä olevista kaavoista käy ilmi.

  • F-mittaa

Joten F-Measure on tekniikka, joka yhdistää sekä Precision- että Recall-tekniikan ja siinä käytetään harmonista keskiarvoa tavallisen aritmeettisen keskiarvon sijasta, minkä vuoksi ääri-arvoista rangaistaan. F-mittaa kutsutaan myös F1-pisteeksi ja se annetaan alla olevan kaavan avulla.

Tarkastellaanpa esimerkkiä ja kuinka voimme laskea tarkkuuden, tarkkuuden, palautuksen ja F1-pistemäärän.

N = 165 Ennakoitu KYLLÄ Ennustettu EI
Todellinen KYLLÄ TP = 150 FN = 10
Nykyinen NO FP = 20 TN = 100
    • Tarkkuus = (TP + TN) / (TP + TN + FP + FN) = (150 + 100) / (150 + 100 + 20 + 10) = 0,89
    • Palautus = TP / (TP + FN) = 150 / (150 + 10) = 0,93
    • Tarkkuus: TP / (TP + FP) = 150 / (150 + 20) = 0,88

java-komento ohjelman lopettamiseksi
  • F-mitta = (2 * Takaisin * Tarkkuus) / (Palauta + Esivalinta) = (2 * 0,93 * 0,88) / (0,93 + 0,88) = 0,90

Sekoitusmatriisin luominen Pythonin ja Sklearnin avulla

Nyt näemme esimerkin siitä, miten voimme luoda sekaannusmatriisin käyttämällä pythonia sklearn-kirjaston kanssa.

yksi. Aluksi luomme luettelon todellisista tiedoista ja ennustetuista tarkkuuden tarkistamiseksi alla esitetyllä tavalla

# Python-komentosarja sekaannusmatriisin luomiseen. todelliset_tiedot = [1, 1, 0, 1, 0, 0, 1, 0, 0, 0,1,0,1] ennustetut tiedot = [0, 1, 1, 1, 0, 0, 1, 0, 1, 0,1,0,1]

2. Meidän on tuotava sekaannusmatriisi sklearn-kirjastosta alla esitetyllä tavalla:

from sklearn.metrics tuo confusion_matrix

3. Seuraavaksi luomme sekaannusmatriisin alla olevan kuvan mukaisesti:

lopulliset tulokset = sekaannuksen matriisi (todelliset_tiedot, ennustetut_tiedot)

Neljä. Nyt voimme edetä ja laskea tarkkuuden tuomalla kirjaston alla olevan kuvan mukaisesti:

from sklearn.metrics tuonti tarkkuus_pisteet tarkkuus = tarkkuus_pisteet (todelliset_tiedot, ennustetut_tiedot)

5. Lopuksi lasketaan F1-pisteet tai F-mitat alla esitetyllä tavalla:

from sklearn.metrics tuo luokitusraportti-raportti = luokitusraportti (todelliset_tiedot, ennustetut_tiedot)

Alla on täydellinen koodi:

todelliset_tiedot = [1, 1, 0, 1, 0, 0, 1, 0, 0, 0,1,0,1] ennustetut tiedot = [0, 1, 1, 1, 0, 0, 1, 0, 1, 0,1,0,1] alkaen sklearn.metrics tuonti confusion_matrix viimeiset_tulokset = confusion_matrix (todelliset_tiedot, ennustetut_tiedot) print (lopulliset_tulokset) from sklearn.metrics tuontitarkkuus_pisteet tarkkuus = tarkkuus_pisteet (nykyiset_tiedot, ennustetut_tiedot) sklearn.metrics tuonti luokitus_raportti raportti (luokitus_raportti ( todelliset_tiedot, ennustetut_tiedot) tulosta (tarkkuus) tulosta (raportti)

matrix

Joten tällä olemme päässeet tämän artikkelin loppuun. Toivon, että kaikki hämmennyksesi sekaannusmatriisista on nyt ratkaistu.

Edurekan auttaa sinua hankkimaan asiantuntemusta erilaisista koneoppimisalgoritmeista, kuten regressiosta, klustereista, päätöksentekopuista, satunnaisista metsistä, Naïve Bayesista ja Q-Learningista. Tämä koneoppiminen Python-koulutuksen avulla paljastaa sinut tilastojen, aikasarjojen ja koneoppimisen algoritmien eri luokkiin, kuten valvottuihin, valvomattomiin ja vahvistettuihin algoritmeihin. Koko tietojenkäsittelykurssin aikana ratkaiset tosielämän tapaustutkimuksia median, terveydenhuollon, sosiaalisen median, ilmailun ja henkilöstöhallinnon aloilla.