Hur bra är din modell?

Övervakad inlärning med scikit-learn

George Boorman

Core Curriculum Manager, DataCamp

Klassificeringsmått

  • Mäta modellprestanda med noggrannhet:

    • Andel korrekt klassificerade urval

    • Inte alltid ett användbart mått

Övervakad inlärning med scikit-learn

Klassobalans

  • Klassificering för att förutsäga bedrägliga banktransaktioner

    • 99 % av transaktionerna är legitima; 1 % är bedrägliga
  • Man kan bygga en klassificerare som förutsäger att INGA transaktioner är bedrägliga

    • 99 % noggrannhet!

    • Men helt värdelös på att faktiskt identifiera bedrägliga transaktioner

    • Uppfyller inte sitt syfte

  • Klassobalans: ojämn fördelning av klasser

  • Vi behöver ett annat sätt att mäta prestanda

Övervakad inlärning med scikit-learn

Förvirringsmatris för att utvärdera klassificeringsprestanda

  • Förvirringsmatris

confusion_matrix.png

Övervakad inlärning med scikit-learn

Utvärdera klassificeringsprestanda

 

predicted_labels.png

Övervakad inlärning med scikit-learn

Utvärdera klassificeringsprestanda

 

actual_labels.png

Övervakad inlärning med scikit-learn

Utvärdera klassificeringsprestanda

 

confusion_matrix.png

Övervakad inlärning med scikit-learn

Utvärdera klassificeringsprestanda

 

true_positive.png

Övervakad inlärning med scikit-learn

Utvärdera klassificeringsprestanda

 

true_negative.png

Övervakad inlärning med scikit-learn

Utvärdera klassificeringsprestanda

 

false_negative.png

Övervakad inlärning med scikit-learn

Utvärdera klassificeringsprestanda

 

false_positive.png

Övervakad inlärning med scikit-learn

Utvärdera klassificeringsprestanda

confusion_matrix.png

  • Noggrannhet:

ch3_1_v3.030.png

Övervakad inlärning med scikit-learn

Precision

precision.png

  • Precision

precision_formula.png

  • Hög precision = lägre andel falskt positiva
  • Hög precision: Få legitima transaktioner förutsägs vara bedrägliga
Övervakad inlärning med scikit-learn

Recall

recall.png

  • Recall

recall_formula.png

  • Högt recall = lägre andel falskt negativa
  • Högt recall: De flesta bedrägliga transaktioner förutsägs korrekt
Övervakad inlärning med scikit-learn

F1-poäng

  • F1-poäng: $2 * \frac{precision \ * \ recall}{precision \ + \ recall}$
Övervakad inlärning med scikit-learn

Förvirringsmatris i 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)
Övervakad inlärning med scikit-learn

Förvirringsmatris i scikit-learn

print(confusion_matrix(y_test, y_pred))
[[1106   11]
 [ 183   34]]
Övervakad inlärning med scikit-learn

Klassificeringsrapport i 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
Övervakad inlärning med scikit-learn

Nu kör vi en övning!

Övervakad inlärning med scikit-learn

Preparing Video For Download...