シェアする

[Qiita転載]ROC曲線とAUCについて定義と関係性をまとめたよ

7a549820-496c-db49-faa8-5f73106760b0

はじめに

こちらの記事の内容を1枚絵にまとめたものになります。以下、文章で少しだけ補足します。
edit.jpg

正解率系の各種指標について

(参考)こちらの記事より引用させて頂きました。
roc_auc.jpg

クラス分類モデルの性能評価には様々な評価指標が存在しますが、上記の各種指標の計算で諸々算出されます。
用語を覚える際に混乱してしまいがちですが、以下の関係性さえ理解しておけば丸暗記しなくても思い出せます。

①正解か不正解かを示す -> T or F
②モデルからの予測分類を示す -> P or N

偽陽性は、FP(間違って陽性判定した数) / FP + TN(陰性全体の母数)
真陽性は、TP(正しく陽性判定した数) / TP + FN(陽性全体の母数)

テキストでROC曲線とAUCをまとめる

roc_intro3 (1).png

①ROC曲線ってなんだ?
分類する閾値を変化させ、上記2指標の値をプロットしたものがROC曲線に当たります。’偽陽性が0の状態(陽性への判定閾値が限りなく高い)で、真陽性が高いモデル’が予測率の高いモデルと言えます。

②グラフをどう解釈する?
“スコアが0.999999以上のみを陽性と見なすよ!”という厳しい条件においても、陽性を正しく分類できるモデルは優れたモデルと言えますよね。偽陽性(横軸)が0の状態というのは、まさに上記のような条件を再現したものだと言えます。(実際に閾値がいくらに設定されているかは、入力によって異なるので、あくまで例です。)

③どんなグラフになる?
そして、偽陽性が高まる = (判定閾値が低くなり)陽性判定が増える = 真陽性は増えるという関係が常に成り立つので、ROC曲線は必ず右上がりになります。

④AUCはこういうもの
っで、あれば曲線と横軸との間の面積が大きいモデルというのは、’偽陽性が低い段階から正しく分類できていたモデル’となるわけですから、AUC(ROC曲線の横軸と縦軸に囲まれた部分の面積)は分類モデルのパフォーマンス評価指標として有用なわけです。

Scikit-learnでAUCを計算する

roc_auc_score()に、正解ラベルと予測スコアを渡すとAUCを計算してくれます。
楽チンです。

クラス分類問題の精度評価指標はいくつかありますが、案件に応じて最適なものを使い分けていましょう。

正解率とAUCを計算して最適なモデルを選択するスクリプト

かなり冗長ですが、学習過程で作ったコードを貼ってみました。

Android版ストア配信中!

トクチエAndroid版ストア配信中!

smartmockups0

スポンサーリンク
プッシュ通知を受け取る
プッシュ通知を受け取る

シェアする

フォローする

スポンサーリンク