Brier得分是一种衡量概率预测准确性的指标。它通过计算预测概率与实际结果之间的均方差来评估模型的性能。Brier得分的取值范围在0到1之间,其中0表示完美的预测,1表示最差的预测。这个得分可以分解为精化损失和校准损失两部分。
Brier得分适用于二元和分类结果,这些结果可以被结构化为真或假。然而,它不适用于序数变量,这些变量可以取三个或更多的值,因为Brier得分假设所有可能的结果都与彼此等距。通过参数pos_label
可以控制哪个标签被认为是正标签,默认情况下,如果y_true
中的值全为0或全为-1,则pos_label
默认为1;否则,默认为较大的标签。
在Python的sklearn库中,可以使用brier_score_loss
函数来计算Brier得分。这个函数接受真实的目标值y_true
和预测的正类概率y_proba
作为输入,并返回一个浮点数表示的Brier得分。此外,还可以通过sample_weight
参数为不同的样本赋予不同的权重。
需要注意的是,从版本1.5开始,y_prob
参数已被弃用,并将在1.7版本中移除。因此,建议使用y_proba
参数代替。下面是一个使用brier_score_loss
函数的示例代码:
import numpy as np
from sklearn.metrics import brier_score_loss
# 真实目标值
y_true = np.array([0, 1, 1, 0])
# 预测的正类概率
y_proba = np.array([0.1, 0.9, 0.8, 0.3])
# 计算Brier得分
score = brier_score_loss(y_true, y_proba)
print(score) # 输出Brier得分
在上面的代码中,首先导入了必要的库,然后定义了真实目标值和预测的正类概率。接着,使用brier_score_loss
函数计算了Brier得分,并打印了结果。这个得分可以帮助评估模型的预测准确性。
Brier得分的计算公式如下:首先,对于每个样本,计算预测概率与实际结果之间的平方差。然后,对所有样本的这些平方差求均值,得到Brier得分。这个得分越小,表示模型的预测准确性越高。
在实际应用中,Brier得分可以用于比较不同模型的性能,或者用于模型选择和超参数调优。例如,如果有两个模型A和B,可以通过计算它们在相同数据集上的Brier得分来比较它们的预测准确性。得分较低的模型通常被认为具有更好的预测性能。