R中的特征构造

机器算法验证 r 机器学习 特征工程 遗传算法
2022-03-23 05:39:57

我想知道 R 中是否有任何算法(也许是遗传算法)用于特征构建(从现有预测器中导出候选预测器)?我正在考虑一个例程来测试现有变量(sin、cos、atan 等)的高阶幂、相互作用、比率和线性组合和非线性函数。

这可能是一个过滤器或包装程序(即不使用学习算法或使用一个来定义特征的适应度)。

我的目标是“发现”现有预测变量的潜在有意义的比率等。

谢谢!

3个回答

在我看来,这会让你很容易受到虚假相关甚至过度拟合等问题的影响。我忘记了这个原则的名称,即你尝试的模型越多,你遇到坏模型的风险就越大——如果你尝试了很多模型以实际运行遗传算法,你可以想象这个原则是如何被违反的。

您可以这样做:从 data.frame 开始,您向数据添加一组“合理”的转换预测变量甚至交互(model.matrix 和类似的应该能够实现这一点)。

一旦你在那里,任何变量选择方法都可以。glmnet想到了,但有很多选择。这种工作方式的一个缺点是,当交互存在时,很难确保主要效应在模型中。也许某些形式的变量选择支持这一点,但我知道除了逐步过程(这会违背目的)之外没有明显的选择。

您可以从一些简单的事情开始,例如查找主要组件独立组件您也可能会有点疯狂,并生成变量的所有 2-way 交互。显然,当您生成和测试更多特征时,您需要一种对过度拟合更稳健的特征选择算法。

一些建模算法,如MARS、随机森林和非线性 SVM 会自动找到原始特征之间的某些交互。