モデル評価と指標
モデル評価とは
機械学習のモデルは、プログラムのように「動く/動かない」で判断できません。どのくらい正しく予測できるかを数字で測る必要があります。これがモデル評価です。
[[自動テスト]] が「仕様どおりか」を白黒で判定するのに対し、モデル評価は「どのくらい当たるか」を割合で表すのが大きな違いです。[[機械学習の基礎]] で作ったモデルも、評価して初めて実用に足るか判断できます。
分類タスクの主な指標
迷惑メール判定のように「陽性/陰性」を当てるタスクでは、次の指標がよく使われます。
| 指標 | 意味 | 重視する場面 |
|---|---|---|
| 正解率(Accuracy) | 全体のうち正しく当てた割合 | 陽性と陰性が同じくらいの量のとき |
| 適合率(Precision) | 陽性と予測したもののうち、本当に陽性だった割合 | 誤検知を減らしたいとき |
| 再現率(Recall) | 本当に陽性のもののうち、拾えた割合 | 見逃しを減らしたいとき |
| F1スコア | 適合率と再現率のバランスを1つにまとめた値 | 両方を同時に見たいとき |
正解率だけを見てはいけない
1000人に1人しかかからない病気を判定するモデルは、「全員に陰性」と答えるだけで正解率が99.9パーセントになります。しかし患者は1人も見つけられていません。データが偏っていると正解率は簡単に嘘をつくため、適合率・再現率をあわせて見る必要があります。
適合率と再現率はトレードオフ
迷惑メールフィルタの判定を厳しくすると見逃しは減りますが、大事なメールまで迷惑メール扱いされます。緩くすれば逆になります。どちらを取るかは技術ではなく業務上の損得で決めます。
- 誤検知のコストが高い(重要メールを消したくない)→ 適合率を優先
- 見逃しのコストが高い(病気を見落としたくない)→ 再現率を優先
評価用データの分け方
- 訓練データ — モデルを学習させるためのデータ
- 検証データ — 設定を調整しながら途中経過を確かめるためのデータ
- テストデータ — 最後に一度だけ使う「本番試験」
テストデータで何度も調整すると、テストに合わせたモデルになってしまい、[[過学習と汎化]] と同じ問題が起きます。
生成AIの評価
[[生成AI・LLM]] は正解が1つに決まらないため、分類の指標だけでは測れません。実務では公開ベンチマークのスコア、人手による採点、別のLLMに採点させる方式、[[ハルシネーション]] の発生率などを組み合わせます。[[ファインチューニング]] の効果も、こうした指標を前後で比較して初めて確認できます。
初学者向けポイント
- 指標は1つだけ見ない。正解率・適合率・再現率をセットで確認する
- 何もしないベースラインと比べて、本当に改善しているか見る
- 評価に使ったデータを学習に混ぜない。混ざるとスコアが不当に上がる
関連技術とのつながり
- [[機械学習の基礎]] — 学習したモデルの良し悪しを判断する工程が評価
- [[過学習と汎化]] — 評価によって初めて過学習に気づける
- [[ファインチューニング]] — 改善したかどうかは指標の比較で確認する
- [[ハルシネーション]] — 生成AIでは事実性が重要な評価軸になる
- [[LLMアプリの評価とテスト]] — 評価セットを作りCIで回帰を検知する実践編
- [[推論パラメータと出力のばらつき]] — 出力が毎回変わるため1回の比較では測れない
Q: 1000人に1人しか陽性がいないデータで「全員陰性」と答えるモデルの評価として正しいのはどれ?
- [ ] 正解率が低いので使えないと分かる
- [x] 正解率は非常に高くなるが、再現率は0で役に立たない
- [ ] 適合率が100%なので優秀なモデルといえる
解説: 偏ったデータでは正解率が高く出ます。陽性を1件も拾えていないため再現率で問題が露呈します。
Q: 「陽性と予測したもののうち、本当に陽性だった割合」を表す指標はどれ?
- [x] 適合率(Precision)
- [ ] 再現率(Recall)
- [ ] 正解率(Accuracy)
解説: 予測を分母にするのが適合率、実際の陽性を分母にするのが再現率です。
Q: テストデータの使い方として適切なのはどれ?
- [ ] 調整のたびに何度も使ってスコアを上げる
- [x] 最後の性能確認に使い、学習や調整には使わない
- [ ] 訓練データと混ぜて学習量を増やす
解説: テストデータは本番試験にあたります。調整に使い回すとそのデータ専用のモデルになってしまいます。