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
[1]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