データサイエンス

2値分類タスクに用いる評価指標を理解しよう!適合率・再現率・AUCなどについて解説

2値分類 データサイエンス
この記事はこんな方にオススメ

こんにちは、zawato(@zawato7)です!

機械学習分野において、予測結果を2値(0, 1)で出力するようなタスクが扱われるケースがよくあります。

この記事では、そんな2値分類タスクに用いられる代表的な評価指標をご紹介します。

前提知識:混合行列(Confusion Matrix)

これからご紹介する評価指標を理解するためには、混同行列(confusion matrix)について理解しておく必要があります。

混同行列とは、各データを「の分類」と「予測による分類」により4つに分けたものを行列として表現したものです。

以下のようなものです。

Confusion Matrix
混合行列

2値分類タスクの例として、「病気の診断」について考えてみましょう。

まず、2値のそれぞれについて

  • 「病気がある」=「陽性」= 1
  • 「病気がない」=「陰性」= 0、

とします。

この場合、混同行列の各要素は以下のように解釈できます。

要素解釈
真陽性(TP)「病気があると予測」して「実際に病気がある」(正解)
偽陰性(FN)「病気がないと予測」して「実際は病気がある」(不正解)
偽陽性(FP)「病気があると予測」して「実際は病気がない」(不正解)
真陰性(TN)「病気がないと予測」して「実際に病気がない」(正解)

先ほどの画像で言うと、緑色の部分が正解 で 紫色の部分が不正解 を意味します。

代表的な評価指標

ここからは、2値分類タスクに用いられる基本的な評価指標について解説したいと思います。

評価指標を計算するにあたって、混合行列が以下のような結果が得られているものとします。

Confusion Matrix

 

正解率(Accuracy)

正解率は、全予測のうち正しく予測された割合を示します。

\(\rm{Accuracy}=\frac{TP+TN}{TP+FP+FN+TN}​\)

実際に計算してみると、

\(\rm{Accuracy}=\frac{90+70}{90+30+10+70}​=0.8\)

となります。非常にシンプルで分かりやすい指標です。

 

しかし、2値のラベルに偏りがあるデータの場合はあまり有用ではないです。

例えば、1000サンプルのうち900サンプルが陰性で100サンプルが陽性の場合、全サンプルを陰性と予測しても、900/1000=0.9の正解率となります。

評価値としては高い値ですが、うまくデータを分析できているとは言えないですよね。

zawato
zawato

正解率は、シンプルで分かりやすいけど、当てにならないこともあるよ!

 

適合率(Precision)

適合率は、陽性と予測されたデータのうち、実際に陽性である割合を示します。

\(\rm{Precision}=\frac{TP}{TP+FP}​\)

実際に計算してみると、

\(\rm{Precision}=\frac{90}{90+30}​=0.75\)

となります。

Confusion Matrix

 

再現率(Recall)

再現率は、実際に陽性であるものの中で、正しく陽性と予測された割合を示します。

\(\rm{Recall}=\frac{TP}{TP+FN}​\)

実際に計算してみると、

\(\rm{Recall}=\frac{90}{90+10}​=0.9\)

となります。

Confusion Matrix

F1スコア

F1スコアは、適合率と再現率の調和平均です。

\(\rm{F1\ Score}=2{・}\frac{\rm{Precision}{・}\rm{Recall}}{\rm{Precision}+\rm{Recall}}​\)

実際に計算してみると、

\(\rm{F1\ Score}=2{・}\frac{0.75{・}0.9}{0.75+0.9}​\approx0.818\)

となります。

適合率と再現率のバランスを評価する指標として有用です。

応用的な評価指標

2値分類タスクでは、予測結果を2値(0, 1)で出力しますが、その過程では予測スコアというものが出力されます。

最終的に、ある閾値を決めて、予測スコアが閾値以上のものを1、予測スコアが閾値未満のものを0というように分類することが一般的です。

特に実務においては、この「閾値」をどのように設定するかが非常に重要です。

そこで、閾値に関する評価指標を追加で紹介します。

 

ROC曲線とAUC

ROC曲線(Receiver Operating Characteristic Curve)は、分類モデルの性能を視覚的に評価するためのグラフです。

モデルがさまざまな閾値でどのように振る舞うかを示します。

Confusion Matrix

閾値を変化させていくことで、これまで扱った評価指標の値も変化していくことがわかると思います。

ROC曲線は以下のようなグラフです。

ROC
ROC曲線

偽陽性率とは、実際は陰性であるデータの中で、誤って陽性と予測された割合のことです。

\(\rm{FRP}=\frac{FP}{FP+TN}​\)

孤が描いた右下側の面積の大きさをAUCと呼びます。

このAUCの値が高い(曲線が左上に伸びている)ほど性能が良いと判断します。

これは、RecallとFPRが同じ割合で減っていく場合(グラフの中央の点線)と比べた時、閾値を上げてもRecallの性能があまり下がらないことを意味しています。

しかし、AUCは陽性のデータ数が少ないような、不均衡なデータに対して過度に高い値を示してしまうという弱点があります。

 

PR曲線とPR-AUC

PC曲線(Precision-Recall曲線)は、その名の通り適合率(Precision)と再現率(Recall)のトレードオフの関係を予測スコアの閾値を増減させて描画した曲線のことです。

PR曲線

ROC曲線と同様、囲まれた面積の大きさをPR-AUCと呼び、この値が1に近いほど性能が良いモデルと判断します。

まとめ

本記事では、2値分類タスクに用いられる代表的な評価指標についてご紹介しました。

目的に合わせて評価指標を使い分けできるように、繰り返し確認してみてください!

お問い合わせは、こちら

プロフィール
zawato

データサイエンティストとして3年の実務経験あり。
情報学修士卒。Python歴6年。
このブログでは、主にプログラミングやIT技術関連、エンジニア向けにちょっとした役立つ情報を発信しています。

zawatoをフォローする!
よかったらシェアしてね!
zawatoをフォローする!

コメント

タイトルとURLをコピーしました