logo

Matrika zmede v strojnem učenju

noter strojno učenje , je klasifikacija postopek kategoriziranja danega nabora podatkov v različne kategorije. Pri strojnem učenju za merjenje učinkovitosti klasifikacijskega modela uporabljamo matriko zmede . S to vadnico razumejte pomen matrike zmede.

Kaj je matrica zmede?

A matriko zmede je matrika, ki povzema delovanje modela strojnega učenja na nizu testnih podatkov. Je sredstvo za prikaz števila točnih in netočnih primerov na podlagi napovedi modela. Pogosto se uporablja za merjenje uspešnosti klasifikacijskih modelov, katerih namen je napovedati kategorično oznako za vsak vhodni primerek.

Matrika prikazuje število primerkov, ki jih ustvari model na testnih podatkih.



  • Pravi pozitivni učinki (TP): zgodi, ko model natančno napove pozitivno podatkovno točko.
  • Pravi negativi (TN) : pojavi se, ko model natančno napove negativno podatkovno točko.
  • Lažni pozitivni rezultati (FP) : pojavi se, ko model nepravilno napove pozitivno podatkovno točko.
  • False negativi (FN) : pojavi se, ko model napačno napove negativno podatkovno točko.

Zakaj potrebujemo matriko zmede?

Pri ocenjevanju učinkovitosti klasifikacijskega modela je matrika zmede bistvena. Ponuja temeljito analizo resnično pozitivnih, resnično negativnih, lažno pozitivnih in lažno negativnih napovedi, kar omogoča globlje razumevanje modela odpoklic, točnost, natančnost, in splošno učinkovitost v razrednem odliku. Ko je v naboru podatkov neenakomerna porazdelitev razreda, je ta matrika še posebej koristna pri ocenjevanju zmogljivosti modela, ki presega osnovne meritve natančnosti.

Razumejmo matriko zmede s primeri:

Matrika zmede Za binarno klasifikacijo

Spodaj je prikazana matrika zmede 2X2 za prepoznavanje slike s sliko psa ali sliko brez psa.

Dejansko

pes

Ne pes

Predvideno

pes

True Positive
(TP)

Lažno pozitiven
(FP)

Ne pes

Lažno negativno
(FN)

Resnično negativno
(TN)

  • Resnično pozitivno (TP): Skupno število, ki ima predvidene in dejanske vrednosti, je Dog.
  • Resnično negativno (TN): Skupno število, ki ima predvidene in dejanske vrednosti, ni pes.
  • Lažno pozitivno (FP): To je skupno štetje, pri katerem je napoved pes, medtem ko dejansko ni pes.
  • Lažno negativno (FN): To je skupno štetje, pri katerem napoved ni pes, medtem ko je dejansko pes.

Primer problemov binarne klasifikacije

Kazalo

1

2

3

4

5

6

7

8

9

10

igra pigeon android

Dejansko

pes

pes

pes

Ne pes

pes

Ne pes

pes

pes

Ne pes

Ne pes

Predvideno

pes

Ne pes

pes

Ne pes

pes

pes

pes

pes

razlika med tigrom in levom

Ne pes

Ne pes

Rezultat

Mesto

FN

Mesto

TN

Mesto

FP

Mesto

Mesto

TN

TN

  • Dejansko število psov = 6
  • Dejansko ne šteje pes = 4
  • Resnično pozitivno število = 5
  • Število lažnih pozitivnih rezultatov = 1
  • Dejansko negativno število = 3
  • Lažno negativno število = 1

Predvideno

pes

Ne pes


Dejansko

pes

True Positive
(TP =5)

Lažno negativno
(FN =1)

Ne pes

Lažno pozitiven
(FP=1)

True Negative
(TN=3)

Meritve, ki temeljijo na podatkih matrike zmede

1. Natančnost

Natančnost se uporablja za merjenje zmogljivosti modela. Je razmerje med skupnim številom pravilnih in vseh primerkov.

Accuracy = frac {TP+TN}{TP+TN+FP+FN}

Za zgornji primer:

Natančnost = (5+3)/(5+3+1+1) = 8/10 = 0,8

2. Natančnost

Natančnost je merilo, kako natančne so pozitivne napovedi modela. Opredeljen je kot razmerje med resničnimi pozitivnimi napovedmi in skupnim številom pozitivnih napovedi, ki jih naredi model.

ext{Precision} = frac{TP}{TP+FP}

Za zgornji primer:

Natančnost = 5/(5+1) =5/6 = 0,8333

3. Odpoklic

Odpoklic meri učinkovitost klasifikacijskega modela pri prepoznavanju vseh ustreznih primerkov iz nabora podatkov. Je razmerje med številom resnično pozitivnih (TP) in vsoto resnično pozitivnih in lažno negativnih (FN) primerkov.

ext{Recall} = frac{TP}{TP+FN}

Za zgornji primer:

Priklic = 5/(5+1) =5/6 = 0,8333

Opomba: Natančnost uporabljamo, ko želimo čim bolj zmanjšati lažne pozitivne rezultate, kar je ključnega pomena v scenarijih, kot je odkrivanje neželene e-pošte, kjer je napačno razvrščanje sporočila, ki ni neželena pošta, drago. In odpoklic uporabljamo, ko je zmanjšanje lažno negativnih rezultatov bistvenega pomena, kot pri medicinskih diagnozah, kjer je prepoznavanje vseh dejanskih pozitivnih primerov ključnega pomena, tudi če ima za posledico nekaj lažno pozitivnih rezultatov.

4. F1-rezultat

F1 rezultat se uporablja za ovrednotenje splošne uspešnosti klasifikacijskega modela. Je harmonično povprečje natančnosti in priklica,

ext{F1-Score} = frac {2 cdot Precision cdot Recall}{Precision + Recall}

Za zgornji primer:

F1-rezultat: = (2* 0,8333* 0,8333)/( 0,8333+ 0,8333) = 0,8333

Uravnotežimo natančnost in priklic z rezultatom F1, kadar je potreben kompromis med zmanjšanjem lažno pozitivnih in lažno negativnih rezultatov, na primer v sistemih za iskanje informacij.

5. Specifičnost:

Specifičnost je še ena pomembna metrika pri vrednotenju klasifikacijskih modelov, zlasti pri binarni klasifikaciji. Meri sposobnost modela, da pravilno identificira negativne primere. Specifičnost je znana tudi kot prava negativna stopnja.

ext{Specificity} = frac{TN}{TN+FP}

Specifičnost=3/(1+3)​=3/4=0,75

6. Napaka tipa 1 in tipa 2

Napaka tipa 1

Napaka tipa 1 se pojavi, ko model napove pozitiven primer, vendar je dejansko negativen. Na natančnost vplivajo lažni pozitivni rezultati, saj gre za razmerje med pravimi pozitivnimi rezultati in vsoto resnično pozitivnih in lažno pozitivnih rezultatov.

ext{Type 1 Error} = frac{FP}{TN+FP}

Na primer, v scenariju sodne dvorane se napaka tipa 1, ki se pogosto imenuje lažno pozitivna napaka, pojavi, ko sodišče pomotoma obsodi posameznika kot krivega, čeprav je v resnici nedolžen za domnevni zločin. Ta huda napaka ima lahko globoke posledice, ki vodijo do neupravičenega kaznovanja nedolžne osebe, ki ni storila zadevnega kaznivega dejanja. Preprečevanje napak tipa 1 v sodnih postopkih je najpomembnejše za zagotovitev, da je pravici zadoščeno in da so nedolžni posamezniki zaščiteni pred neupravičeno škodo in kaznovanjem.

Napaka tipa 2

Napaka tipa 2 se pojavi, ko model ne uspe napovedati pozitivnega primera. Lažno negativni rezultati neposredno vplivajo na odpoklic, saj gre za razmerje med resničnimi pozitivnimi rezultati in vsoto resničnih pozitivnih in lažno negativnih rezultatov.

razlika med gigabajtom in megabajtom

V kontekstu medicinskega testiranja se napaka tipa 2, pogosto znana kot lažno negativna, pojavi, ko diagnostični test ne zazna prisotnosti bolezni pri bolniku, ki jo resnično ima. Posledice takšne napake so pomembne, saj lahko povzroči zapoznelo diagnozo in kasnejše zdravljenje.

ext{Type 2 Error} = frac{FN}{TP+FN}

Natančnost poudarja zmanjšanje lažnih pozitivnih rezultatov, medtem ko se priklic osredotoča na zmanjšanje lažnih negativnih rezultatov.

Implementacija matrike zmede za binarno klasifikacijo z uporabo Pythona

1. korak: uvozite potrebne knjižnice

Python import numpy as np from sklearn.metrics import confusion_matrix,classification_report import seaborn as sns import matplotlib.pyplot as plt>

2. korak: Ustvarite matriko NumPy za dejanske in predvidene oznake

Python actual = np.array( ['Dog','Dog','Dog','Not Dog','Dog','Not Dog','Dog','Dog','Not Dog','Not Dog']) predicted = np.array( ['Dog','Not Dog','Dog','Not Dog','Dog','Dog','Dog','Dog','Not Dog','Not Dog'])>

3. korak: Izračunajte matriko zmede

Python cm = confusion_matrix(actual,predicted)>

4. korak: Narišite matriko zmede s pomočjo seaborn heatmap

Python cm = confusion_matrix(actual,predicted) sns.heatmap(cm, annot=True, fmt='g', xticklabels=['Dog','Not Dog'], yticklabels=['Dog','Not Dog']) plt.xlabel('Prediction',fontsize=13) plt.ylabel('Actual',fontsize=13) plt.title('Confusion Matrix',fontsize=17) plt.show()>

Izhod :

5. korak: Poročilo o klasifikacijah na podlagi meritev zmede

Python print(classification_report(actual, predicted))>

Izhod :

natančnost priklica f1-rezultata podpora Pes 0,83 0,83 0,83 6 Ni pes 0,75 0,75 0,75 4 natančnost 0,80 10 makro povprečje 0,79 0,79 0,79 10 tehtano povprečje 0,80 0,80 0,80 10

Matrika zmede za večrazredno klasifikacijo

Zdaj pa pomislimo, da obstajajo trije razredi. Spodaj je prikazana matrika zmede 3X3 za sliko s tremi razredi.

Tu je TP= resnično pozitivno, FP= lažno pozitivno, FN= lažno negativno.

KazaloDejanskoPredvidenoMestoFPFN
1MačkaMačka100
2pespes100
3Konjpes011
4MačkaMačka100
5pespes100
6MačkaMačka100
7pespes100
8KonjKonj100
9KonjKonj100
10Mačkapes011
  • Resnično pozitivni (TP): 8 (1+1+0+1+1+1+1+1+1+0)
  • Lažni pozitivni rezultati (FP): 2 (0+0+1+0+0+0+0+0+0+1)
  • Lažni negativi (FN): 2 (0+0+1+0+0+0+0+0+0+1)

Spodaj je prikazana matrika zmede 3X3 za tri razrede.

Predvideno

Mačka

pes

Konj


Dejansko

Mačka

Mesto

FP

FN

pes

FP

Mesto

FN

Konj

FN

FP

Mesto

Razredni povzetek:

  • Za Cat: [TP=3,FP=0,FN=1]
    • Indeks 1: resnično pozitivno (dejanska mačka, napovedana mačka)
    • Indeks 4: resnično pozitivno (dejanska mačka, napovedana mačka)
    • Indeks 6: resnično pozitivno (dejanska mačka, napovedana mačka)
    • Indeks 10: Lažno negativno (dejanska mačka, predviden pes)
  • Za psa: [TP=3,FP=2,FN=0]
    • Indeks 2: resnično pozitivno (dejanski pes, predviden pes)
    • Indeks 5: resnično pozitivno (dejanski pes, predviden pes)
    • Indeks 7: resnično pozitivno (dejanski pes, predviden pes)
    • Indeks 10: Lažno pozitivno (dejanska mačka, predviden pes)
    • Indeks 3: Lažno pozitiven (dejanski konj, predviden pes)
  • Za konja: [TP=2,FP=0,FN=1]
    • Indeks 8: resnično pozitivno (dejanski konj, predviden konj)
    • Indeks 9: resnično pozitivno (dejanski konj, predviden konj)
    • Indeks 3: Lažno negativen (dejanski konj, predviden pes)

Potem bo matrika zmede:

Predvideno

Mačka

pes

Konj


Dejansko

Mačka

TP (3)

FP(1)

FN (0)

pes

FN (0)

TP (3)

FN (1)

Konj

izjava java

FN (1)

FP(1)

TP (2)

Implementacija matrike zmede za binarno klasifikacijo z uporabo Pythona

1. korak: uvozite potrebne knjižnice

Python import numpy as np from sklearn.metrics import confusion_matrix, classification_report import seaborn as sns import matplotlib.pyplot as plt>

2. korak: Ustvarite matriko NumPy za dejanske in predvidene oznake

Python actual = np.array( ['Cat', 'Dog', 'Horse', 'Cat', 'Dog', 'Cat', 'Dog', 'Horse', 'Horse', 'Cat']) predicted = np.array( ['Cat', 'Dog', 'Dog', 'Cat', 'Dog', 'Cat', 'Dog', 'Horse', 'Horse', 'Dog'])>

3. korak: Izračunajte matriko zmede

Python cm = confusion_matrix(actual,predicted)>

4. korak: Narišite matriko zmede s pomočjo seaborn heatmap

Python cm = confusion_matrix(actual,predicted) sns.heatmap(cm, annot=True, fmt='g', xticklabels=['Cat', 'Dog', 'Horse'], yticklabels=['Cat', 'Dog', 'Horse']) plt.xlabel('Prediction', fontsize=13) plt.ylabel('Actual', fontsize=13) plt.title('Confusion Matrix', fontsize=17) plt.show()>

Izhod:

5. korak: Poročilo o klasifikacijah na podlagi meritev zmede

Python print(classification_report(actual, predicted))>

Izhod :

Precision Recall f1-score support Mačka 1,00 0,75 0,86 4 Pes 0,60 1,00 0,75 3 Konj 1,00 0,67 0,80 3 natančnost 0,80 10 makro povprečje 0,87 0,81 0,80 10 tehtano povprečje 0,88 0,80 0,8 1 10

Zaključek

Če povzamemo, je matrika zmede bistven instrument za ocenjevanje učinkovitosti klasifikacijskih modelov. Vpogled v točnost, natančnost, priklic in splošno učinkovitost modela pri razvrščanju primerkov zagotavlja temeljita analiza resnično pozitivnih, resnično negativnih, lažno pozitivnih in lažno negativnih napovedi, ki jih ponuja. Članek je navedel primere za ponazoritev izračuna posamezne metrike in razpravljal o njeni pomembnosti. Pokazalo je tudi, kako je mogoče matrike zmede implementirati v Python za scenarije binarne in večrazredne klasifikacije. Strokovnjaki lahko sprejemajo dobro informirane odločitve v zvezi z zmogljivostjo modela – zlasti ko imajo opravka z neuravnoteženimi porazdelitvami razredov – z razumevanjem in uporabo teh meritev.

Pogosta vprašanja o matriki zmede

V. Kako razlagati matriko zmede?

Matrika zmede povzema uspešnost klasifikacijskega modela z vnosi, ki predstavljajo resnično pozitivne, resnično negativne, lažno pozitivne in lažno negativne primere, kar zagotavlja vpogled v točnost in napake modela.

V. Kakšne so prednosti uporabe matrike zmede?

Matrika zmede zagotavlja celovito oceno uspešnosti klasifikacijskega modela, ponuja vpogled v resnične pozitivne, resnične negativne, lažno pozitivne in lažno negativne rezultate, kar pomaga pri niansirani analizi, ki presega osnovno natančnost.

Q. Kateri so primeri aplikacij matrike zmede?

Matrike zmede najdejo aplikacije na različnih področjih, vključno z medicinsko diagnozo (prepoznavanje resničnih/lažnih pozitivnih/negativnih rezultatov za bolezni), odkrivanjem goljufij, analizo razpoloženja in oceno natančnosti prepoznavanja slike.

V. Kaj je diagram matrike zmede?

Diagram matrike zmede vizualno predstavlja delovanje klasifikacijskega modela. Prikazuje resnično pozitivne, resnično negativne, lažno pozitivne in lažno negativne vrednosti v formatu strukturirane matrike.

V. Katere so tri vrednosti matrike zmede?

Tri vrednosti matrike zmede so resnično pozitivne (pravilno napovedani pozitivni primeri), resnično negativne (pravilno predvideni negativni primeri) in lažno pozitivne (nepravilno napovedani pozitivni primeri).