logo

Matice zmatení ve strojovém učení

v strojové učení , klasifikace je proces kategorizace daného souboru dat do různých kategorií. Ve strojovém učení, k měření výkonu klasifikačního modelu, používáme matoucí matice . Prostřednictvím tohoto tutoriálu pochopíte význam matice zmatení.

Co je Confusion Matrix?

A matoucí matice je matice, která shrnuje výkon modelu strojového učení na sadě testovacích dat. Je to prostředek k zobrazení počtu přesných a nepřesných instancí na základě předpovědí modelu. Často se používá k měření výkonu klasifikačních modelů, jejichž cílem je předpovědět kategorické označení pro každou vstupní instanci.

Matice zobrazuje počet instancí vytvořených modelem na testovacích datech.



  • Skutečná pozitiva (TP): nastanou, když model přesně předpovídá kladný datový bod.
  • Skutečná negativa (TN) : nastane, když model přesně předpovídá negativní datový bod.
  • Falešné poplachy (FP) : nastane, když model nesprávně předpovídá kladný datový bod.
  • Nepravdivé zápory (FN) : nastane, když model špatně předpovídá negativní datový bod.

Proč potřebujeme Confusion Matrix?

Při posuzování výkonnosti klasifikačního modelu je nezbytná matoucí matice. Nabízí důkladnou analýzu skutečně pozitivních, skutečně negativních, falešně pozitivních a falešně negativních předpovědí, což usnadňuje hlubší pochopení modelu zapamatování, přesnost, přesnost, a celkovou účinnost v třídním rozlišení. Pokud je v datové sadě nerovnoměrné rozdělení tříd, je tato matice zvláště užitečná při hodnocení výkonu modelu nad rámec základních metrik přesnosti.

Pojďme pochopit matici zmatků pomocí příkladů:

Matice zmatení Pro binární klasifikaci

Níže je uvedena matice zmatení 2X2 pro rozpoznávání obrázků s obrázkem psa nebo obrázku Not Dog.

Aktuální

Pes

Ne Pes

Předpovězeno

Pes

Skutečně pozitivní
(TP)

Falešně pozitivní
(FP)

Ne Pes

Falešně negativní
(FN)

Skutečně negativní
(TN)

  • Skutečně pozitivní (TP): Jedná se o celkové počty s předpokládanými i skutečnými hodnotami pes.
  • Skutečně negativní (TN): Jedná se o celkové počty, jejichž předpokládané i skutečné hodnoty nejsou pes.
  • Falešně pozitivní (FP): Jedná se o celkové počty, u kterých se předpokládá, že je pes, zatímco ve skutečnosti není pes.
  • Falešně negativní (FN): Je to celkový počet s předpovědí není pes, zatímco ve skutečnosti je to pes.

Příklad pro binární klasifikační problémy

Index

1

2

3

4

5

dědičný program v pythonu

6

7

8

9

10

Aktuální

Pes

Pes

Pes

Ne Pes

Pes

Ne Pes

Pes

Pes

Ne Pes

Ne Pes

Předpovězeno

Pes

Ne Pes

Pes

Ne Pes

Pes

Pes

Pes

Pes

Ne Pes

Ne Pes

Výsledek

Město

FN

Město

TN

Město

FP

Město

Město

TN

TN

  • Skutečný počet psů = 6
  • Skutečný počet není psů = 4
  • Skutečně pozitivní počty = 5
  • Falešně pozitivní počty = 1
  • Skutečně záporné počty = 3
  • Falešně negativní počty = 1

Předpovězeno

Pes

Ne Pes


Aktuální

Pes

Skutečně pozitivní
(TP = 5)

Falešně negativní
(FN = 1)

Ne Pes

Falešně pozitivní
(FP=1)

Skutečně negativní
(TN=3)

Metriky založené na datech Confusion Matrix

1. Přesnost

Přesnost se používá k měření výkonu modelu. Je to poměr celkového počtu správných instancí k celkovému počtu instancí.

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

Pro výše uvedený případ:

Přesnost = (5+3)/(5+3+1+1) = 8/10 = 0,8

2. Přesnost

Přesnost je měřítkem toho, jak přesné jsou pozitivní předpovědi modelu. Je definován jako poměr skutečných pozitivních předpovědí k celkovému počtu pozitivních předpovědí provedených modelem.

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

Pro výše uvedený případ:

Přesnost = 5/(5+1) =5/6 = 0,8333

3. Připomeňte si

Odvolání měří efektivitu klasifikačního modelu při identifikaci všech relevantních případů ze souboru dat. Je to poměr počtu skutečně pozitivních (TP) instancí k součtu skutečně pozitivních a falešně negativních (FN) instancí.

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

Pro výše uvedený případ:

Vyvolání = 5/(5+1) =5/6 = 0,8333

Poznámka: Preciznost používáme, když chceme minimalizovat falešné poplachy, což je zásadní ve scénářích, jako je detekce nevyžádané pošty, kde je nesprávná klasifikace zprávy, která není spamem, jako spam nákladná. A my používáme odvolání, když je minimalizace falešně negativních výsledků zásadní, jako u lékařských diagnóz, kde je kritická identifikace všech skutečně pozitivních případů, i když vede k některým falešně pozitivním výsledkům.

4. F1-Skóre

Skóre F1 se používá k hodnocení celkové výkonnosti klasifikačního modelu. Je to harmonický průměr přesnosti a zapamatování,

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

Pro výše uvedený případ:

F1-Skóre: = (2* 0,8333* 0,8333)/( 0,8333+ 0,8333) = 0,8333

Přesnost a vybavování vyvažujeme skóre F1, když je nutný kompromis mezi minimalizací falešně pozitivních a falešně negativních výsledků, jako například v systémech vyhledávání informací.

5. Specifičnost:

Specificita je další důležitou metrikou při hodnocení klasifikačních modelů, zejména v binární klasifikaci. Měří schopnost modelu správně identifikovat negativní případy. Specifičnost je také známá jako True Negative Rate.

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

Specificita=3/(1+3)​=3/4=0,75

6. Chyba typu 1 a typu 2

Chyba typu 1

Chyba typu 1 nastane, když model předpovídá pozitivní instanci, ale ve skutečnosti je negativní. Přesnost je ovlivněna falešně pozitivními výsledky, protože jde o poměr skutečných pozitivních výsledků k součtu skutečných pozitivních a falešných pozitivních výsledků.

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

Například ve scénáři soudní síně k chybě typu 1, často označované jako falešně pozitivní, dojde, když soud mylně odsoudí jednotlivce jako vinného, ​​když je ve skutečnosti z údajného zločinu nevinný. Tato závažná chyba může mít hluboké důsledky vedoucí k neoprávněnému potrestání nevinné osoby, která se dotyčného trestného činu nedopustila. Předcházení chybám typu 1 v soudních řízeních je prvořadé pro zajištění toho, aby spravedlnosti bylo přesně udělováno a nevinní jednotlivci byli chráněni před neoprávněnou újmou a trestem.

Chyba typu 2

Chyba typu 2 nastane, když model nedokáže předpovědět pozitivní instanci. Vyvolání je přímo ovlivněno falešně negativními výsledky, protože jde o poměr skutečných pozitivních výsledků k součtu skutečných pozitivních a falešně negativních výsledků.

V souvislosti s lékařským testováním se chyba typu 2, často známá jako falešně negativní, vyskytuje, když diagnostický test nedokáže detekovat přítomnost onemocnění u pacienta, který ji skutečně má. Důsledky takové chyby jsou značné, protože může vést k opožděné diagnóze a následné léčbě.

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

Precision klade důraz na minimalizaci falešných pozitiv, zatímco vyvolání se zaměřuje na minimalizaci falešných negativů.

Implementace Confusion Matrix pro binární klasifikaci pomocí Pythonu

Krok 1: Importujte potřebné knihovny

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

Krok 2: Vytvořte pole NumPy pro skutečné a předpokládané štítky

Krajta 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'])>

Krok 3: Vypočítejte matici zmatků

Krajta cm = confusion_matrix(actual,predicted)>

Krok 4: Zakreslete matici zmatení pomocí teplotní mapy moře

Krajta 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()>

Výstup :

aws sns

Krok 5: Zpráva o klasifikaci založená na metrikách zmatení

Krajta print(classification_report(actual, predicted))>

Výstup :

přesnost vyvolání f1-skóre podpora Pes 0,83 0,83 0,83 6 Ne pes 0,75 0,75 0,75 4 přesnost 0,80 10 makro průměr 0,79 0,79 0,79 10 vážený průměr 0,80 0,81 0,80

Matice zmatení pro vícetřídní klasifikaci

Nyní uvažujme, že existují tři třídy. Níže je uvedena matice zmatení 3X3 pro obrázek se třemi třídami.

Zde TP= True Positive, FP= False Positive, FN= False Negative.

IndexAktuálníPředpovězenoMěstoFPFN
1KočkaKočka100
2PesPes100
3KůňPes011
4KočkaKočka100
5PesPes100
6KočkaKočka100
7PesPes100
8KůňKůň100
9KůňKůň100
10KočkaPes011
  • Skutečně pozitivní (TP): 8 (1+1+0+1+1+1+1+1+1+0)
  • Falešně pozitivní (FP): 2 (0+0+1+0+0+0+0+0+0+1)
  • Falešná negativa (FN): 2 (0+0+1+0+0+0+0+0+0+1)

Níže je uvedena matice 3X3 zmatení pro tři třídy.

Předpovězeno

Kočka

Pes

Kůň


Aktuální

Kočka

Město

FP

FN

Pes

FP

Město

FN

Kůň

FN

FP

Město

Shrnutí třídy:

  • Pro kočku: [TP=3,FP=0,FN=1]
    • Index 1: Skutečně pozitivní (skutečná kočka, předpokládaná kočka)
    • Index 4: Skutečně pozitivní (skutečná kočka, předpokládaná kočka)
    • Index 6: Skutečně pozitivní (skutečná kočka, předpokládaná kočka)
    • Index 10: Falešně negativní (skutečná kočka, předpovězený pes)
  • Pro psa: [TP=3,FP=2,FN=0]
    • Index 2: Skutečně pozitivní (Pes skutečný, Pes předpokládaný)
    • Index 5: Skutečně pozitivní (Pes skutečný, Pes předpokládaný)
    • Index 7: Skutečně pozitivní (Pes skutečný, Pes předpokládaný)
    • Index 10: Falešně pozitivní (skutečná kočka, předpovězený pes)
    • Index 3: Falešně pozitivní (skutečný kůň, předpovězený pes)
  • Pro koně: [TP=2,FP=0,FN=1]
    • Index 8: Skutečně pozitivní (kůň skutečný, kůň předpokládaný)
    • Index 9: Skutečně pozitivní (kůň skutečný, kůň předpokládaný)
    • Index 3: Falešně negativní (skutečný kůň, předpovězený pes)

Potom bude matoucí matice:

Předpovězeno

Kočka

Pes

Kůň


Aktuální

Kočka

TP(3)

FP(1)

FN(0)

Pes

FN(0)

TP(3)

skořice vs mate

FN(1)

Kůň

FN(1)

FP(1)

TP(2)

Implementace Confusion Matrix pro binární klasifikaci pomocí Pythonu

Krok 1: Importujte potřebné knihovny

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

Krok 2: Vytvořte pole NumPy pro skutečné a předpokládané štítky

Krajta 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'])>

Krok 3: Vypočítejte matici zmatků

Krajta cm = confusion_matrix(actual,predicted)>

Krok 4: Zakreslete matici zmatení pomocí teplotní mapy moře

Krajta 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()>

Výstup:

Krok 5: Zpráva o klasifikaci založená na metrikách zmatení

Krajta print(classification_report(actual, predicted))>

Výstup :

přesnost vyvolání f1-skóre podpora kočka 1,00 0,75 0,86 4 pes 0,60 1,00 0,75 3 kůň 1,00 0,67 0,80 3 přesnost 0,80 10 makro 0,87 0,81 0,80 081 prům.

Závěr

Stručně řečeno, matice zmatků je základním nástrojem pro hodnocení účinnosti klasifikačních modelů. Informace o přesnosti, přesnosti, zapamatovatelnosti a obecné účinnosti modelu při klasifikaci případů poskytuje důkladná analýza skutečně pozitivních, skutečně negativních, falešně pozitivních a falešně negativních předpovědí, které nabízí. Článek poskytl příklady pro ilustraci výpočtu každé metriky a diskutoval o její důležitosti. Také ukázal, jak lze v Pythonu implementovat matoucí matice pro binární a vícetřídní klasifikační scénáře. Praktici mohou činit informovaná rozhodnutí týkající se výkonnosti modelu – zvláště když se zabývají nevyváženým rozdělením tříd – pochopením a aplikací těchto metrik.

Časté otázky o Confusion Matrix

Otázka: Jak interpretovat matici zmatků?

Matice zmatků shrnuje výkon klasifikačního modelu se záznamy představujícími skutečně pozitivní, skutečně negativní, falešně pozitivní a falešně negativní případy, což poskytuje přehled o přesnosti modelu a chybách.

Q. Jaké jsou výhody použití Confusion matrix?

Matice zmatků poskytuje komplexní hodnocení výkonu klasifikačního modelu, nabízí pohledy na skutečně pozitivní, skutečně negativní, falešně pozitivní a falešně negativní, což napomáhá nuanční analýze nad rámec základní přesnosti.

Q. Jaké jsou příklady aplikací matoucí matice?

Matice zmatení nacházejí uplatnění v různých oblastech, včetně lékařské diagnostiky (identifikace pravdivě/falešně pozitivních/negativních chorob), odhalování podvodů, analýzy sentimentu a hodnocení přesnosti rozpoznávání obrazu.

Otázka: Co je to záměnný maticový diagram?

Diagram matoucí matice vizuálně představuje výkon klasifikačního modelu. Zobrazuje skutečně pozitivní, pravdivě negativní, falešně pozitivní a falešně negativní hodnoty ve formátu strukturované matice.

Q. Jaké jsou tři hodnoty matice zmatení?

Tři hodnoty matoucí matice jsou pravdivě pozitivní (správně předpovězené pozitivní případy), pravdivě negativní (správně předpovězené negativní případy) a falešně pozitivní (nesprávně předpovězené pozitivní případy).