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应用示例