LightGBM用于特征选择

3
我正在处理一个二元分类问题,我的训练数据有数百万条记录和大约2000个变量。我正在使用lightGBM进行特征选择,并使用从lightGBM选择的特征运行神经网络(使用Keras)模型进行预测。我对我所遵循的方法有几个问题。
  1. 当使用lightGBM进行特征选择时,我正在进行超参数调整。这是基于我的理解,随着超参数的变化,所选的特征也会不同。我使用'goss'算法和'gain'作为特征重要性类型。我看过一些文章,他们使用lightGBM进行特征选择,但我没有看到任何人在进行超参数调整时只使用默认设置。这是正确的方法吗?
  2. 是否可以使用lightGBM进行特征选择,并使用从lightGBM选择的特征来构建神经网络模型以基于这些特征进行预测?
非常感谢您的帮助。谢谢

1
为了帮助解决问题(2),我不确定将LightGBM的特征选择结果与您的NN相结合是否是正确的方法。GBMs有自己的选取分裂点和组合最终模型的方式(请记住,这是弱学习器的组合)。这种特征选择可能适用于提升,但通过将这些特征馈入NN可能无法实现您的目标。神经网络以不同的方式捕捉信号,因此不确定它是否符合您的目的。 - babygrogu
非常感谢您的回复。那么,在这种情况下,我应该基于与分类算法无关的过滤方法进行特征选择吗?我想了解在运行神经网络之前通常使用哪些特征选择方法。 - Haritha
这让我想起了boruta包。它使用随机森林来检查一个特征是否包含比填充随机数字的列更有用的信息。也许这就是你想做的事情吗? - jottbe
1个回答

4

梯度提升算法是识别特征的有效方法之一,但不是最高效的方法,因为这些方法是启发式的,非常昂贵 - 换句话说,与其他方法相比运行时间更长。

关于特征选择的超参数调整:往往情况下,超参数最终得出相同的特征集合,但当然有不同的值。例如,假设model1是 A > 3.4 and B < 2.7,其中A和B是特征,而model2是A > 3.2 and B < 2.5。它们是不同的模型,一个可能具有更好的性能,但最终它们使用相同的特征!你的目标不是使用最佳模型,因为你打算在其上构建深度学习模型。然而,在你有2000个特征的情况下,这可能会有所不同,具体取决于分支的深度和构建树所需的特征数量。

一般来说,特征选择阶段不常进行超参数调整,而是在模型构建时进行。特别是对于深度学习模型,人们的目标是尽可能地包容所有特征。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接