处理历史数据漂移

数据挖掘 概念漂移
2022-02-14 12:30:14

我试图在工业环境中预测一个连续的目标。

我面临的问题是一些预测因素随着时间的推移而变化,例如机器中的压力增加了。这影响了其他一些预测因素,但并未影响我的目标。

例如(在 R 公式表示法中):

YU1目标取决于一些不可观察的变量 我观察到的变量之一取决于不可观察的变量和另一个观察到的变量。因此有助于预测
Xj U1+XiXjY

现在已经改变了几次。这显然没有影响我的目标。但我也不能真正学习关系因为已经改变了XiYXjXjXi

我从物理学中知道其中一些事实的依赖关系。但是我无法手动解决这个问题,因为大约有 1000 个变量。

在阅读数据漂移时,总是关于如何将现有模型调整为突然变化,但对我来说,这些变化已经发生在过去。

没有任何变化的时间段太小,不能只使用最新的批次,但似乎只使用整个数据集而不进行任何调整也不起作用。

任何人都可以就如何解决这个问题提供建议吗?

(现在我正在使用 XGBoost,但我对其他模型持开放态度)

1个回答

根据您的帖子(我的重点):

我面临的问题是一些预测因素随着时间的推移而变化,例如机器中的压力增加了。这影响了其他一些预测变量,但没有影响我的 target

所以要清楚,输入参数改变但对输出参数没有影响?

有两种可能:

  1. 数据是单个总体的一部分,那么输入参数的变化(在该范围内)对输出参数的影响很小或没有影响。这可以通过创建一个新功能来解决,该功能是某个基线的增量,并查看该新功能是否更适合您的模型。
压力 活塞位置 泄漏流量(出)
10 20 30
11 22 30
12 23 33

第 2 行的输入相对于第 1 行发生了变化,但输出没有变化。因此,参数 1 和 2 的微小变化对输出没有影响(物理示例包括克服滞后或局部能量存储或数据缓冲区或在溢出之前必须装满水的桶)。

在这种情况下,输出对微小的变化不敏感,也许它们是原始值的函数。所以新功能可能是:

压力 活塞位置 泄漏流量(出) F1 F2
10 20 30 0 0
11 22 30 0 0
12 23 33 1 1

因此,仅当第 1 行与其他行之间的差异大于 1 时 F1 才会增加,否则为 0 等等。

  1. 数据来自多个人群。例如,假设您正在测量产品。随着时间的推移,测量设备会失去校准,您会在测量中看到漂移。唯一真正的解决方法是确定由于精度损失导致的漂移,并应用一个作为时间或基值函数的校正因子。