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)