Cât de bun este modelul tău?

Învățare supravegheată cu scikit-learn

George Boorman

Core Curriculum Manager, DataCamp

Metrici de clasificare

  • Măsurarea performanței cu acuratețea:

    • Fracția de eșantioane clasificate corect

    • Nu este întotdeauna o metrică utilă

Învățare supravegheată cu scikit-learn

Dezechilibru de clase

  • Clasificare pentru detectarea tranzacțiilor bancare frauduloase

    • 99% dintre tranzacții sunt legitime; 1% sunt frauduloase
  • Se poate construi un clasificator care prezice că NICIO tranzacție nu este frauduloasă

    • Acuratețe de 99%!

    • Dar slab la identificarea tranzacțiilor frauduloase

    • Nu își îndeplinește scopul inițial

  • Dezechilibru de clase: frecvență inegală a claselor

  • Este necesară o altă metodă de evaluare a performanței

Învățare supravegheată cu scikit-learn

Matricea de confuzie pentru evaluarea clasificării

  • Matricea de confuzie

confusion_matrix.png

Învățare supravegheată cu scikit-learn

Evaluarea performanței clasificării

 

predicted_labels.png

Învățare supravegheată cu scikit-learn

Evaluarea performanței clasificării

 

actual_labels.png

Învățare supravegheată cu scikit-learn

Evaluarea performanței clasificării

 

confusion_matrix.png

Învățare supravegheată cu scikit-learn

Evaluarea performanței clasificării

 

true_positive.png

Învățare supravegheată cu scikit-learn

Evaluarea performanței clasificării

 

true_negative.png

Învățare supravegheată cu scikit-learn

Evaluarea performanței clasificării

 

false_negative.png

Învățare supravegheată cu scikit-learn

Evaluarea performanței clasificării

 

false_positive.png

Învățare supravegheată cu scikit-learn

Evaluarea performanței clasificării

confusion_matrix.png

  • Acuratețe:

ch3_1_v3.030.png

Învățare supravegheată cu scikit-learn

Precizie

precision.png

  • Precizie

precision_formula.png

  • Precizie ridicată = rată mai mică de fals pozitiv
  • Precizie ridicată: puține tranzacții legitime sunt prezise ca frauduloase
Învățare supravegheată cu scikit-learn

Recall

recall.png

  • Recall

recall_formula.png

  • Recall ridicat = rată mai mică de fals negativ
  • Recall ridicat: majoritatea tranzacțiilor frauduloase sunt prezise corect
Învățare supravegheată cu scikit-learn

Scorul F1

  • Scorul F1: $2 * \frac{precision \ * \ recall}{precision \ + \ recall}$
Învățare supravegheată cu scikit-learn

Matricea de confuzie în 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)
Învățare supravegheată cu scikit-learn

Matricea de confuzie în scikit-learn

print(confusion_matrix(y_test, y_pred))
[[1106   11]
 [ 183   34]]
Învățare supravegheată cu scikit-learn

Raport de clasificare în 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
Învățare supravegheată cu scikit-learn

Să exersăm!

Învățare supravegheată cu scikit-learn

Preparing Video For Download...