提高对输入高度可变/敏感的连续值的准确性的好方法?

数据挖掘 机器学习 预测建模 线性回归 准确性
2021-09-19 02:42:41

我正在尝试使用各种算法和特征工程技术来预测连续的“Y”变量。我的问题是 Y 非常多变,并且我在准确性上达到了渐近线。

这是我的特征变量的结构(交换了变量名

螺丝宽度 (mm) 螺丝高度 (mm) 螺丝角度(度) 螺丝类型 螺丝材质 车型 ID 车龄(年)
0.53 0.24 43 吊环螺栓 1 3

我的目标变量如下:

无螺丝速度 带螺丝的速度
24 29

我将其合并为单个变量 Y:

速度三角洲
5

Delta 的范围可以从 -2000 开始。到 165,000。请注意我再次交换了变量名,所以我实际上并没有预测速度。

目前我的 R2 分数是 0.9,平均预测错误率为 25%。我想降到15%

到目前为止我已经尝试过:

  1. 约束当前回归器选择的变量的输入和敏感性分析

有一段时间我试过:

  1. 拆分数据(例如在螺钉宽度 < 0.5 mm 上运行)
  2. 在拆分数据上构建模型
  3. 记录新的 R2 分数/平均误差

令我惊讶的是,导致巨大差异的不是一个变量或该变量的范围,因为重复这个实验给了我类似的结果。例如,对变量进行大量过滤并重复步骤 1-3 给了我如下结果:

在此处输入图像描述

  1. 使用不同的回归器来预测单个连续变量

我尝试使用简单的线性回归器、MLP 回归器、梯度提升和随机森林。我没有过多地使用每个回归器的参数,并且不确定这是否是我的失败。目前,一个 RandomForestRegressor 给了我最好的结果,但每个回归量都收敛在一个相似的范围内。

  1. 简单的特征工程:

我尝试使用 OHE 处理非数值变量,Log Transforming the Data。差异很明显,但仍然很小。

  1. 运行更多数据

我有接近 250,000 次模拟(或行),并且在使用我部署的策略/算法进行 150,000 次模拟后,以 25% 的准确度达到了一点渐近线。


摘要:我需要有关如何解决此问题的建议。我是否只是继续随机尝试方法/操纵数据,直到出现问题。或者是否有更好的途径来获得更高的准确性?

我没有尝试过什么?

2个回答

将差值(即 speed1-speed2)作为目标变量有效地消除了任何低频可变性,并且仅针对高频可变性,甚至噪声

一种方法是将(高度可变的)目标变量分箱到固定范围的箱中,并将每个箱的中点(或任何其他固定点)作为新的目标(稳定)变量。这将减少一点,甚至很多的可变性(和噪音)。然后可以对新的稳定目标变量使用任何回归算法,结果很可能会更好(当然取决于箱的数量,箱越多可变性越大,箱越少可变性越少,但可能存在一些平衡点)。

一种选择是将 y / 目标变量转换为更像高斯分布,最常见的转换是对数和分位数转换。高斯变换通常会增加模型拟合统计量。