怎樣用scikit-learn計算分類器的ROC, AUC? | How to use scikit-learn to compute ROC, AUC for binary classifie

ROC – Receiver operating characteristic curve
AUC – Area Under the ROC Curve

本文不深入討論ROC/AUC的意義,只是focus在用scikit-learn應用上。以後我會寫一下自己的理解。

這裡有些資料

https://developers.google.com/machine-learning/crash-course/classification/roc-and-auc

這個視頻解釋的特別好。

以下為python代碼。roc_curve可以take numpy arrays。一般數據都在pandas dataframe里處理好。所以這個這個場景場景為例子

from sklearn import metrics

fpr, tpr, thresholds = metrics.roc_curve(df['label'].to_numpy(), df['prediction'].to_numpy(), pos_label=2)
auc = metrics.auc(fpr, tpr)
print(f'auc = {auc}')

ROC的線也可以用matplotlib畫出來

import matplotlib.pyplot as plt

plt.plot(fpr, tpr)
plt.xlabel('fpr')
plt.ylabel('tpr')
plt.title('ROC / AUC')

Leave a Comment

Your email address will not be published.