コンセプト解説

AIモデルの評価指標

「このモデルは使えるのか?」に答えるには、数字が必要です。ところが、見る数字を間違えると、役に立たないモデルでも立派に見えてしまいます。この解説では、分類モデルの適合率と再現率、数値を予測するモデルの誤差、生成AIが書いた文章の採点方法、そして実際のユーザーに使ってもらってからの評価まで、順番に見ていきます。

01

正解率だけを見ると何がまずいのか

あるカード会社が、不正な取引を見つけるモデルを作りました。テストしてみると、正解率(accuracy)は95%。100件中95件を当てたということなので、なかなか良さそうです。でも、そもそも100件のうち不正取引が5件しかなかったとしたら、どうでしょうか。

下の図では、マス1つが取引1件で、赤いマスが本物の不正取引です。モデルが「不正」と判定したマスは手前に飛び出します。2つのモデルを切り替えてみましょう。

モデル
正解率
95%
再現率
0%

取引100件の中から不正取引5件を見つけるモデル

何もせず全部「正常」と答えただけなのに、正解率は95%です。不正取引は1件も見つけられていません(再現率0%)。

いつも「正常」と答えるだけのモデルは何も学習していないのに、正解率は95%です。不正は1件も見つけていません。実際に学習したモデルのほうは正解率が93%と低いものの、不正5件のうち4件を見つけました。この会社に必要なのは、もちろん2つ目のモデルです。

正解率は、すべての予測のうち当たったものの割合です。片方の結果がもう片方よりずっと多いデータ、いわゆる不均衡データでは、多いほうをいつも答えるだけで正解率が高くなってしまいます。不正検知、病気の診断、不良品検査など、探したいものがめったに出てこない問題はたいていこの形です。

ここが引っかかりやすいところです。データが不均衡なとき、「正解率が高いから良いモデル」とは言えません。試験で「不良品は全体の1%だけ」のように偏りが書かれていたら、正解率以外の指標を選ぶ合図です。

問題文にこんな表現があれば → これを選ぶ

  • “陽性がデータ全体の1%しかない”正解率ではなく適合率・再現率・F1スコア
  • “多いほうのクラスを答え続けるだけで高い点が出る”正解率の落とし穴

では、代わりに何を見ればいいのでしょうか。まずは、モデルの当たり・外れを4つに分けるところから始めます。

02

混同行列・適合率・再現率・F1スコア

「スパムかどうか」のように2つのうち1つを選ぶモデルでは、結果は必ず4つの箱のどれかに入ります。見つけたいほう(スパム)を陽性(positive)、もう一方(普通のメール)を陰性(negative)と呼びます。そして、モデルの判定が当たっていれば真(true)、外れていれば偽(false)を頭につけます。

ここが引っかかりやすいところです。モデルが普通のメールを「スパム」と判定したとします。「陽性」と言って外れたので、これは偽陽性(FP)です。逆にスパムを普通のメールとして通してしまったら偽陰性(FN)です。後ろの「陽性・陰性」はモデルが何と答えたか、前の「真・偽」はそれが当たっていたかを表します。

モデルの判定:スパム(陽性)モデルの判定:正常(陰性)
実際はスパムTP 真陽性:ちゃんと見つけたFN 偽陰性:見逃した
実際は正常FP 偽陽性:誤って判定したTN 真陰性:正しく通した

この表を混同行列と呼びます。ここから、大事な割合が2つ出てきます。

適合率(precision)= TP ÷ (TP + FP)

モデルが「スパム」と判定したもののうち、本当にスパムだったのはどれくらいか。「判定したら、ちゃんと当たっているか」です。誤検知のコストが大きいときに見ます。

再現率(recall)= TP ÷ (TP + FN)

本物のスパムのうち、モデルが見つけられたのはどれくらいか。「漏れなく見つけたか」です。見逃しのコストが大きいときに見ます。再現率は感度(sensitivity)とも呼ばれます。

分類モデルはふつう0〜1のスコアを出し、自分で決めたしきい値を超えたら陽性と判定します。下の図では、メール20通をスコア順に並べています。しきい値を動かしてみましょう。

しきい値
混同行列
TP 4 · FP 3 · FN 2 · TN 11
指標
適合率 57% · 再現率 67% · F1 62%

メール20通のうちスパムは6通。しきい値より右(手前に出たマス)をスパムとして振り分けます

しきい値 0.5:スパム6通のうち4通を見つけ(再現率67%)、スパムと判定した7通のうち4通が本物のスパムです(適合率57%)。しきい値を下げるほど再現率は上がり、適合率は下がります。

しきい値を上げると、モデルは自信のあるものだけを判定するので適合率は上がります。そのかわり見逃すスパムが増え、再現率は下がります。しきい値を下げると逆になります。たいてい、片方を上げるともう片方が下がるのです。そこで、どちらの間違いがより痛いかでしきい値を決めます。見逃しが許されないがん検診なら再現率を優先し、大事なメールを絶対に埋もれさせてはいけないスパムフィルターなら適合率を優先します。

両方をまとめて見たいときはF1スコアを使います。適合率と再現率の調和平均なので、片方が高くても、もう片方が低ければF1スコアも低くなります。不均衡データでモデルを1つの数字で比べるときによく使われます。

問題文にこんな表現があれば → これを選ぶ

  • “見逃しが許されない(病気、不正)”再現率
  • “誤検知が許されない(スパムフィルター)”適合率
  • “適合率と再現率を1つの数字にまとめる”F1スコア
  • “陰性なのに陽性と予測した”偽陽性(FP)
  • “陽性なのに陰性と予測して見逃した”偽陰性(FN)

でも、適合率と再現率がしきい値ごとに変わるなら、しきい値を決める前に2つのモデルを比べるにはどうすればいいのでしょうか。

広告

03

ROC曲線とAUC

しきい値を1から0まで少しずつ下げながら、そのたびに2つの値を測ります。真陽性率(TPR)は、本物のスパムのうち見つけられた割合。偽陽性率(FPR)は、普通のメールのうち誤ってスパムと判定した割合です。TPRは第2章の再現率と同じものです。横軸にFPR、縦軸にTPRをとって点を結ぶと、ROC曲線ができます。

良いモデルは、普通のメールをほとんど誤判定しないうちにスパムをどんどん見つけるので、曲線が左上に向かって一気に立ち上がります。当てずっぽうのモデルは対角線に沿って進みます。曲線の下の面積をAUC(area under the curve)と呼びます。下の図では、柱が埋めている面積がAUCです。

モデル
AUC
0.84

しきい値を1から0へ下げながら記録した (FPR, TPR)。柱が埋める面積がAUC

誤判定をわずかに増やすだけで、スパムをどんどん見つけられます。曲線が左上に張りつくほど、面積(AUC 0.84)は1に近づきます。

AUCは0.5(当てずっぽう)から1(完璧)までの値をとります。しきい値を1つに決めなくても、モデルが陽性と陰性をどれだけうまく見分けられるかを1つの数字で表せるので、しきい値を決める前に複数のモデルを比べるのに便利です。ただし、実際にサービスで使うときはしきい値を1つに決める必要があり、そこから先はまた第2章の適合率と再現率の話になります。

縦軸のTPRは再現率(感度)と同じです。横軸のFPRは「1 − 特異度」です(特異度は、陰性のうち正しく陰性と判定できた割合)。試験で「感度と1 − 特異度の関係を描いた曲線」と出てきたら、ROC曲線のことです。

問題文にこんな表現があれば → これを選ぶ

  • “しきい値に関係なくモデルを比べる”AUC
  • “感度と「1 − 特異度」を描いた曲線”ROC曲線
  • “AUCが0.5”当てずっぽうと同じ

ここまでのモデルは「スパムかどうか」のようにカテゴリを当てるものでした。売上や住宅価格のように数値を予測するモデルは、単純に当たり・外れでは評価できません。どれだけずれたかを測る必要があります。

Pro限定

ここまでは無料で読めます

残りの5章はPro会員向けです。各章に3D図解と「問題文にこんな表現があれば」の整理が続き、最後の章では実際に解いて確かめられます。

  1. 04MAEとRMSE
  2. 05生成された文章の評価
  3. 06LLMによる採点と人による評価
  4. 07A/Bテストとビジネス指標
  5. 08指標の選び方

PasslyExam

概念をつかんだら、次は試験形式の問題で確かめましょう

PasslyExamは、各資格の出題範囲に合わせて作成したオリジナルの練習問題・解説・本番形式の模擬試験を提供しています。正解の選択肢がなぜ正しく、似た選択肢がなぜ誤りなのかまで解説します。登録すると毎日無料で練習問題に取り組めます。