4.3.10
Brier Score
まとめ
- Brier Score は確率予測の平均二乗誤差を測るキャリブレーション指標です。
- 天気予報の確率を例に Brier Score と校正曲線の読み方を確認します。
- 確率の校正や Brier Skill Score と併用する際のポイントを整理します。
1. 定義 #
二値分類におけるブライアスコアは次式で表されます。
$$ \mathrm{Brier} = \frac{1}{n} \sum_{i=1}^{n} (p_i - y_i)^2 $$ここで \(p_i\) はモデルが出力した陽性確率、\(y_i\) は実際のラベル(0 または 1)です。多クラスでは各クラスに対して同様の誤差を求め、平均します。
2. Python 3.13 での計算と可視化 #
| |
以下のコードでは、乳がん診断データセットにロジスティック回帰を適用し、ブライアスコアと信頼度曲線を描画します。
| |

45 度線から外れているほど確率が過大・過小評価されているとわかる。
3. スコアの読み取り方 #
- 完全に正しい確率予測ではスコアが 0 になります。
- 常に 0.5 を返すモデルは、二値バランスで 0.25 を取るのが上限です。
- 値が小さいほど良く、確率を外し過ぎているモデルほどスコアが大きくなると覚えておきましょう。
4. キャリブレーション診断との併用 #
リライアビリティカーブ(信頼度曲線)は、予測確率をビンごとに平均し、実際の陽性率と比較した図です。
- 曲線が 45 度線より上 → 確率を控えめに出している(アンダーコンフィデント)。
- 曲線が 45 度線より下 → 確率を盛り過ぎている(オーバーコンフィデント)。
- CalibrationDisplay.from_predictions は等幅ビンでの可視化をサポートしており、ブライアスコアの変化と合わせて調整の効果を観察できます。 確率校正(Platt scaling や isotonic regression など)を適用した後に再度スコアと図を確認すると、キャリブレーション改善の有無が把握できます。
まとめ #
- ブライアスコアは確率予測の二乗誤差で、キャリブレーション評価に適した指標(小さいほど良い)。
- Python 3.13 + scikit-learn では rier_score_loss と信頼度曲線で簡単に診断可能。
- ROC-AUC や Precision/Recall などの閾値ベース評価と併用し、確率の正確さとランキング性能の両面からモデルを分析しよう。
閾値と Brier Score #
閾値に対する Brier Score の変化を確認できます。