Brier 评分损失#
- sklearn.metrics.brier_score_loss(y_true, y_proba=None, *, sample_weight=None, pos_label=None, y_prob='deprecated')[source]#
计算 Brier 评分损失。
Brier评分损失越小越好,因此命名为“损失”。Brier评分衡量的是预测概率与实际结果之间的均方差。Brier评分的值始终介于零和一之间,因为这是预测概率(必须介于零和一之间)与实际结果(只能取0和1的值)之间可能的最大差异。它可以分解为精细化损失和校准损失之和。
Brier评分适用于可以构建为真或假的二元和分类结果,但不适用于可以取三个或更多值的序数变量(这是因为Brier评分假设所有可能的结果彼此之间“距离”相等)。哪个标签被认为是正标签由参数
pos_label
控制,除非y_true
全为0或全为-1,否则默认为较大的标签,在这种情况下pos_label
默认为1。在用户指南中了解更多信息。
- 参数:
- y_true形状为 (n_samples,) 的类数组
真实目标。
- y_proba形状为 (n_samples,) 的类数组
正类的概率。
- sample_weight形状为 (n_samples,) 的类数组,默认为None
样本权重。
- pos_label整数、浮点数、布尔值或字符串,默认为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
。
- 返回:
- score浮点数
Brier评分损失。
参考文献
[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)