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í | Falešně pozitivní |
Ne Pes | Falešně negativní | Skutečně negativní |
- 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í | Falešně negativní |
Ne Pes | Falešně pozitivní | Skutečně negativní |
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í.
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.
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í.
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í,
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.
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ů.
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ě.
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.
| Index | Aktuální | Předpovězeno | Město | FP | FN |
|---|---|---|---|---|---|
| 1 | Kočka | Kočka | 1 | 0 | 0 |
| 2 | Pes | Pes | 1 | 0 | 0 |
| 3 | Kůň | Pes | 0 | 1 | 1 |
| 4 | Kočka | Kočka | 1 | 0 | 0 |
| 5 | Pes | Pes | 1 | 0 | 0 |
| 6 | Kočka | Kočka | 1 | 0 | 0 |
| 7 | Pes | Pes | 1 | 0 | 0 |
| 8 | Kůň | Kůň | 1 | 0 | 0 |
| 9 | Kůň | Kůň | 1 | 0 | 0 |
| 10 | Kočka | Pes | 0 | 1 | 1 |
- 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ůň | ||
| 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ůň | ||
| 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).