布萊爾分數損失#
- 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
布萊爾分數損失。
參考文獻
[1]範例
>>> 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)