予測はデータと仮定に基づく推定であり、結果の保証ではありません。観測を分類することと将来の値を予測することは別の課題です。
評価対象を定義する
対象集団、目的変数、予測期間、予定する判断を明確にします。スコアが適切に較正された確率とは限りません。独立した評価データを確保し、学習、前処理の適合、モデル選択には使用しません。
割合だけでなく誤りを読む
以下の架空例は閾値を固定しています。実際の陽性200件のうち検出したのは80件、見逃したのは120件です。正解率86%でも、陽性の大半を発見できたわけではありません。
| 実際の結果 | 陽性と予測 | 陰性と予測 |
|---|---|---|
| 実際に陽性 | 80 | 120 |
| 実際に陰性 | 20 | 780 |
| 指標 | 計算 | 値 |
|---|---|---|
| 適合率(precision) | 80 / (80 + 20) | 80 % |
| 再現率(recall) | 80 / (80 + 120) | 40 % |
| 正解率(accuracy) | (80 + 780) / 1000 | 86 % |
影響を考えて閾値を選ぶ
適合率は陽性予測のうち真の陽性の割合、再現率は実際の陽性のうち検出した割合です。閾値を変えると両指標が変わる場合があります。同じ集団で比較し、誤警報と見逃しのコストを検討します。
出典と確認
- Google — Classification: Accuracy, recall, precision
- scikit-learn — Probability calibration
- scikit-learn — Common pitfalls
予測を実際の運用時間順にテストする
運用予測では、決定時に利用可能な情報のみを使用する必要があります。ランダム分割は時系列データには適さない場合があります。予測能力を主張する前に、連続する期間をシミュレートし、特徴量バージョンを保持し、単純なベースラインと比較してください。
- 結果が判明した後にのみ判明する特徴量を除外する
- トレーニング期間よりも後の期間で評価する
- 予測期間に基づいて誤差を測定する。
優れたテスト結果が後になって失敗する理由は何か?
情報漏洩、人口変動、または時間的ずれによって結果が変わる可能性がある。データ可用性条件を再現し、展開後にエラーを監視する。
一次資料:scikit-learn — Cross-validation. 関連する方法:実践ガイドを読む.
