PR曲線とROC曲線を理解する(前編)

こんばんは🐼

今回の記事は、2クラス分類タスクの際にしばしば登場するPR曲線とROC曲線について理解することを目的とします。機械学習を学ぶ上で最初に重要になるのは、結果をしっかりと評価出来るようになることだと思います。

前編ではPR曲線・ROC曲線を理解するために、必要な2クラス分類の性能評価指標のお話をしたいと思います。

認識精度の罠

機械学習の分類タスクでは、認識精度という指標が最も広く使われています。認識精度は「全体の予測のうち何%が正解したか」という最も単純で理解のしやすい指標ですが、認識精度だけで機械学習のモデル性能を評価すると不十分なことがあります。

ガンの診断

このトピックで最もよく使用されているであろう例として、ガンの陽性・陰性を判断するタスクがあります。一般にガンを患っている人はわずかなので、このような分類タスクの正解は、サンプルの選別等を行わない場合、陽性が1%・陰性が99%のように極端に偏ることになります。

ここで2種類のクラス分類器を使って、1000人(陽性10人陰性990人)に対して分類を行うとしましょう。どちらの分類器の方が優れているでしょうか。

分類器1

認識精度 99%のクラス分類器

分類器2

認識精度 95%のクラス分類器


... 何の疑いもなく「分類器1の方が優れている!」と考えてしまうのは危険です。結果を詳細に見れば、認識精度だけで判断するのが不十分なことが一目で分かるでしょう。

分類器1

正しく予想できた人数

  • 陽性: 0人/ 10人(0%)
  • 陰性: 990人/990人(100%)
  • 全体: 990人/1000人(99%)
分類器2

正しく予想できた人数

  • 陽性: 8人/ 10人(80%)
  • 陰性: 942人/990人(95.2%)
  • 全体: 950人/1000人(95%)


このようなタスクでは、全員を「陰性である」と予想すれば高い認識精度を誇ることができます。しかし陽性の患者を1人も発見できないので、全く使い物になりません。

当然といえば当然な気がしますが、初心者は見落としがちなポイントです。

ニ値分類の性能指標

認識精度という指標だけではクラス分類器の性能を評価するのに不十分なことが分かりました。このような時には、複数の指標でモデルを評価することが重要です。

そこでまず、TP・TN・FP・FNの意味を抑えておきましょう。英語の意味を考えれば、何ら混乱することはありません。ちなみに"陽クラス"とは、分類の際に注目しているクラスであって、ガンの陽性に限らず一般のニ値分類タスクで使われる用語です。

  • TP(true positive: 真陽性): 正しく予測された陽クラスの観測値の数
  • TN(true negative: 真陰性): 正しく予測された陰クラスの観測値の数
  • FP(false positive: 偽陽性): 陽クラスだと予測されたが、実際には陰クラスの観測値の数
  • FN(false negative: 偽陰性): 陰クラスだと予測されたが、実際には陽クラスの観測値の数


これらの数を使って、さまざまな性能指標を定義することができます。例えば、最もよく用いられる認識精度の指標は、

\displaystyle 認識精度 = \frac{TP + TN}{TP + TN + FP + FN}

で表すことができます。

適合率(precision)

適合率は、陽性であると予測されたすべての観測値のうち、実際に陽性であった観測値の割合です。

\displaystyle 適合率 = \frac{TP}{TP + FP}

今回のテーマの1つであるPR曲線のPはPrecision(適合率)を表しています。

適合率が高いほど、陽性であることが確実な場合にしか陽性であると予測しない傾向にあるといえます。適合率が重要なタスクの例として、スパムメールの分類があります。

「確実にスパムメール(陽クラス)である」といえるメール以外をスパムメールと予測すると、それだけスパムでないメール(陰クラス)をスパムメールとして弾いてしまう可能性が高まるからです。

再現率(recall)・真陽性率(TPR : true positive rate)

再現率は、実際に陽性である観測値のうち、陽性であると予想された観測値の割合です。

\displaystyle 再現率 = \frac{TP}{TP + FN}

今回のテーマの1つであるPR曲線のPはRecall(再現率)を表しています。また、ROC曲線では真陽性率(true positive rate)と呼ばれますが、内容は再現率と全く同じです。

再現率が高いほど、陽性であるかどうか分からない場合にも陽性であると予測する傾向にあるといえます。再現率が重要なタスクの例として、ガンのスクリーニングがあります。

ガンの発見のようなタスクでは、健康な患者を陽性であると診断してしまうリスクよりも、ガンを患っている患者を陰性であると診断してしまうリスクの方が圧倒的に高いからです。(陽性であると分類された患者に対しては、医師が直接確認することができる)

F1値(F1 value)

適合率と再現率には後述するようにトレードオフの関係があり、一方の値だけでなくこれらの指標のバランスが重要です。

そこで、適合率と再現率の調和平均をとったF1値という指標が使われることもあります。

\displaystyle F1 = 2\frac{適合率 \times 再現率}{適合率 + 再現率}

適合率と再現率のトレードオフ

適合率と再現率にはトレードオフの関係があります。前述の通り、タスクによって適合率と再現率のどちらを優先すべきかは変わるため、タスク毎に最適なバランスを考慮する必要があります。その際にPR曲線は役立ちます。

前編まとめ

今回は随時例を挙げながら、2クラス分類の性能指標のお話をメインにしました。

現実には完璧な分類器を作ることは不可能なので、2クラス分類では分類器の性能を上げる以外にも、ビジネス的な視点から適合率と再現率のトレードオフについて考える必要があります。

後編では実際にサンプルコードを実行しながら、今回説明した指標の評価を視覚的に行うことができる混同行列・PR曲線・ROC曲線といった道具について理解を深めたいと思います。

では、おやすみなさい🐼