回归:如何处理连续目标变量中的正偏度

数据挖掘 回归 预测建模 分配
2021-10-14 19:47:45

我正在研究回归问题。我的目标是“学习”一个连续目标的分布是的尽可能地做出预测。我的模型看起来像:

是的一世=βX一世+一世.

  • 是的是右偏(正偏度),由正整数和负整数组成。

  • X是一个矩阵,包含具有浮点数和整数值的列。还有大量的指标(虚拟变量)

这些是我的结果。这里我比较一下实际的分布是的一世(真相,蓝色)和预测的是的一世^(预测,黄色):

在此处输入图像描述

从图中可以看出,我倾向于低估较低范围内的值(大约为零),而我高估了 200 到 500 之间的值。

我想改进我的估计,特别是在 0 到 600 左右的范围内,大多数观察结果都在这里。我想知道我的选择是什么?

请注意,整个数据范围都与我相关,因此我不能简单地修剪数据/分布。

到目前为止,我没有进行特征工程、缩放等。我尝试的是许多不同的估计方法,例如线性回归 (OLS)、具有局部回归和回归样条的广义模型 (GAM)、套索/岭、Keras 神经网络、使用 LightGBM 和 Catboost 进行增强。它们都产生了非常相似的结果(如上图所示)。

编辑[2019-12-28]:

对我最初的问题的简短跟进:我已将逻辑转换应用于我的是的并估计了一个 GAM 模型。不幸的是,结果并不比未转换的数据好多少。MAE略有下降,但总体拟合还是不太好(见下图,“平”曲线为实际值,尖曲线为重新变换后的预测值)。

我更喜欢坚持线性模型(OLS、GAM、Lasso),因为增强或神经网络并没有提供比线性模型更好的结果。

在此处输入图像描述

3个回答

这场比赛的问题非常相似。无需我复制粘贴一些有趣的想法,只需查看讨论中的获胜者记录即可。

一些要点

  • 添加特征值的计数作为新特征。这是 LightGBM 看不到的信息
  • 检查训练集和测试集的所有特征的唯一值计数。
  • 模型堆叠几乎总是比单个模型更好(在生产中忘记它)
  • 检查特征独立性。对于本次比赛,特征都是不相关的(朴素贝叶斯效果很好)
  • 等等...

最后,独立于本次比赛的一般说明:这完全是关于正确的数据表示,而不是关于模型。如果你能以正确的方式表示数据,那么基本的线性回归就会得分很高。我会对 200 到 200 和 500 到 infty 范围内的残差值进行一些 serios 数据分析,看看是什么让你的模型感到困惑,显然有一些相互矛盾的特征会迫使你的模型在应该很高的时候预测低。也许这对你来说并不令人满意,但要真正解决这个问题,你必须找到让他感到困惑的地方,以便他在应该高时预测高,然后设计特征/数据表示,以便他可以区分这一点。

您可以将平方或平方根变换应用于y并检查哪个变换y没有倾斜。

过拟合的解决方法:

  • 通过减少训练数据中的属性数量或通过约束模型(正则化)来简化模型。
  • 收集更多训练数据
  • 减少数据中的噪音(修复数据错误,去除异常值)

拟合不足的解决方法:

  • 特征工程
  • 减少模型中的约束。

为了做出好的预测,你的训练数据必须包含足够的相关特征、高质量的数据(没有异常值、噪声和错误)。