一直在做分类问题,看了很多人的代码和教程。我注意到的一件事是,许多人采用np.log
or等log
连续变量。loan_amount
applicant_income
我只是想了解它背后的原因。它是否有助于提高我们的模型预测准确性。它是强制性的吗?或者它背后有什么逻辑吗?
如果可能,请提供一些解释。谢谢你。
一直在做分类问题,看了很多人的代码和教程。我注意到的一件事是,许多人采用np.log
or等log
连续变量。loan_amount
applicant_income
我只是想了解它背后的原因。它是否有助于提高我们的模型预测准确性。它是强制性的吗?或者它背后有什么逻辑吗?
如果可能,请提供一些解释。谢谢你。
这是在变量跨越几个数量级时完成的。收入就是一个典型的例子:它的分布是“幂律”,即绝大多数收入小,极少数收入大。
由于对数的数学性质,这种类型的“肥尾”分布以对数尺度进行研究:
这意味着
和
这改变了巨大的差异
主要是因为分布不均。对数自然会减小变量的动态范围,因此可以保留差异,而比例不会显着偏斜。想象一下,有些人获得了 100,000,000 的贷款,有些人获得了 10000 和一些 0。任何特征缩放都可能使 0 和 10000 彼此如此接近,因为无论如何最大的数字都会推动边界。对数解决了这个问题。
除了其他答案,服用的另一个副作用 是如果 ,再次例如贷款或收入,基本上任何不能变成负数的东西,域变成 .
如果您使用的模型基于关于 . 例如线性模型中的正态假设。
对数变换有用的另一个原因对比率数据起作用,因为log(A/B) = -log(B/A)
. 如果您在原始比例上绘制比率分布,则您的点落在范围内(0, Inf)
。任何小于 1 的比率都将被压缩到绘图的一小块区域,此外,如果将比率翻转为(B/A)
而不是 ,绘图看起来会完全不同(A/B)
。如果您在对数刻度上执行此操作,则范围现在为(-Inf, +Inf)
,这意味着小于 1 和大于 1 的比率分布更均匀。如果您决定翻转比率,只需将图翻转到 0 左右,否则看起来完全相同。在对数刻度上,是否将比率显示为 并不重要1/10 or 10/1
,这在没有明显选择应该是什么时很有用。