D2分位数得分#
- sklearn.metrics.d2_pinball_score(y_true, y_pred, *, sample_weight=None, alpha=0.5, multioutput='uniform_average')[source]#
\(D^2\) 回归评分函数,解释的宾巴尔损失分数。
最佳分数为 1.0,也可能为负值(因为模型可以任意地更差)。一个始终使用
y_true
的经验α分位数作为常数预测的模型,忽略输入特征,其\(D^2\)分数为 0.0。在用户指南中了解更多信息。
版本 1.1 中新增。
- 参数:
- y_truearray-like of shape (n_samples,) or (n_samples, n_outputs)
真实目标值。
- y_predarray-like of shape (n_samples,) or (n_samples, n_outputs)
估计的目标值。
- sample_weightarray-like of shape (n_samples,), default=None
样本权重。
- alphafloat, default=0.5
宾巴尔偏差的斜率。它决定了宾巴尔偏差和D2最优的分位数水平α。默认值
alpha=0.5
等效于d2_absolute_error_score
。- multioutput{‘raw_values’, ‘uniform_average’} or array-like of shape (n_outputs,), default=’uniform_average’
定义多个输出值的聚合方式。类似数组的值定义用于平均分数的权重。
- ‘raw_values’
在多输出输入的情况下返回完整的误差集。
- ‘uniform_average’
所有输出的分数都以统一的权重进行平均。
- 返回值:
- scorefloat 或 floats 的 ndarray
具有宾巴尔偏差的\(D^2\)分数,如果
multioutput='raw_values'
,则为分数的 ndarray。
备注
与\(R^2\)一样,\(D^2\)分数可能为负值(它实际上不必是量D的平方)。
对于单个点,此指标没有明确定义,如果n_samples小于2,则将返回NaN值。
参考文献
[2]Hastie, Trevor J.,Robert Tibshirani 和 Martin J. Wainwright。“具有稀疏性的统计学习:Lasso 及其推广。” (2015)。 https://hastie.su.domains/StatLearnSparsity/
示例
>>> from sklearn.metrics import d2_pinball_score >>> y_true = [1, 2, 3] >>> y_pred = [1, 3, 3] >>> d2_pinball_score(y_true, y_pred) np.float64(0.5) >>> d2_pinball_score(y_true, y_pred, alpha=0.9) np.float64(0.772...) >>> d2_pinball_score(y_true, y_pred, alpha=0.1) np.float64(-1.045...) >>> d2_pinball_score(y_true, y_true, alpha=0.1) np.float64(1.0)