平均分位数损失#

sklearn.metrics.mean_pinball_loss(y_true, y_pred, *, sample_weight=None, alpha=0.5, multioutput='uniform_average')[源代码]#

分位数回归的Pinball损失。

更多信息请阅读用户指南

参数:
y_truearray-like,形状为 (n_samples,) 或 (n_samples, n_outputs)

真实目标值。

y_predarray-like,形状为 (n_samples,) 或 (n_samples, n_outputs)

预测的目标值。

sample_weightarray-like,形状为 (n_samples,),默认为 None

样本权重。

alpha浮点数,Pinball损失的斜率,默认为 0.5

alpha=0.5时,此损失等效于平均绝对误差alpha=0.95时,由第95百分位数的估计量最小化。

multioutput{'raw_values', 'uniform_average'} 或形状为 (n_outputs,) 的 array-like,默认为 'uniform_average'

定义多个输出值的聚合方式。Array-like 值定义用于平均误差的权重。

‘raw_values’

对于多输出输入,返回完整的误差集。

‘uniform_average’

所有输出的误差都以统一权重进行平均。

返回:
loss浮点数或浮点数 ndarray

如果 multioutput 为 'raw_values',则分别为每个输出返回平均绝对误差。如果 multioutput 为 'uniform_average' 或一个权重 ndarray,则返回所有输出误差的加权平均值。

Pinball 损失输出为非负浮点数。最佳值为 0.0。

示例

>>> from sklearn.metrics import mean_pinball_loss
>>> y_true = [1, 2, 3]
>>> mean_pinball_loss(y_true, [0, 2, 3], alpha=0.1)
np.float64(0.03...)
>>> mean_pinball_loss(y_true, [1, 2, 4], alpha=0.1)
np.float64(0.3...)
>>> mean_pinball_loss(y_true, [0, 2, 3], alpha=0.9)
np.float64(0.3...)
>>> mean_pinball_loss(y_true, [1, 2, 4], alpha=0.9)
np.float64(0.03...)
>>> mean_pinball_loss(y_true, y_true, alpha=0.1)
np.float64(0.0)
>>> mean_pinball_loss(y_true, y_true, alpha=0.9)
np.float64(0.0)