d2_pinball_score#
- sklearn.metrics.d2_pinball_score(y_true, y_pred, *, sample_weight=None, alpha=0.5, multioutput='uniform_average')[source]#
\(D^2\) 回归评分函数,解释了弹子损失(pinball loss)的比例。
最佳可能分数为 1.0,它也可以是负数(因为模型可能任意地更差)。一个模型如果总是使用
y_true
的经验 alpha 分位数作为常数预测,而忽略输入特征,则其 \(D^2\) 分数将为 0.0。在用户指南中阅读更多内容。
在 1.1 版本中新增。
- 参数:
- y_true形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组
真实(正确)目标值。
- y_pred形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组
估计目标值。
- sample_weight形状为 (n_samples,) 的类数组,默认为 None
样本权重。
- alpha浮点数,默认为 0.5
弹子偏差的斜率。它决定了使弹子偏差和 D2 达到最优的分位数水平 alpha。默认值
alpha=0.5
等效于d2_absolute_error_score
。- multioutput{'raw_values', 'uniform_average'} 或形状为 (n_outputs,) 的类数组,默认为 'uniform_average'
定义多个输出值的聚合方式。类数组值定义了用于平均分数的权重。
- ‘raw_values’
在多输出输入情况下返回完整的误差集。
- ‘uniform_average’
所有输出的分数以统一权重平均。
- 返回:
- score浮点数或浮点数 ndarray
如果
multioutput='raw_values'
,则返回带有弹子偏差的 \(D^2\) 分数或分数 ndarray。
注意
与 \(R^2\) 类似,\(D^2\) 分数可能为负(它实际上不一定是 D 量的平方)。
此度量对于单个点未明确定义,如果 n_samples 小于两个,将返回 NaN 值。
参考文献
[1][2]引用 Hastie, Trevor J., Robert Tibshirani 和 Martin J. Wainwright 的等式 (3.11)。“Statistical Learning with Sparsity: The Lasso and Generalizations。” (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) 0.5 >>> d2_pinball_score(y_true, y_pred, alpha=0.9) 0.772... >>> d2_pinball_score(y_true, y_pred, alpha=0.1) -1.045... >>> d2_pinball_score(y_true, y_true, alpha=0.1) 1.0