数据分布如何影响模型性能?

数据挖掘 机器学习 统计数据 预处理
2021-09-22 17:55:30

我正在研究房价:高级回归技术数据集。我正在浏览一些内核,注意到许多人转换SalePricelog(SalePrice)如下所示:

在此处输入图像描述

在此处输入图像描述

我可以看到进行对数转换减少了数据的偏度并使其更正常。但是,我想知道它会提高我模型的性能还是以任何方式有用。如果是那么目标变量的正态分布怎么是催化剂呢?

2个回答

好问题。你的解释是足够的。使用对数函数可以减少目标变量的偏度。为什么这很重要?

通过对数函数转换您的目标会使您的目标线性化这对于许多期望线性目标的模型很有用。Scikit-Learn 有一个页面描述了这种现象:https ://scikit-learn.org/stable/auto_examples/compose/plot_transformed_target.html

需要注意的重要事项

如果您在训练之前修改目标,则应在模型末尾应用逆变换来计算“最终”预测。这样,您的绩效指标可以具有可比性。


直观地说,假设您有一个非常幼稚的模型,无论输入如何,它都会返回平均目标。如果您的目标有偏差,则意味着您将在大多数预测中低于/超出预期。因此,您的误差范围会更大,这会使平均绝对或相对误差 (MAE/MSE) 等分数变差。通过标准化你的目标,你可以减少你的错误范围,最终应该直接改进你的模型。

嗯......有很多方面可以回答这个问题(就像瓦伦丁的回答...... +1!)因为机器学习和数据挖掘通常与分布有关。我只提一些我首先想到的。

  • 一些模型假设高斯分布,例如 K-means。想象一下,您想在没有对数变换的情况下对这些数据应用 K-means。K-means 对原始特征有很多困难,但对数变换使其非常适合 K-means,因为“均值”更能代表高斯分布中的样本,而不是偏态分布的样本。
  • 一些统计分析技术也假设高斯性。ANOVA 最适用于(实际上设计用于)正态分布的数据(特别是在小样本群体中)。原因很简单,它主要处理均值和样本方差来确定样本总体的“中心”和“变异”,并且在高斯分布中最有意义。
  • 总而言之,调整特征的计算比倾斜特征更稳健。偏斜特征的范围不均匀,如果它们的范围很大(如您的示例),这尤其是一个问题。调整后的(工程化的)特征不一定会变成高斯特征,而是具有更小、更均匀的范围。