如何使用对数转换?

数据挖掘 回归 特征工程 特征缩放 数据分析
2022-02-21 19:14:24

我正在开始我的数据科学之旅,我遇到了一个让我有点困惑的挑战。我有一个特征很少的集合和一个原始分布高度偏斜的目标变量。

原始的

我已经读过可以使用对数转换来规范化目标变量(以 $ 为单位的损失),从而提高准确性。

记录 y

当我使用“y_raw”训练我的模型时,使用 MAE 时出现 306k 的错误。当我进行对数转换时 y = y.transform(np.log),我得到大约 2 的 MAE 精度(我想是对数转换单位?),即 e^2 = 7.39 (y_raw)。这是从 306k 到仅 7.39 ($) 的显着下降(或者我弄错了吗?),所以我对此有点怀疑。

所以这是我的问题:1)我是否正确地认为错误率从 306k 下降到只有 7.39 是真实的并且是有效的?2)我如何从那里做出预测?如果我向我的模型提供一个样本,接收一个对数转换的输出,假设它返回了 y_log = 10 的预测。然后我是否只需通过放置 e^10 = 22,026.5 来使用它的倒数,这将是我的最终预测吗?

2个回答

获取日志不会产生正态分布的目标;如果目标是对数正态分布的,并且你在那里有一些正常的东西,它会倾向于,不完全。但是,这种分布实际上并不重要。

记录日志的作用是改变您在拟合回归量时如何出现错误的模型。你现在说目标值是eP+ϵ在哪里P是你的模型的预测和ϵ是高斯噪声。或者:ePeϵ. 该部分直接与您的回归器中的假设相互作用。

所以你会发现,平均而言,预测是错误的 7.39 倍,而不是 +/- 7.39 美元。

您真正想做的是根据实际目标值评估 MAE 与eP. 您可能有一个更好的模型,但没有那么好。

当然,您的错误率会降低。请记住,您对 MAE 值的更改可能来自原始变量的比例和由对数转换的变量不一样,并且均值与比例相关

关于你的第二个问题,就是这样!

如果您想比较对数的使用(或不使用)。您可以使用原始模型,并在计算 MAE 时将对数应用于预测值和实际值。然后,您将能够在 MAE 方面比较这两个模型。

检查在应用对数之前你有几个接近 0 的值,几乎可以肯定你的模型学会了以可接受的精度输出接近 0 的值。应用对数后,您可以让您的数据更加分散(差异“更容易”看到)。