基礎編
評価指標の読み方
混同行列、適合率と再現率、ROC/AUC、RMSE。正解率が役に立たない場面と、指標が目的の代理でしかないこと。
この記事の要点
- 偏ったデータでは、正解率はほとんど役に立ちません。何も学習しなくても高い値が出るからです。
- 同じモデルでは、閾値というつまみで適合率と再現率のバランスを調整します。どちらを重く見るかは、間違えたときの損得で決めます。
- 指標はあくまで目的の代理です。指標が改善しても、実際の損得が改善するとは限りません。
混同行列がすべての出発点
分類の成績は、予測と実際の組み合わせを 4 つに数えるところから始まります。
| 実際に「はい」 | 実際に「いいえ」 | |
|---|---|---|
| 「はい」と予測 | 正しく当てた(真陽性 / TP) | 空振り(偽陽性 / FP) |
| 「いいえ」と予測 | 見逃し(偽陰性 / FN) | 正しく除外(真陰性 / TN) |
- 正解率(accuracy)… 全体のうち当たった割合
- 適合率(precision)… 「はい」と予測したもののうち、本当に「はい」だった割合。空振りの少なさ
- 再現率(recall)… 実際に「はい」のもののうち、拾えた割合。見逃しの少なさ
- F1 … 適合率と再現率の調和平均。片方が極端に低いと F1 も低くなるので、 「どちらも一定以上」を求めたいときに使う
正解率が役に立たない場面
100 件のうち「はい」が 3 件しかないデータで、全部「いいえ」と答えるだけのモデルを考えてみてください。 正解率は 97% になりますが、当てたい 3 件は 1 つも拾えていません。
このように偏りがあるデータ(不均衡データ)では正解率はあてになりません。 意味があるのは「いつも多数派を答えるだけの方法を上回っているか」という比べ方だけです。 「はい」を拾う力を見るなら適合率・再現率を、 全体の並べ替え能力を見るなら次の AUC を使います。
閾値は後から決められる(ROC / AUC)
多くの分類モデルは「はい / いいえ」ではなく確率のような点数を出します。 何点以上を「はい」とするかは後から決められる調整つまみです。 つまみを上げれば拾う件数が減るので、再現率は下がるか、そのまま(増えることはありません)です。 適合率はたいてい上がりますが、こちらは必ずではありません。 なお、これは同じモデルの閾値を動かした場合の話で、 モデルや特徴量が良くなれば両方とも上がります。
つまみを動かしながら、当てるべきものを拾えた割合(真陽性率)と、 当ててはいけないものを拾ってしまった割合(偽陽性率)を打点した曲線がROC 曲線で、その下側の面積が AUC です。
AUC は「正例を 1 件、負例を 1 件でたらめに選んだとき、 正例のほうに高い点数が付いている確率」と読めます。 0.5 がでたらめ、1.0 が完璧です。点数の絶対値ではなく順序だけを見る指標なので、 並べ替えの良さを測るのに向いています。
ランキングの指標
並び順を当てるタスクでは、「1 件ずつ合っているか」ではなく上位に正解を持ってこられているかを測ります。
- NDCG… 正解が上位に来るほど高くなる指標。1.0 が理想。 NDCG@3 のように「上位 3 件までを見る」形でよく使われます
- MAP(平均適合率)… 上位から順に見たときの当たり具合の平均
- 上位 k 件の的中率… 単純に「上位 k 件に正解が入っていたか」。読みやすさが利点
いずれもグループ(レース、検索クエリなど)ごとに計算して平均するのが基本です。
回帰の指標
- RMSE … 誤差を 2 乗して平均し、平方根を取る。大きく外した事例を強く罰する
- MAE … 誤差の絶対値の平均。外れ値に振り回されにくい
- 決定係数(R²)… 平均を答えるだけの予測に比べてどれだけ良いか
大外しを絶対に避けたいなら RMSE、 たまの大外しより日常的なズレの小ささが大事なら MAE、というように、何を痛いと感じるかで選びます。
確率としての正しさ(キャリブレーション)
「勝つ確率 30%」と出した事例を集めたとき、実際に約 30% が勝っていれば、 その確率は信用できます。順序が正しくても数字がずれていることはあり、確率をそのまま計算に使う場面(期待値や資金配分)では このズレが効いてきます。
指標は目的の代理でしかない
いちばん大切なのはここです。正解率も AUC も、本当に達成したいことの代わりに測っているだけです。 現場では「精度は上がったのに、業務上の成果は変わらない」ことが普通に起きます。 費用と効果が事例ごとに違うのに、指標がそれを見ていないからです。
だから最後は損得の単位で測り直す必要があります。 1 件の見逃しがいくらの損失で、1 件の空振りがいくらのコストなのか。 これを決めると、閾値もモデルの選び方も自然に決まります。