W nauczanie maszynowe klasyfikacja to proces kategoryzacji danego zbioru danych na różne kategorie. W uczeniu maszynowym do pomiaru wydajności modelu klasyfikacji używamy matryca zamieszania . Dzięki temu samouczkowi zrozumiesz znaczenie macierzy zamieszania.
Co to jest macierz zamieszania?
A matryca zamieszania to macierz podsumowująca wydajność modelu uczenia maszynowego na zestawie danych testowych. Jest to sposób na wyświetlenie liczby dokładnych i niedokładnych instancji w oparciu o przewidywania modelu. Jest często używany do pomiaru wydajności modeli klasyfikacji, których celem jest przewidzenie etykiety kategorycznej dla każdego wystąpienia wejściowego.
Macierz wyświetla liczbę wystąpień wytworzonych przez model na danych testowych.
- Prawdziwe pozytywy (TP): wystąpić, gdy model dokładnie przewiduje dodatni punkt danych.
- Prawdziwe negatywy (TN) : występuje, gdy model dokładnie przewiduje ujemny punkt danych.
- Fałszywie pozytywne (FP) : występuje, gdy model błędnie przewiduje dodatni punkt danych.
- FAŁSZ negatywy (FN) : występuje, gdy model błędnie przewiduje ujemny punkt danych.
Dlaczego potrzebujemy matrycy zamieszania?
Przy ocenie wydajności modelu klasyfikacyjnego niezbędna jest macierz zamieszania. Oferuje dogłębną analizę prawdziwie pozytywnych, prawdziwie negatywnych, fałszywie pozytywnych i fałszywie negatywnych przewidywań, ułatwiając głębsze zrozumienie modelu zapamiętywanie, dokładność, precyzja, i ogólną skuteczność w rozróżnieniu klasowym. Gdy w zbiorze danych występuje nierówny rozkład klas, macierz ta jest szczególnie pomocna w ocenie wydajności modelu wykraczającej poza podstawowe metryki dokładności.
Przyjrzyjmy się macierzy zamieszania na przykładach:
Matryca zamieszania Do klasyfikacji binarnej
Poniżej pokazano macierz zamieszania 2X2 dla rozpoznawania obrazu zawierającego obraz psa lub obraz nie psa.
| Rzeczywisty | ||
|---|---|---|---|
Pies | Nie pies minimum maksimum | ||
Przewidywane | Pies | Prawdziwie pozytywny | Fałszywie pozytywny |
Nie pies | Fałszywie negatywny | Prawdziwy negatyw |
- Prawdziwie pozytywny (TP): Jest to łączna liczba, w której zarówno przewidywane, jak i rzeczywiste wartości to Pies.
- Prawdziwie ujemny (TN): Jest to łączna liczba, w której zarówno przewidywane, jak i rzeczywiste wartości to Nie pies.
- Fałszywie pozytywny (FP): Jest to łączna liczba, w przypadku której prognoza to Pies, podczas gdy w rzeczywistości nie jest to Pies.
- Fałszywie ujemny (FN): Jest to łączna liczba, w przypadku której prognoza to Nie Pies, podczas gdy w rzeczywistości jest to Pies.
Przykład problemów klasyfikacji binarnej
Indeks | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
Rzeczywisty | Pies | Pies | Pies | Nie pies | Pies | Nie pies | Pies | Pies | Nie pies | Nie pies |
Przewidywane | Pies | Nie pies | Pies | Nie pies | Pies | Pies | Pies | Pies | Nie pies | Nie pies |
Wynik | Miasto | FN | Miasto | TN | Miasto | FP | Miasto | Miasto | TN usługi sieciowe Java | TN |
- Rzeczywista liczba psów = 6
- Rzeczywista liczba nie psów = 4
- Prawdziwie dodatnie liczby = 5
- Liczba fałszywie dodatnich = 1
- Prawdziwie ujemne liczby = 3
- Fałszywie ujemne liczby = 1
git dodaj --all | Przewidywane | ||
|---|---|---|---|
Pies | Nie pies | ||
Rzeczywisty | Pies | Prawdziwie pozytywny | Fałszywie negatywny |
Nie pies | Fałszywie pozytywny | Prawdziwy negatyw |
Metryki oparte na danych z matrycy zamieszania
1. Dokładność
Dokładność służy do pomiaru wydajności modelu. Jest to stosunek łącznej liczby poprawnych wystąpień do całkowitej liczby wystąpień.
Dla powyższego przypadku:
Dokładność = (5+3)/(5+3+1+1) = 8/10 = 0,8
2. Precyzja
Precyzja jest miarą dokładności pozytywnych przewidywań modelu. Definiuje się go jako stosunek prawdziwie pozytywnych przewidywań do całkowitej liczby pozytywnych przewidywań dokonanych przez model.
Dla powyższego przypadku:
Precyzja = 5/(5+1) =5/6 = 0,8333
3. Przypomnij sobie
Przypomnienie sobie czegoś mierzy skuteczność modelu klasyfikacji w identyfikowaniu wszystkich odpowiednich instancji ze zbioru danych. Jest to stosunek liczby instancji prawdziwie pozytywnych (TP) do sumy instancji prawdziwie pozytywnych i fałszywie negatywnych (FN).
Dla powyższego przypadku:
Przypomnienie = 5/(5+1) =5/6 = 0,8333
Notatka: Precyzji używamy, gdy chcemy zminimalizować liczbę fałszywych alarmów, co ma kluczowe znaczenie w scenariuszach takich jak wykrywanie wiadomości e-mail zawierających spam, gdzie błędne sklasyfikowanie wiadomości niebędącej spamem jako spam jest kosztowne. Wycofania używamy, gdy minimalizacja wyników fałszywie negatywnych jest niezbędna, np. w przypadku diagnoz medycznych, gdzie identyfikacja wszystkich faktycznie pozytywnych przypadków ma kluczowe znaczenie, nawet jeśli skutkuje to pewnymi fałszywie pozytywnymi wynikami.
4. Wynik F1
Wynik F1 służy do oceny ogólnej wydajności modelu klasyfikacyjnego. Jest to harmoniczna średnia precyzji i zapamiętywania,
Dla powyższego przypadku:
Wynik F1: = (2* 0,8333* 0,8333)/( 0,8333+ 0,8333) = 0,8333
Równoważymy precyzję i zapamiętywanie za pomocą wyniku F1, gdy konieczny jest kompromis między minimalizacją wyników fałszywie dodatnich i fałszywie ujemnych, na przykład w systemach wyszukiwania informacji.
5. Specyfika:
Specyficzność to kolejna ważna metryka w ocenie modeli klasyfikacyjnych, szczególnie w klasyfikacji binarnej. Mierzy zdolność modelu do prawidłowej identyfikacji negatywnych instancji. Specyficzność jest również znana jako prawdziwie ujemna stopa.
Specyficzność=3/(1+3)=3/4=0,75
6. Błąd typu 1 i typu 2
Błąd typu 1
Błąd typu 1 występuje, gdy model przewiduje wystąpienie pozytywne, ale w rzeczywistości jest ono negatywne. Wyniki fałszywie dodatnie wpływają na precyzję, ponieważ jest to stosunek wyników prawdziwie pozytywnych do sumy wyników prawdziwie pozytywnych i fałszywie pozytywnych.
Na przykład w scenariuszu na sali sądowej błąd typu 1, często określany jako wynik fałszywie pozytywny, ma miejsce, gdy sąd błędnie skazuje osobę za winną, podczas gdy w rzeczywistości jest ona niewinna zarzucanego jej przestępstwa. Ten poważny błąd może mieć poważne konsekwencje, prowadzące do bezprawnego ukarania niewinnej osoby, która nie popełniła danego przestępstwa. Zapobieganie błędom typu 1 w postępowaniu sądowym ma ogromne znaczenie dla zapewnienia prawidłowego wymierzenia sprawiedliwości i ochrony niewinnych osób przed nieuzasadnioną krzywdą i karą.
Błąd typu 2
Błąd typu 2 występuje, gdy model nie przewiduje pozytywnego wystąpienia. Fałszywe negatywy mają bezpośredni wpływ na zapamiętanie, ponieważ jest to stosunek prawdziwie pozytywnych wyników do sumy prawdziwie pozytywnych i fałszywie negatywnych.
W kontekście badań medycznych błąd typu 2, często nazywany wynikiem fałszywie ujemnym, występuje, gdy test diagnostyczny nie wykrywa obecności choroby u pacjenta, który rzeczywiście na nią cierpi. Konsekwencje takiego błędu są doniosłe, gdyż może skutkować opóźnieniem w rozpoznaniu i późniejszym leczeniu.
Precyzja kładzie nacisk na minimalizowanie fałszywych alarmów, podczas gdy przypominanie skupia się na minimalizowaniu fałszywych negatywów.
Implementacja macierzy zamieszania dla klasyfikacji binarnej przy użyciu języka Python
Krok 1: Zaimportuj niezbędne biblioteki
Pyton import numpy as np from sklearn.metrics import confusion_matrix,classification_report import seaborn as sns import matplotlib.pyplot as plt> Krok 2: Utwórz tablicę NumPy dla etykiet rzeczywistych i przewidywanych
Pyton 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: Oblicz macierz zamieszania
Pyton cm = confusion_matrix(actual,predicted)> Krok 4: Wykreśl macierz zamieszania za pomocą mapy termicznej urodzonej w morzu
Pyton 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()> Wyjście :
Krok 5: Raport klasyfikacyjny oparty na wskaźnikach zamieszania
Pyton print(classification_report(actual, predicted))> Wyjście :
precyzja przywoływania wsparcie dla wyniku f1 Pies 0,83 0,83 0,83 6 Nie Pies 0,75 0,75 0,75 4 dokładność 0,80 10 Średnia makro 0,79 0,79 0,79 10 Średnia ważona 0,80 0,80 0,80 10
Macierz zamieszania dla klasyfikacji wieloklasowej
Rozważmy teraz, że istnieją trzy klasy. Poniżej pokazano macierz zamieszania 3X3 dla obrazu mającego trzy klasy.
Tutaj TP = prawdziwie dodatni, FP = fałszywie dodatni, FN = fałszywie ujemny.
| Indeks | Rzeczywisty | Przewidywane | Miasto | FP | FN |
|---|---|---|---|---|---|
| 1 | Kot | Kot | 1 | 0 | 0 |
| 2 | Pies | Pies | 1 | 0 | 0 |
| 3 | Koń | Pies | 0 | 1 | 1 |
| 4 | Kot | Kot | 1 | 0 | 0 |
| 5 | Pies | Pies | 1 | 0 | 0 |
| 6 | Kot | Kot | 1 | 0 | 0 |
| 7 | Pies | Pies | 1 | 0 | 0 |
| 8 | Koń | Koń | 1 | 0 | 0 |
| 9 | Koń | Koń | 1 | 0 | 0 |
| 10 | Kot | Pies | 0 | 1 | 1 |
- Prawdziwie pozytywne (TP): 8 (1+1+0+1+1+1+1+1+1+0)
- Fałszywie pozytywne (FP): 2 (0+0+1+0+0+0+0+0+0+1)
- Fałszywie ujemne (FN): 2 (0+0+1+0+0+0+0+0+0+1)
Poniżej przedstawiono macierz zamieszania 3X3 dla trzech klas.
| Przewidywane | |||
|---|---|---|---|---|
Kot | Pies | Koń | ||
| Kot rzuć ciąg znaków na int java | Miasto | FP | FN |
Pies | FP | Miasto | FN | |
Koń | FN | FP | Miasto |
Podsumowanie klasowe:
- Dla kota: [TP=3,FP=0,FN=1]
- Indeks 1: Prawdziwie pozytywny (kot rzeczywisty, kot przewidywany)
- Indeks 4: Prawdziwie pozytywny (kot rzeczywisty, kot przewidywany)
- Indeks 6: Prawdziwie pozytywny (kot rzeczywisty, kot przewidywany)
- Indeks 10: Fałszywie negatywny (rzeczywisty kot, przewidywany pies)
- Dla psa: [TP=3,FP=2,FN=0]
- Indeks 2: Prawdziwie pozytywny (rzeczywisty pies, przewidywany pies)
- Indeks 5: Prawdziwie pozytywny (rzeczywisty pies, przewidywany pies)
- Indeks 7: Prawdziwie pozytywny (rzeczywisty pies, przewidywany pies)
- Indeks 10: Fałszywie pozytywny (rzeczywisty kot, przewidywany pies)
- Indeks 3: Fałszywie pozytywny (rzeczywisty koń, przewidywany pies)
- Dla konia: [TP=2,FP=0,FN=1]
- Indeks 8: Prawdziwie pozytywny (koń rzeczywisty, koń przewidywany)
- Indeks 9: Prawdziwie pozytywny (koń rzeczywisty, koń przewidywany)
- Indeks 3: Fałszywie negatywny (rzeczywisty koń, przewidywany pies)
Zatem macierz zamieszania będzie wyglądać następująco:
| Przewidywane | |||
|---|---|---|---|---|
Kot | Pies | Koń | ||
| Kot mrówka kontra maven | TP(3) | PR(1) | FN(0) |
Pies | FN(0) | TP(3) | FN(1) | |
Koń | FN(1) | PR(1) | TP(2) |
Implementacja macierzy zamieszania dla klasyfikacji binarnej przy użyciu języka Python
Krok 1: Zaimportuj niezbędne biblioteki
Pyton import numpy as np from sklearn.metrics import confusion_matrix, classification_report import seaborn as sns import matplotlib.pyplot as plt> Krok 2: Utwórz tablicę NumPy dla etykiet rzeczywistych i przewidywanych
Pyton 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: Oblicz macierz zamieszania
Pyton cm = confusion_matrix(actual,predicted)> Krok 4: Wykreśl macierz zamieszania za pomocą mapy termicznej urodzonej w morzu
Pyton 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()> Wyjście:
Krok 5: Raport klasyfikacyjny oparty na wskaźnikach zamieszania
Pyton print(classification_report(actual, predicted))> Wyjście :
precyzja przywoływania obsługa wyniku f1 Kot 1,00 0,75 0,86 4 Pies 0,60 1,00 0,75 3 Koń 1,00 0,67 0,80 3 Dokładność 0,80 10 Średnia makro 0,87 0,81 0,80 10 średnia ważona 0,88 0,80 0,81 10
Wniosek
Podsumowując, macierz zamieszania jest niezbędnym narzędziem oceny efektywności modeli klasyfikacyjnych. Wgląd w dokładność, precyzję, przypominanie i ogólną skuteczność modelu w klasyfikowaniu instancji zapewnia dokładna analiza prawdziwie pozytywnych, prawdziwie negatywnych, fałszywie pozytywnych i fałszywie negatywnych przewidywań, jakie oferuje model. W artykule podano przykłady ilustrujące obliczenia poszczególnych wskaźników i omówiono ich znaczenie. Pokazano także, w jaki sposób można zaimplementować macierze zamieszania w języku Python dla scenariuszy klasyfikacji binarnej i wieloklasowej. Praktycy mogą podejmować świadome decyzje dotyczące wydajności modelu – szczególnie w przypadku niezrównoważonych rozkładów klas – poprzez zrozumienie i zastosowanie tych metryk.
Często zadawane pytania dotyczące Confusion Matrix
P. Jak interpretować macierz zamieszania?
Macierz pomyłek podsumowuje wydajność modelu klasyfikacyjnego, z wpisami reprezentującymi prawdziwie pozytywne, prawdziwie negatywne, fałszywie pozytywne i fałszywie negatywne przypadki, zapewniając wgląd w dokładność i błędy modelu.
P. Jakie są zalety korzystania z matrycy Confusion?
Macierz pomyłek zapewnia wszechstronną ocenę wydajności modelu klasyfikacyjnego, oferując wgląd w prawdziwie pozytywne, prawdziwie negatywne, fałszywie pozytywne i fałszywie negatywne wyniki, pomagając w szczegółowej analizie wykraczającej poza podstawową dokładność.
Q. Jakie są przykłady zastosowań macierzy zamieszania?
Matryce zamieszania znajdują zastosowanie w różnych dziedzinach, w tym w diagnostyce medycznej (identyfikacja prawdziwych/fałszywie pozytywnych/negatywnych wyników chorób), wykrywaniu oszustw, analizie nastrojów i ocenie dokładności rozpoznawania obrazów.
P. Jaki jest diagram macierzy zamieszania?
Diagram macierzy zamieszania wizualnie przedstawia wydajność modelu klasyfikacji. Wyświetla wartości prawdziwie dodatnie, prawdziwie ujemne, fałszywie dodatnie i fałszywie ujemne w ustrukturyzowanym formacie matrycowym.
P. Jakie są trzy wartości macierzy zamieszania?
Trzy wartości macierzy zamieszania to prawdziwie dodatnie (poprawnie przewidywane pozytywne przypadki), prawdziwie negatywne (poprawnie przewidywane negatywne przypadki) i fałszywie pozytywne (nieprawidłowo przewidywane pozytywne przypadki).