决策树我们应该丢弃低重要性特征吗?

数据挖掘 scikit-学习 特征选择 决策树
2021-09-15 12:54:16

我刚开始使用功能选择。假设我有一个决策树模型。我得到它的特征重要性tree.feature_importances_

在我的模型中,大约 30 个特征中,其中 20 个的重要性值为零。这是否意味着我应该从我的模型中丢弃那些低重要性值的特征?据我了解,答案是否定的,但我不知道背后的原因。谁能解释一下?

2个回答

至于许多问题,答案是“视情况而定”:

  • 具有较低个体重要性的特征仍然可以为您的模型增加预测能力,因为模型受益于将它们的信息与其他特征的信息结合在一起。
  • 然而,它们可能会在模型中引入噪声并导致过拟合,从而降低模型的性能。

回答您的问题的最佳方法是进行实验:

  1. 通过降低重要性对特征进行排序
  2. 从 5 个特征循环到 30 个特征,每次按重要性选择前 N 个特征,并基于此特征子集训练/测试模型。
  3. 绘制性能

您可能会观察到,对于添加的每个“重要”功能,性能在开始时会增加很多,然后随着功能重要性的降低而减慢,并且在某些时候可能根本不会增加,甚至可能会降低一点。

Python 数据科学导论书说

但是,如果某个功能的 feature_importance 较低,并不意味着该功能没有信息。这仅意味着该特征没有被树选择,可能是因为另一个特征编码了相同的信息。

因此,在该特定模型中,您应该能够丢弃,因为还有其他变量对该信息进行编码。但另一个模型可能会使用它。