Brier Score
Brier Score が確率的予測の精度、キャリブレーション、分解能をどのように測定するかを学びます。数式、例、関連指標、および YOLO26 評価ワークフローについて説明します。
Brier Score は、予測された確率と実際に発生した結果との間の二乗差を平均化することで、確率的予測の精度を測定します。スコアが 0 の場合は完璧な予測を表し、値が大きいほど、予測の精度が低い、較正が不十分である、あるいはその両方であることを示します。最終的なクラスラベルのみに基づくメトリクスとは異なり、Brier Score は機械学習モデルが妥当な確率を割り当てているかどうかを評価します。
Brier Score の仕組み#
二値分類の場合、イベントが発生した場合は結果を 1、発生しなかった場合は 0 としてエンコードします。すべてのサンプルについて (predicted probability - outcome) squared を計算し、それらの値の平均を求めます。
あるモデルが画像に不具合が含まれている確率を 80% と予測した場合を想定します。
- 不具合が存在する場合、二乗誤差は
(0.8 - 1) squared、つまり 0.04 です。 - 不具合が存在しない場合、誤差は
(0.8 - 0) squared、つまり 0.64 です。
2番目の予測はモデルの確信を持った誤りのため、はるかに大きなペナルティを受けます。このため、Brier Score は厳密に妥当なスコアリングルールとなります。つまり、予測担当者は正直な確率見積もりを報告することで、平均して最良のスコアを得ることができます。scikit-learn Brier score loss documentation に標準的な実装が記載されています。
二値問題の場合、一般的な範囲は 0 から 1 です。多クラスバージョンではすべてのクラスにわたって二乗誤差が合計されるため、2 で割らない限り範囲が 0 から 2 になる場合があります。yardstick’s multiclass Brier Score の再スケーリングアプローチなど、ライブラリによってスケーリング規則が異なるため、比較には同じ実装と設定を使用する必要があります。
良好な Brier Score の解釈#
低い方が優れていますが、「良好な」Brier Score に対する普遍的な閾値はありません。その意味は、イベントの発生率、データセットの難易度、および妥当なベースラインの品質によって異なります。
たとえば、イベントがケースの 10% で発生する場合、常に 0.10 と予測するモデルの期待スコアは 0.09 になります。有用なモデルは、一般的にその発生率ベースのベースラインを上回る必要があります。評価には代表的な検証データを使用し、重要なクラス、運用環境、またはデモグラフィックグループごとに個別にレポートする必要があります。
スコアには、関連する 2 つの特性が反映されます。
- 較正 (Calibration): 0.80 という予測は、約 80% の確率で正しい必要があります。確率較正手法や信頼性ダイアグラムを使用すると、系統的な過剰自信または過小自信を明らかにできます。
- 解像度 (Resolution): 予測は、起こりそうなイベントと起こりそうにないイベントを意味のある形で区別する必要があります。ベースレートを常に予測するモデルは全体的に較正されている可能性がありますが、ケース固有の情報はほとんど提供しません。
単一の集計スコアでは、局所的な問題が隠れてしまうことがあります。較正曲線、サブグループ分析、およびより広範な不確実性定量化を組み合わせて使用してください。
Brier Score と関連メトリクスの比較#
-
精度 (Accuracy)、適合率 (Precision)、再現率 (Recall): これらは、閾値を適用した後の離散的な決定を評価します。Brier Score は閾値処理前の確率を評価し、0.51 という慎重な正しい予測と 0.99 という確信を持った予測を区別します。
-
ROC AUC: AUC はランキングを測定します。つまり、ポジティブなケースがネガティブなケースよりも高いスコアを受け取る傾向があるかどうかを測定します。モデルはケースを正しくランク付けしながら、較正が不十分な確率を生成する可能性があります。
-
対数損失 (Log loss): どちらも妥当なスコアリングルールですが、対数損失は極端に確信を持った間違いに対してより厳しくペナルティを課します。Brier Score の二乗誤差解釈は、一般的に説明しやすいです。
-
信頼度 (Confidence): 「信頼度」とラベル付けされたモデル出力は、自動的に較正されたイベント確率ではありません。Brier Score を適用する前に、その意味を検証する必要があります。
実社会での応用#
医療画像トリアージにおいて、画像分類モデルはスキャンに異常が含まれている確率を推論する場合があります。Brier Score は、それらの確率が観測された診断と一致しているかどうかを評価できます。これは、紹介ルールが 90% の見積もりと 55% の見積もりを区別する場合に重要になります。
製造業の目視検査では、モデルが製品に不具合がある確率を推論する場合があります。適切に較正された予測はリスクベースのルーティングをサポートします。高確率のケースは拒否し、不確実なケースは人間の検査に送り、低確率のケースは受け入れることができます。較正が不十分な場合、不具合の流出や不要な廃棄につながる可能性があります。NIST AI Risk Management Framework Core では、不確実性の測定とデプロイされたシステムのパフォーマンスの監視が強調されています。
実践的な評価ワークフロー#
以下の例では、モデルのスコアを計算し、定数発生率ベースラインと比較します。
from sklearn.metrics import brier_score_loss
# Binary outcomes and predicted event probabilities
y_true = [0, 1, 1, 0, 1, 0]
y_probability = [0.10, 0.75, 0.60, 0.30, 0.90, 0.40]
model_score = brier_score_loss(y_true, y_probability)
# Compare against always predicting the observed event rate
event_rate = sum(y_true) / len(y_true)
baseline_probability = [event_rate] * len(y_true)
baseline_score = brier_score_loss(y_true, baseline_probability)
print(f"Model: {model_score:.3f}")
print(f"Baseline: {baseline_score:.3f}")コンピュータビジョンの場合、Ultralytics YOLO26 の分類予測では、予測モード (Predict mode) を介してクラス確率が公開されます。スコアを計算する前に、ラベル付けされたホールドアウト画像でこれらの確率を収集します。タスク固有のメトリクスの代わりとして扱うのではなく、結果を Ultralytics 検証モード (Ultralytics validation mode) および YOLO パフォーマンスメトリクスガイド (YOLO performance metrics guide) と組み合わせて使用します。
デプロイ後、新しい正解ラベル (ground-truth labels) が利用可能になったときにスコアを再計算します。Ultralytics プラットフォームのデプロイ監視 (Ultralytics Platform deployment monitoring) は周囲の運用ワークフローをサポートでき、一方、定期的なラベル付けされた評価はデータドリフトによって引き起こされる較正の変化を検出するのに役立ちます。






