如何设计和实现回归的不对称损失函数?

机器算法验证 回归 错误 损失函数
2022-01-16 04:24:40

问题

在回归中,通常计算样本 的均方误差(MSE):

MSE=1ni=1n(g(xi)g^(xi))2
来衡量一个预测器的质量。

现在我正在研究一个回归问题,其目标是预测客户愿意为给定许多数字特征的产品支付的价格。如果预测价格太高,没有客户会购买产品,但货币损失很低,因为价格可以简单地降低。当然不能太高,否则产品可能会长期买不到。另一方面,如果预测价格太低,产品将被快速购买而没有机会调整价格。

换句话说,学习算法应该预测稍高的价格,如果有必要可以降低价格,而不是低估会立即导致金钱损失的真实价格。

问题

你将如何设计一个包含这种成本不对称的错误度量?


可能的解决方案

定义非对称损失函数的一种方法是简单地乘以权重:

1ni=1n|α1(g(xi)g^(xi))<0|(g(xi)g^(xi))2
α(0,1)是我们可以调整以改变不对称程度的参数。我在这里找到了。这似乎是最直接的做法,同时保持二次损失。

2个回答

正如上面评论中提到的,分位数回归使用非对称损失函数(线性但正负误差的斜率不同)。分位数回归的二次(平方损失)模拟是期望回归。

您可以谷歌分位数回归作为参考。对于期望回归,请参阅 R 包expectreg和参考手册中的参考资料。

这种不等权重通常在具有两个类别的分类问题中完成。可以使用损失函数修改贝叶斯规则,该损失函数对一个错误的损失权重高于另一个错误。这将导致产生不相等错误率的规则。

在回归中,当然可以构造一个权重函数,例如加权平方和,它会给负误差一些权重,给正误差一个更高的权重。这将类似于加权最小二乘法,但略有不同,因为加权最小二乘法适用于误差方差在预测变量的可能值空间上不是恒定的问题。在这种情况下,已知误差方差较小的点的权重较高,而已知误差方差较大的点的权重较高。这当然会导致回归参数的值与 OLS 给您的值不同。