我正在研究二元分类问题,我的训练数据有数百万条记录和约 2000 个变量。我正在运行 lightGBM 进行特征选择,并使用从 lightGBM 中选择的特征来运行神经网络(使用 Keras)模型进行预测。我对我正在遵循的方法有几个问题。
非常感谢任何帮助。谢谢
梯度提升算法是识别特征的有效方法,但不是最有效的方法,因为这些方法是启发式的并且非常昂贵 - 换句话说,与其他方法相比,运行时间要长得多。
关于特征选择的超参数调整:很多时候,超参数最终会得到相同的特征集,但当然会有不同的值。例如想象模型 1 是
A > 3.4 and B < 2.7
,其中 A 和 B 是特征,模型 2 A > 3.2 and B < 2.5
。它们是不同的型号,其中一个可能具有更好的性能,但最终它们使用相同的功能!你的目标不是使用最好的模型,因为你打算在上面构建一个深度学习模型。但是,在您使用 2000 个特征的情况下,根据分支的深度和构建树的特征数量,它可能会有点不同。
一般来说,在特征选择阶段进行超参数调整并不常见,而是在模型构建阶段进行。特别是对于深度学习模型,人们的目标是尽可能具有包容性。
https://github.com/perpetual-ml/perpetual
您可以尝试 PerpetualBooster 来检查您的特征的重要性,因为该算法不需要超参数调整。从预算 = 0.5 开始进行功能选择。如果需要更好的结果,请将预算增加到 1.0。如果您想全力以赴,请升至 2.0。