性能評価

Pythonで学ぶ不正検知

Charlotte Werger

Data Scientist

精度だけが重要ではない

不正検知では、精度(accuracy)偏重を捨てましょう

Pythonで学ぶ不正検知

偽陽性・偽陰性・検知できた不正

Pythonで学ぶ不正検知

適合率と再現率のトレードオフ

Pythonで学ぶ不正検知

評価指標の取得

# Import the packages
from sklearn.metrics import precision_recall_curve
from sklearn.metrics import average_precision_score

# Calculate average precision and the PR curve average_precision = average_precision_score(y_test, predicted)
# Obtain precision and recall precision, recall, _ = precision_recall_curve(y_test, predicted)
Pythonで学ぶ不正検知

適合率-再現率曲線

Pythonで学ぶ不正検知

アルゴリズム比較のためのROC曲線

# Obtain model probabilities
probs = model.predict_proba(X_test)

# Print ROC_AUC score using probabilities print(metrics.roc_auc_score(y_test, probs[:, 1]))
0.9338879319822626
Pythonで学ぶ不正検知
from sklearn.metrics import classification_report, confusion_matrix

# Obtain predictions predicted = model.predict(X_test)
# Print classification report using predictions print(classification_report(y_test, predicted))
  precision    recall  f1-score   support

        0.0       0.99      1.00      1.00      2099
        1.0       0.96      0.80      0.87        91

avg / total       0.99      0.99      0.99      2190
# Print confusion matrix using predictions
print(confusion_matrix(y_test, predicted))
[[2096    3]
 [  18   73]]
Pythonで学ぶ不正検知

Passons à la pratique !

Pythonで学ぶ不正検知

Preparing Video For Download...