你的模型表現有多好?

使用 scikit-learn 進行監督式學習

George Boorman

Core Curriculum Manager, DataCamp

分類評估指標

  • 以 accuracy 衡量模型表現:

    • 正確分類樣本的比例

    • 並非總是有用的指標

使用 scikit-learn 進行監督式學習

類別不平衡

  • 以分類來預測銀行詐欺交易

    • 99% 的交易合法;1% 為詐欺
  • 你可以建一個分類器,預測所有交易都不是詐欺

    • 準確率 99%!

    • 但幾乎無法找出真正的詐欺

    • 無法達成原本目的

  • 類別不平衡:各類別出現頻率不均

  • 需要不同方式來評估表現

使用 scikit-learn 進行監督式學習

用混淆矩陣評估分類表現

  • 混淆矩陣

confusion_matrix.png

使用 scikit-learn 進行監督式學習

評估分類表現

 

predicted_labels.png

使用 scikit-learn 進行監督式學習

評估分類表現

 

actual_labels.png

使用 scikit-learn 進行監督式學習

評估分類表現

 

confusion_matrix.png

使用 scikit-learn 進行監督式學習

評估分類表現

 

true_positive.png

使用 scikit-learn 進行監督式學習

評估分類表現

 

true_negative.png

使用 scikit-learn 進行監督式學習

評估分類表現

 

false_negative.png

使用 scikit-learn 進行監督式學習

評估分類表現

 

false_positive.png

使用 scikit-learn 進行監督式學習

評估分類表現

confusion_matrix.png

  • Accuracy:

ch3_1_v3.030.png

使用 scikit-learn 進行監督式學習

Precision(精確率)

precision.png

  • Precision

precision_formula.png

  • Precision 高=較低的 false positive 率
  • Precision 高:較少把合法交易判成詐欺
使用 scikit-learn 進行監督式學習

Recall(召回率)

recall.png

  • Recall

recall_formula.png

  • Recall 高=較低的 false negative 率
  • Recall 高:能正確抓到多數詐欺交易
使用 scikit-learn 進行監督式學習

F1 分數

  • F1 分數:$2 * \frac{precision \ * \ recall}{precision \ + \ recall}$
使用 scikit-learn 進行監督式學習

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)
使用 scikit-learn 進行監督式學習

scikit-learn 的混淆矩陣

print(confusion_matrix(y_test, y_pred))
[[1106   11]
 [ 183   34]]
使用 scikit-learn 進行監督式學習

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
使用 scikit-learn 進行監督式學習

一起來練習吧!

使用 scikit-learn 進行監督式學習

Preparing Video For Download...