我有一个包含近一百万行的训练数据集,最初我正在考虑八个特征。我的机器学习模型将是随机森林回归器。
在“特征工程和选择:预测模型的实用方法”的第3.4.7节中,有这样的内容:
最后,对于大量数据,替代数据使用方案可能是一个好主意。可以为特定目的创建多个拆分,而不是简单的训练/测试拆分。例如,在使用训练集构建模型之前,可以使用数据的特定拆分来确定模型的相关预测变量。这将减少在重采样中包含昂贵的特征选择步骤的需要。
基于此,为了找到相关特征,我想对 10% 的训练数据(约 100k 行)的初始特征集的所有可能子集进行详尽的搜索。每个子集的评估将通过对所有子集具有相同超参数的 5 倍交叉验证随机森林来完成。
为什么是 10%?回答:减少计算时间,因为我认为 100k 行会给我一组可靠的功能。我没有参考来支持我的选择。如果你有的话,请告诉我。
在找到最佳子集后,我继续使用 100% 的训练数据进行超参数调整。
难道我做错了什么?你能建议我一些参考资料来寻找我做错的部分吗?
我搜索了 Max Kuhn 谈到的这个“特定分裂”,找不到任何类似的建议。
更多细节:
如果我只有八个特征,为什么要进行特征选择,特别是考虑到 RF 对冗余/不相关特征有些不敏感(关于预测性能,而不是特征重要性/选择)?
除了通过使用较少的特征来减少计算时间的一般想法之外,特征是气象变量,可能无法在任何地方轻松获得/访问。因此,如果我要构建一个可用于其他案例研究和研究的模型,如果它的变量较少,它会更容易使用。
我认为在另一种方法中使用 RF 进行特征选择更有用,因为它还可以隐式考虑交互效果。
我想在学术工作中做所有这些事情,这就是为什么我需要证明我所做的所有步骤和决定的合理性。在这里,我最关心的是我只使用了 100k 行进行特征选择。有人可能会说,为什么是 100k?为什么不是200k?等等。
我的另一个疑问是:既然我做了有监督的特征选择,我应该对剩余的 90% 的训练数据进行调整,而不是 100%。你同意?