Demistyfikująca macierz pomyłek w uczeniu maszynowym [Zdumiewające]
Opublikowany: 2020-12-07Uczenie maszynowe to ogólny termin, pod którym gromadzi się przetwarzanie danych, wyprowadzanie znaczących spostrzeżeń z danych i modelowania danych. Po zakończeniu modelowania danych należy zmierzyć model w celu oceny wydajności i innych parametrów branżowych, a jedną z najczęstszych metryk jest macierz zamieszania.
Spis treści
Co to jest macierz pomyłek i dlaczego jest używana?
Jest to metryka wydajności używana w problemach klasyfikacji, gdzie klasy wyjściowe mogą mieć dwie lub więcej, a ta macierz reprezentuje wszystkie kombinacje wartości przewidywanych przez model z rzeczywistymi wartościami skojarzonymi z tymi danymi wejściowymi. Nazywa się to „matrycą pomyłek”, ponieważ posługiwanie się definicjami wydaje się łatwe, ale gdy posuwamy się naprzód w celu uzyskania bardziej wartościowych parametrów, pojawia się niejasność co do tego, który parametr najlepiej pasuje do danego miejsca.
Stosuje się go tam, gdzie problem klasyfikacji jest bardzo niezrównoważony, a jedna klasa dominuje nad innymi klasami. W takich scenariuszach możesz być zaskoczony, widząc, że dokładność modelu sięga 99%, ale w rzeczywistości model jest silnie nastawiony na klasę dominującą. Jest bardzo małe prawdopodobieństwo, że otrzymasz prognozy dla klas mniejszości. Dlatego, aby przetestować taki niezrównoważony zestaw danych, bierzemy pod uwagę macierz pomyłek.
Struktura matrycy pomyłek
Rozmiar macierzy jest wprost proporcjonalny do liczby klas wyjściowych. Jest to macierz kwadratowa, w której zakładamy nagłówki kolumn jako wartości rzeczywiste, a nagłówki wierszy jako prognozy modelu. Wartości, które są prawdziwe i przewidywane jako prawdziwe przez model, to Prawdziwie Pozytywne (TP) , prawidłowe przewidywania wartości ujemnych to Prawdziwie Negatywne (TN) , wartości, które były negatywne, ale przewidywane jako prawdziwe, to Fałszywie Pozytywne (FP) , a wartości dodatnie przewidywane jako negatywne to Fałszywe negatywy (FN) . Spójrz na ten obraz:
Przeczytaj: Rodzaje algorytmów klasyfikacji w uczeniu maszynowym
Czego możemy się z tego nauczyć?
Powstaje ważne pytanie, co możemy zrobić z tą matrycą. Istnieje kilka ważnych terminologii opartych na tym:

- Precyzja: Jest to część wartości, które są identyfikowane przez model jako prawidłowe i są istotne dla rozwiązania problemu. Możemy to również przytoczyć jako wartości, które są częścią wszystkich pozytywnych wyników podanych przez model i są pozytywne. Dlatego możemy podać jego wzór jako TP/ (TP + FP).
- Przypomnijmy: Jest to część wartości, które zostały poprawnie zidentyfikowane przez model jako dodatnie. Jest również określany jako prawdziwie pozytywna stopa lub czułość. Jego formuła okazuje się być TP/ (TP+FN).
- Wynik F-1: Jest to średnia harmoniczna precyzji i przypomnienia. Oznacza to, że gdybyśmy mieli porównać dwa modele, wówczas ta metryka pominie wartości ekstremalne i jednocześnie uwzględni zarówno wyniki fałszywie dodatnie, jak i fałszywie ujemne. Może być cytowany jako 2*Precyzja*Recall/ (Precision+Recall).
- Dokładność: Jest to część wartości, które zostały poprawnie zidentyfikowane, niezależnie od tego, czy są dodatnie, czy ujemne. Oznacza to, że wszystkie pozytywy i negatywy są w tym zawarte. Wzór na to to (TP+TN)/ (TP+TN+FP+FN).
Spośród wszystkich terminów najczęściej używane są precyzja i przypomnienie. Ich kompromis jest użyteczną miarą sukcesu prognozy. Pożądany model ma charakteryzować się wysoką precyzją i wysoką przywoływaniem, ale dotyczy to tylko idealnie rozdzielnych danych. W praktycznych przypadkach dane są wysoce niezorganizowane i niezrównoważone.

Jak stworzyć kod dla Confusion Matrix w Pythonie?
Biblioteka sklearn zapewnia różnorodne funkcje do wykonywania wszystkich zadań uczenia maszynowego z najwyższą dokładnością i prawie wszystko zostało tutaj zaimplementowane. Rozważmy słynny zestaw danych Iris ze wszystkimi już wykonanymi instrukcjami importu, kod macierzy pomyłek będzie wyglądał następująco:
tęczówka = zestawy danych.load_iris()
X = tęczówka.dane
y = tęczówka.cel
class_names = tęczówka.target_names
X_train, X_test, y_train, y_test = train_test_split (X, y, random_state = 0 )
klasyfikator = svm.SVC (jądro = 'liniowy' , C = 0,01 ) . fit(X_train, y_train)
plot_confusion_matrix(klasyfikator, X_test, y_test, display_labels = class_names,cmap = plt . cm . Blues)
Uwaga: Macierz zwrócona przez to ma odwrócone strony, tutaj po lewej mamy wartości rzeczywiste, a na górze wartości przewidywane. Jeśli chcesz uniknąć nieporozumień, wykonaj tę funkcję, aby uzyskać szczegółowe podsumowanie (raport klasyfikacyjny) zamiast obliczać je ręcznie:

print(raport_klasyfikacji(y_true=y_test, y_pred=y_pred, target_names=class_names))
Przeczytaj także: Algorytm głębokiego uczenia
Którego użyć i gdzie?
Jest to najczęstsze pytanie, które pojawia się podczas modelowania Danych, a rozwiązanie leży w domenie stwierdzenia problemu. Rozważ te dwa przypadki:
- Załóżmy, że przewidujesz, czy dana osoba dostanie zatrzymania akcji serca. W tym scenariuszu nie możesz sobie pozwolić na błędną klasyfikację, a wszystkie prognozy powinny być dokładne. Mając to na uwadze, koszt fałszywych negatywów jest wysoki, więc osoba była podatna na atak, ale przewidywano, że jest bezpieczna. Takich przypadków należy unikać. W takich sytuacjach potrzebujemy modelu o dużej odwołalności.
- Załóżmy, że wyszukiwarka dostarczyła losowe wyniki, które zgodnie z przewidywaniami modelu są pozytywne, wtedy jest bardzo małe prawdopodobieństwo, że użytkownik będzie na nich polegał. Dlatego w tym scenariuszu potrzebujemy modelu o dużej precyzji, aby poprawił się user experience, a strona rosła we właściwym kierunku.
Wniosek
Macierz pomyłek to świetna metoda oceny modelu klasyfikacji. Daje rzeczywisty wgląd w to, jak dokładnie model sklasyfikował klasy na podstawie dostarczonych danych wejściowych i jak ta klasa może zostać błędnie sklasyfikowana.
Jeśli chcesz dowiedzieć się więcej o uczeniu maszynowym, sprawdź dyplom PG IIIT-B i upGrad w uczeniu maszynowym i sztucznej inteligencji, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 450 godzin rygorystycznego szkolenia, ponad 30 studiów przypadków i zadań, IIIT- Status absolwenta B, ponad 5 praktycznych, praktycznych projektów zwieńczenia i pomoc w pracy z najlepszymi firmami.