Korzystam z macierzy zamieszania, aby sprawdzić wydajność mojego klasyfikatora.
Używam Scikit-Learn, jestem trochę zdezorientowany. Jak mogę zinterpretować wynik
from sklearn.metrics import confusion_matrix
>>> y_true = [2, 0, 2, 2, 0, 1]
>>> y_pred = [0, 0, 2, 2, 0, 2]
>>> confusion_matrix(y_true, y_pred)
array([[2, 0, 0],
[0, 0, 1],
[1, 0, 2]])
Jak podjąć decyzję, czy te przewidywane wartości są dobre, czy nie.
predictive-models
prediction
confusion-matrix
użytkownik3378649
źródło
źródło
Odpowiedzi:
Macierz nieporozumień jest sposobem na zestawienie liczby błędnych klasyfikacji, tj. Liczby przewidywanych klas, które trafiły do niewłaściwego koszyka klasyfikacyjnego w oparciu o prawdziwe klasy.
Chociaż sklearn.metrics.confusion_matrix zapewnia macierz numeryczną, bardziej użyteczne jest wygenerowanie „raportu” przy użyciu następujących elementów:
Co skutkuje w:
To pozwala nam zobaczyć, że:
y_true
iy_pred
z sum częściowych „Wszystkie”Ta metoda działa również w przypadku etykiet tekstowych, a dla dużej liczby próbek w zestawie danych można rozszerzyć, aby dostarczać raporty procentowe.
Dane wyjściowe to:
gdzie liczby reprezentują teraz procent (a nie liczbę przypadków) wyników, które zostały sklasyfikowane.
Należy pamiętać, że dane
sklearn.metrics.confusion_matrix
wyjściowe można bezpośrednio wizualizować za pomocą:źródło
AssertionError: arrays and names must have the same length
y_pred = pd.Series(...)
. To powinno działać teraz.Na macierzy zamieszania na osi y znajdują się wartości rzeczywiste, a na osi x wartości podane przez predyktor. Dlatego liczby na przekątnej są liczbą poprawnych prognoz. A elementy przekątnej są niepoprawnymi przewidywaniami.
W Twoim przypadku:
źródło
Chciałbym graficznie określić potrzebę zrozumienia tego. Jest to prosta matryca, którą należy dobrze zrozumieć przed wyciągnięciem wniosków. Oto uproszczona, możliwa do wyjaśnienia wersja powyższych odpowiedzi.
źródło