假设我为一些偏斜的数据分布执行DNN回归任务。现在,我使用平均绝对误差作为损失函数。

机器学习中的所有典型方法都在最大程度地减少平均损失,但是对于偏斜而言则不合适。从实用的角度来看,最好将中值损失降至最低。我认为一种方法是用一定的系数来惩罚重大损失。然后均值将接近中位数。但是,如何计算未知分布类型的系数呢?还有其他方法吗?您有什么建议?
(我正在使用tensorflow / keras)

最佳答案

只需在keras中使用均值绝对误差损失函数,而不是均方根即可。
平均绝对值几乎等于中位数,并且无论如何对于异常值或偏斜数据都将更可靠。您应该查看所有可能的keras损失:

https://keras.io/losses/

显然,您也可以创建自己的。
但是对于大多数数据集,凭经验证明,均方可以提高精度。因此,我建议至少在确定平均绝对值之前尝试两种方法。

关于machine-learning - 回归。优化中位数而不是均值以偏斜分布,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44561673/

10-12 19:52