【问题标题】:Optimize Relative Error in regression problems优化回归问题中的相对误差
【发布时间】:2020-10-08 22:11:43
【问题描述】:

在谈论回归问题时,RMSE(均方根误差)通常用作评估指标。并且还用作线性回归中的损失函数(更重要的是,它相当于最大似然法,考虑到输出的分布服从正态分布)。

在现实生活中的问题中,我发现 MAPE(平均绝对百分比误差)可能更有意义。例如,在预测房价时,我们对相对误差更感兴趣。因为如果房子的价格在 100k$ 或 1M$ 左右,100k$ 的差异是不一样的。

在为房价预测问题创建线性回归时,我发现了下图

  • x 轴:价格的实际价值
  • y 轴:相对误差 = (prediction-real_value) / real_value

  • 该算法在实际价格较低时预测相对较高的价格
  • 算法会在实际价格较高时预测相对较低的价格。

我们可以做什么样的变换,以便找到一个更好的算法,具有更均匀的相对误差。

【问题讨论】:

    标签: python regression linear-regression


    【解决方案1】:

    当然,获得最大似然估计的一种方法是梯度下降。在这个过程中,预测值和实际值之间的误差被确定,并且这个误差相对于模型的每个可变参数的梯度被找到。然后,根据计算的梯度对这些参数进行微调,以使误差值最小化。重复此过程,直到误差收敛到适当的低值。

    这种方法的优点在于您的错误或损失函数在定义它时具有很大的灵活性。例如,经常使用 L2 (MSE) norm,但您也可以使用 L1 norm、smooth-L1 norm 或任何其他函数。

    产生 MAPE 的误差函数只需将每个误差项除以真实值的大小,从而产生相对于值大小的误差。然后,可以针对每个参数计算该误差的梯度,并且可以像以前一样执行梯度下降。

    如果有任何不清楚或需要更多解释的部分,请发表评论!

    【讨论】:

    • 谢谢德里克。关于该图,有什么建议可以使相对误差是均匀的?我尝试了价格的对数转换,但没有成功。
    • 正如您在上面的问题中所说,您对平均百分比误差感兴趣。因此,您所要做的就是计算用于拟合模型的每个数据点的均方根误差,然后将每个计算出的 RMS 误差除以正确的值(从而对误差进行归一化)。
    猜你喜欢
    • 2013-08-20
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 2019-11-21
    • 2018-04-27
    • 2019-10-07
    • 1970-01-01
    相关资源
    最近更新 更多