brier_score_loss#

sklearn.metrics.brier_score_loss(y_true, y_proba=None, *, sample_weight=None, pos_label=None, y_prob='deprecated')#

计算Brier分数损失。

Brier分数损失越小越好,因此命名为“损失”。Brier分数衡量预测概率与实际结果之间的均方差。Brier分数始终取值在零和一之间,因为这是预测概率(必须在零和一之间)与实际结果(只能取值0和1)之间的最大可能差异。它可以分解为细化损失和校准损失之和。

Brier分数适用于可以结构化为真或假的二元和分类结果,但不适用于可以取三个或更多值的序数变量(因为Brier分数假设所有可能的结果彼此之间是等距的)。哪个标签被视为正标签通过参数 pos_label 控制,默认情况下为较大的标签,除非 y_true 全为0或全为-1,在这种情况下, pos_label 默认为1。

更多信息请参阅 用户指南

Parameters:
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,)的类数组

正类的概率。

Deprecated since version 1.5: y_prob 已弃用,将在1.7中移除。请使用 y_proba 代替。

Returns:
scorefloat

Brier分数损失。

References

Examples

>>> 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)
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