【ROC曲線とAUC】機械学習の評価指標
機械学習のモデル作成後にテストデータを使って「本当に良いモデルなのか?」という評価を必ず行う必要があります。今回の記事は分類問題に対して評価指標のROC曲線とAUCについて説明します。他にも評価指標は色々とあるので、随時記事にしていく予定です。 AUCとは AUCとは、二値分類器の評価指標として Area Under the ROC Curve の略です。サンプルに対して 0から1の範囲でスコア(確率)を与える二値分類器 の精度を評価することを考えています。予測スコアでサンプルを(降順)ソートしたときに、真値のTrue となるサンプルが 真値のFalse となるサンプルより上位にきているか』ということを測っています。つまり、ラベル 1 のサンプルに正しく高スコアを与える予測器であるか を見ています。 縦軸がモデルの予測で、横軸が正解データになります。 各象限の説明を簡単にすると、 True Positive(TP): 正解データ正であるものを、正しく正と予測できた数 False Positive(FP):正解データ負であるものを、間違って正と予測した数 Flase Negative(FN):正解データ正であるものを、間違って負と予測した数 True Negative(TN):正解データ負であるものを、正しく負と予測できた数 ROC曲線をプロット 先程の偽陽性率と真陽性率の表をプロットすると以下のようなグラフが出来上がります。このように、閾値を変化させたときの偽陽性率と真陽性率による各点を結んだものがROC曲線です。 閾値を移動させながらPositive / Negativeを判別していくことを考えます。そうすると閾値が0のときは全てNegativeに判断するので偽陽性は0になります。ここから閾値を増加させていくと偽陽性と真陽性が増加していきます。そして閾値が1となったとき全てPositiveと判断するので偽陽性は1になります。モデルの識別能力が高ければ左上に凸のグラフになりますが、識別能力が低ければグラフは対角線上に近づきます。 Sklearnのpython # ライブラリーのインポート import numpy as np import matplotlib.pyplot as plt from sklearn import svm, …