sklearn.metrics.brier_score_loss?

sklearn.metrics.brier_score_loss(y_true, y_prob, *, sample_weight=None, pos_label=None)

[源碼]

計算Brier分數。

Brier分數越小越好,因此命名為“loss”。在一組N個預測中的所有項目上,Brier分數測量(1)分配給項目i可能結果的預測概率與(2)實際結果之間的均方差。因此,一組預測的Brier分數越低,則對預測的校準就越好。請注意,Brier分數始終取0到1之間的值,因為這是預測概率(必須在0到1之間)和實際結果(只能取0到1)之間的最大可能差值。)。Brier loss由精制損失和校準損失組成。 Brier得分適用于可以構造為真或假的二進制和分類結果,但不適用于可以采用三個或更多值的序數變量(這是因為Brier分數假設所有可能的結果的彼此“距離”相等)。哪個標簽被視為肯定標簽是通過參數pos_label(默認值為1)控制的。請閱讀用戶指南中的更多內容。

參數 說明
y_true array, shape (n_samples,)
實際targets。
y_prob array, shape (n_samples,)
正類的概率。
sample_weight array-like of shape (n_samples,), default=None
樣本權重。
pos_label int or str, default=None
正向類別的標簽。除非y_true為全0或全為-1時pos_label默認為1;否則默認為更大的標簽。
返回值 說明
score float
Brier得分。

參考

1 Wikipedia entry for the Brier score.

示例

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

sklearn.metrics.brier_score_loss應用示例?