与回归任务的训练数据相比,如何控制测试数据集中的协变量偏移?

数据挖掘 机器学习 scikit-学习 回归 预处理
2022-03-08 06:33:25

我正在做一个回归项目。但是由于时间延迟,我面临着特征协变量变化的问题。测试数据是在一年后收集的,因此分布发生了一些变化。我正在撰写的研究论文也提到了特征值的这种转变,但没有提到任何关于纠正它的事情。

我发现了这个,但它谈到了改变训练集的分布。我需要的是一种使测试数据分布更接近训练数据的方法,或者我可以控制它的其他方式。

我正在使用sklearnandElastic-net进行回归。

1个回答

有几种选择:

  1. 更改训练数据集

    1. 使用一些测试数据作为训练数据。这是最好的选择,因为它可以更好地模拟您要解决的问题。

    2. 由于它会随着时间的推移而发生,因此只使用最新的数据进行训练。

  2. 手动设计功能。如果您了解测试数据特征值的不同之处,则将这些知识明确地放入模型中。

  3. 增加正则化。对于 scikit-learn 的 ElasticNet,增加 alpha 超参数。除非您的验证数据集与您的测试数据相似,否则您将没有证据表明这会改进建模。

  4. 将算法切换到更擅长泛化的算法。可能,随机森林可能比正则化线性回归更好。