組み込み開発のためのPython · レッスン 144 / 220

ROC曲線とAUCを読む

ROC曲線は判定しきい値ごとの真陽性率と偽陽性率を示し、AUCは順位付け性能の要約です。クラス不均衡時には適合率・再現率も併記します。

ROC曲線は判定しきい値ごとの真陽性率と偽陽性率を示し、AUCは順位付け性能の要約です。クラス不均衡時には適合率・再現率も併記します。 仕組みだけでなく、検証方法と運用上の注意も具体例で確認します。

基本の考え方

ROC曲線は判定しきい値ごとの真陽性率と偽陽性率を示し、AUCは順位付け性能の要約です。クラス不均衡時には適合率・再現率も併記します。

安全に試すための確認

例は学習用データを使うもので、品質を保証する予測器ではありません。実データの欠損、単位、偏り、データ漏えいを確認し、テスト用データを学習中に参照しないでください。

コード例

手元のPython環境に貼り付ける前に、使用しているPythonの版と対象ライブラリの対応を確認してください。

from sklearn.metrics import roc_auc_score, roc_curve

y_true = [0, 0, 1, 1]
scores = [0.1, 0.4, 0.35, 0.8]
print(roc_auc_score(y_true, scores))
print(roc_curve(y_true, scores)[:2])

手を動かす課題

陽性クラスの割合を変えた例を用意し、ROC-AUCと適合率・再現率をあわせて比較してください。

参考資料

「機械学習の基礎」の章一覧へ