布萊爾分數損失#

sklearn.metrics.brier_score_loss(y_true, y_proba=None, *, sample_weight=None, pos_label=None, y_prob='deprecated')[原始碼]#

計算布萊爾分數損失。

布萊爾分數損失越小越好,因此命名為「損失」。布萊爾分數測量預測機率與實際結果之間的均方差。布萊爾分數的值始終介於 0 和 1 之間,因為這是預測機率(必須介於 0 和 1 之間)與實際結果(只能取 0 和 1 的值)之間的最大可能差異。它可以分解為精煉損失和校準損失的總和。

布萊爾分數適用於可以構造為真或假的二元和分類結果,但不適用於可以取三個或更多值的序數變數(這是因為布萊爾分數假設所有可能的結果彼此「距離」相等)。哪個標籤被認為是正標籤由參數 pos_label 控制,除非 y_true 全部為 0 或全部為 -1,否則預設為較大的標籤,在這種情況下,pos_label 預設為 1。

使用者指南中閱讀更多資訊。

參數:
y_true形狀為 (n_samples,) 的類陣列

真實目標。

y_proba形狀為 (n_samples,) 的類陣列

正類的機率。

sample_weight形狀為 (n_samples,) 的類陣列,預設值為 None

樣本權重。

pos_labelint、float、bool 或 str,預設值為 None

正類的標籤。pos_label 將以下列方式推斷

  • 如果 y_true 在 {-1, 1} 或 {0, 1} 中,則 pos_label 預設為 1;

  • 否則,如果 y_true 包含字串,則會引發錯誤,並且應明確指定 pos_label

  • 否則,pos_label 預設為較大的標籤,即 np.unique(y_true)[-1]

y_prob形狀為 (n_samples,) 的類陣列

正類的機率。

自 1.5 版起已棄用:y_prob 已棄用,將在 1.7 版中移除。請改用 y_proba

回傳值:
scorefloat

布萊爾分數損失。

參考文獻

範例

>>> import numpy as np
>>> from sklearn.metrics import brier_score_loss
>>> y_true = np.array([0, 1, 1, 0])
>>> y_true_categorical = np.array(["spam", "ham", "ham", "spam"])
>>> y_prob = np.array([0.1, 0.9, 0.8, 0.3])
>>> brier_score_loss(y_true, y_prob)
np.float64(0.037...)
>>> brier_score_loss(y_true, 1-y_prob, pos_label=0)
np.float64(0.037...)
>>> brier_score_loss(y_true_categorical, y_prob, pos_label="ham")
np.float64(0.037...)
>>> brier_score_loss(y_true, np.array(y_prob) > 0.5)
np.float64(0.0)