二値分類における評価指標②|logloss・PR曲線・ROC曲線・AUC

この記事では、「二値分類タスク」において各予測対象が「陽性である確率」を予測する際の代表的な評価指標について、その定義や特徴を具体例をもとに解説します。

二値分類における評価指標の概要

機会学習などにおいて、母集団の構成要素がどのクラスに分類されるかを予測することを分類 (Classification)」と呼びますが、そのうち特に「陽性か陰性か」「正例か負例か」といった分類を行うタスクは「二値分類」と呼ばれます。「二値分類」は、最終的に何を予測するかによって、大きく2つに分けることができます。

  1. 各予測対象が「陽性か陰性か(正例か負例か)」を予測するもの
  2. 各予測対象が「陽性(正例)である確率」を予測するもの

以下では、上記のうち2つ目の「陽性である確率を予測するタスク」における評価指標として、logloss、PR曲線、ROC曲線とAUCなどについて、その定義や特徴を解説します。

なお、1つ目の「陽性か陰性かを予測するタスク」における評価指標には、代表的なものとして正答率、適合率・再現率やF1スコアといった評価指標があります。詳細は以下のページをご覧ください。

各評価指標の定義とその特徴

logloss (交差エントロピー損失)

loglossは2つの確率関数の差を測る指標で、「交差エントロピー損失 (cross-entropy-loss)」とも呼ばれます。ここでの「2つの確率関数」とは、「実際の値が陽性か否か(陽性:yi 、陰性:1-yi )」と、「実際の値を予測する確率(陽性の予測:pi 、陰性の予測:1-pi )」を指し、以下のように計算されます。

logloss=1Ni=1N(yi log pi+(1yi) log (1pi))=1Ni=1Nlog pi                                         \begin{align} logloss&=-\frac{1}{N}\sum_{i=1}^{N}(y_i\ log\ p_i+(1-y_i)\ log\ (1-p_i))\\ &=-\frac{1}{N}\sum_{i=1}^{N}log\ p^{\prime}_i\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\ \end{align}


p’ は実際の値を予測している確率を表し、実際の値が陽性の場合はpi 、陰性の場合は1-pi となります。loglossは0~ 無限大の値を取り、値が小さいほど、より正確な確率の予測を行っていると評価されます。

仮に実際の値が陽性であるにも関わらず、陽性の確率を「0%」と予測した場合、logloss = −1.0log(0.0) + 0.0log(1.0) = −log(0.0) = ∞となり、無限に大きな値を取ります。

一方、実際の値が陽性のサンプルについて、陽性の確率を「100%」と予測した場合、logloss = −1.0log(1.0) + 0.0log(0.0) = −log(1.0) = 0 となり、最小値を取ります。

このように、実際の値が陽性であるにも関わらず、その確率を低く予測した場合や、逆に陰性であるにも関わらず、高い確率で陽性であると予測した場合にペナルティが与えられ、loglossの値は大きくなります

実際の値(yi ) 陽性の予測確率(pi ) -log(p’i )
1 1 (陽性) 0.8 -log(0.8)
= 0.223
2 0 (陰性) 0.3 -log(0.7)
= 0.357
3 1 (陽性) 0.4 -log(0.4)
= 0.916
平均 logloss :
0.499

PR曲線と平均適合率

PR曲線

PR曲線 (precision-recall curve:適合率-再現率カーブ) は、実現可能な適合率 (precision)と再現率 (recall)の組み合わせを同時に見るために使用されます。

適合率とは、陽性であると予測されたものが実際にどのくらい陽性であったかを測定するもので、「陽性的中率」 とも呼ばれます。一方、再現率は、実際に陽性のサンプルのうち、陽性と予測されたものの割合として表されるもので、「真陽性率」と同じことを意味します。

PR曲線は、この2つの指標の全ての組み合わせを平面上にプロットすることで、両者の関係性を視覚的に把握し、両者が最もバランス良く高い値となるポイントを見つけることを可能にします。

PR曲線

 Muller, Guide(2017)をもとに、Intelligence In Society作成

上記は、同じデータに対してサポートベクトルマシン (svc) とランダムフォレスト (rf) の2つのモデルで予測を行い、それぞれのPR曲線を重ねて表示したものです。予測確率0.0~1.0の中で予測値を陽性または陰性とする境となる値を「閾値」と呼びますが、図中のthresholdは、各モデルにおいてデフォルトで適用される閾値(svc=0, rf=0.5) を表しています。

ここでは、thresholdを含む、適合率 (precision) がおおよそ0.5~0.8の領域においては、svcの再現率 (recall) がrfを上回っており、svcがより優れたモデルとなっていますが、再現率が0.5以下または0.8以上の領域においては、逆にrfの再現率がsvcを上回っていることが分かります。

平均適合率

このように、PR曲線を作成することで、特定の1点における評価では把握できなかった、モデルの総体的な性能を確認することができます。また、平均適合率 (average precision)は、PR曲線の情報を1つの値で要約する指標の一つで、適合率の(再現率の増加量を重さとする)加重平均で計算されます。

AP=n(RnRn1)PnAP=\sum_{n}(R_n-R_{n-1})P_n


ここで、Pnは適合率、Rnは再現率を表します。平均適合率はPR曲線のカーブの下の領域に該当し、0 (最悪値) ~ 1 (最良値) を取ります。

上記2モデルの平均適合率はそれぞれ、svc = 0.663、rf = 0.666 となり、僅かにrfの方がより優れたモデルとして評価されます1

ROC曲線とAUC

ROC曲線

ROC曲線 (Receiver Operating Characteristic Curve) は、閾値を1から0に動かした際の真陽性率(y軸)と偽陽性率(x軸)の変化を平面上にプロットしたものです。

  • 真陽性率:実際に陽性のサンプルのうち、陽性と予測されたものの割合(上述の「再現率」と同じ)
  • 偽陽性率:実際は陰性のサンプルのうち、陽性と予測されたものの割合

利益率の高い潜在顧客を予測するモデルを例にした場合、ROC曲線は、モデルが利益(真陽性率)とコスト(偽陽性率)の間に生み出すトレードオフの関係を示したものと捉えることができます。

 Muller, Guide(2017)をもとに、Intelligence In Society作成

上の図は、先ほどと同じ2つのモデルについて、それぞれのROC曲線を重ねて示したものです。対角に引かれた点線は、ランダムに予測するモデルのROC曲線を示しています。

先ほどと同じように、デフォルトのthreshold(閾値)では、同じ偽陽性率(FPR)の水準に対してSVCがより高い真陽性率(TPR)を示していますが、より高い偽陽性率の領域ではRFの真陽性率がSVCを上回っています。

AUR

PR曲線における平均適合率と同様に、ROC曲線の情報を1つの値で要約する指標が、AUC (Area Under the ROC Curve) です。AUCは、ROC曲線が描くカーブの下の領域の面積にあたります。

AUCは、ランダムに選んだ陽性のサンプルに対するモデルの予測値が、同じくランダムに選んだ陰性のサンプルに対するモデルの予測値よりも大きくなる確率と同等です。

AUC=XXAUC=\frac{Xのうち、陽性サンプルの予測値>陰性サンプルの予測値、の数}{陽性サンプルと陰性サンプルの組み合わせの総数(=X)}


上記2モデルのAUCは、SVC:0.916、RF:0.937となり、RFの方が優れたモデルと評価されています2。ランダムに予測するモデルのAUCは0.5となるため、2つのモデルはランダムな予測に比べて十分高い性能を示していることが分かります。

また、陽性のサンプル数と陰性のサンプル数が大きく異なる「偏りのあるデータ」においても、ランダムに予測するモデルのAUCは常に0.5となります。そのため、正答率(精度)などと比べて、AUCは「偏りのあるデータ」においてより適切な評価指標であると言えます。

なお、AUCは統計学で用いられる順位検定のMann-Whitney-Wilcoxon検定と同等で、統計学や機械学習で用いられるGini係数とも近似の関係にあります(Gini係数 = 2・AUC-1)。

ここまで、「二値分類タスク」において各予測対象が「陽性である確率」を予測する際の代表的な評価指標について、その定義や特徴を解説しました。

当記事に関連するトピックについての詳細は、以下のページをご覧ください。

また、機械学習・データ分析一般に関する全ての記事は以下のページからご覧いただけます。

参考文献:
◦scikit-learn “API Reference – sklearn.metrics – average_precision_score” https://scikit-learn.org/stable/modules/generated/sklearn.metrics.average_precision_score.html (2026年6月1日最終閲覧)
◦Foster Provost, Tom Fawcett (2014) 『戦略的データサイエンス入門―ビジネスに活かすコンセプトとテクニック』O’Reilly Japan
◦Andreas C. Muller、Sarah Guido (2017)『Pythonではじめる機械学習―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎』O’Reilly Japan
◦門脇大輔,阪田隆司,保坂桂佑,平松雄司 (2019)『Kaggleで勝つデータ分析の技術』, 技術評論社
◦八谷大岳 (2020) 『ゼロからつくるPython機械学習プログラミング入門』講談社
注記:
1, 2. Muller, Guide(2017)より引用

関連記事