Jak dobry jest Twój model?

Nadzorowane uczenie maszynowe z scikit-learn

George Boorman

Core Curriculum Manager, DataCamp

Metryki klasyfikacji

  • Pomiar wydajności modelu za pomocą dokładności:

    • Odsetek poprawnie sklasyfikowanych próbek

    • Nie zawsze użyteczna metryka

Nadzorowane uczenie maszynowe z scikit-learn

Niezbalansowanie klas

  • Klasyfikacja do wykrywania oszukańczych transakcji bankowych

    • 99% transakcji jest legalnych; 1% to oszustwa
  • Można zbudować klasyfikator przewidujący, że ŻADNA transakcja nie jest oszukańcza

    • 99% dokładności!

    • Ale bezużyteczny w wykrywaniu oszustw

    • Nie spełnia swojego celu

  • Niezbalansowanie klas: nierówna częstość klas

  • Potrzebna inna metoda oceny wydajności

Nadzorowane uczenie maszynowe z scikit-learn

Macierz pomyłek do oceny klasyfikacji

  • Macierz pomyłek

Macierz pomyłek

Nadzorowane uczenie maszynowe z scikit-learn

Ocena wydajności klasyfikacji

 

Przewidywane etykiety

Nadzorowane uczenie maszynowe z scikit-learn

Ocena wydajności klasyfikacji

 

Rzeczywiste etykiety

Nadzorowane uczenie maszynowe z scikit-learn

Ocena wydajności klasyfikacji

 

Macierz pomyłek

Nadzorowane uczenie maszynowe z scikit-learn

Ocena wydajności klasyfikacji

 

Prawdziwie pozytywne

Nadzorowane uczenie maszynowe z scikit-learn

Ocena wydajności klasyfikacji

 

Prawdziwie negatywne

Nadzorowane uczenie maszynowe z scikit-learn

Ocena wydajności klasyfikacji

 

Fałszywie negatywne

Nadzorowane uczenie maszynowe z scikit-learn

Ocena wydajności klasyfikacji

 

Fałszywie pozytywne

Nadzorowane uczenie maszynowe z scikit-learn

Ocena wydajności klasyfikacji

Macierz pomyłek

  • Dokładność:

ch3_1_v3.030.png

Nadzorowane uczenie maszynowe z scikit-learn

Precyzja

Precyzja

  • Precyzja

Wzór na precyzję

  • Wysoka precyzja = niższy wskaźnik fałszywie pozytywnych
  • Wysoka precyzja: mało legalnych transakcji klasyfikowanych jako oszustwo
Nadzorowane uczenie maszynowe z scikit-learn

Czułość

Czułość

  • Czułość

Wzór na czułość

  • Wysoka czułość = niższy wskaźnik fałszywie negatywnych
  • Wysoka czułość: większość oszukańczych transakcji wykryta poprawnie
Nadzorowane uczenie maszynowe z scikit-learn

Miara F1

  • Miara F1: $2 * \frac{precision \ * \ recall}{precision \ + \ recall}$
Nadzorowane uczenie maszynowe z scikit-learn

Macierz pomyłek w scikit-learn

from sklearn.metrics import classification_report, confusion_matrix

knn = KNeighborsClassifier(n_neighbors=7)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=42)
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)
Nadzorowane uczenie maszynowe z scikit-learn

Macierz pomyłek w scikit-learn

print(confusion_matrix(y_test, y_pred))
[[1106   11]
 [ 183   34]]
Nadzorowane uczenie maszynowe z scikit-learn

Raport klasyfikacji w scikit-learn

print(classification_report(y_test, y_pred))
              precision    recall  f1-score   support

           0       0.86      0.99      0.92      1117
           1       0.76      0.16      0.26       217

    accuracy                           0.85      1334
   macro avg       0.81      0.57      0.59      1334
weighted avg       0.84      0.85      0.81      1334
Nadzorowane uczenie maszynowe z scikit-learn

Lass uns üben!

Nadzorowane uczenie maszynowe z scikit-learn

Preparing Video For Download...