Xgboost解读:覆盖、频率、增益不应该是相似的吗?

数据挖掘 xgboost
2022-02-13 05:31:03

我很惊讶地看到我的 xgboost 模型中的特征重要性表的结果。根据我在网上看到的教程,增益/覆盖/频率似乎有些相似(正如我所料,因为如果一个变量提高了准确性,它不应该增加频率吗?)但我的数字大不相同. 我可能做错了什么还是我的直觉错了?先感谢您!

Feature       Gain      Cover   Frequency

1:    Var1 0.21943765 0.02821822 0.009433962
2:    Var2 0.18207910 0.05509272 0.066037736
3:    Var3 0.10746529 0.22117710 0.216981132
4:    Var4 0.10294292 0.05267401 0.018867925
5:    Var5 0.06928732 0.10185434 0.141509434
6:    Var6 0.05745753 0.05482397 0.047169811
2个回答

增益 = 使用该功能的拆分的总增益。(在我看来,高增益的特征通常是最重要的特征)

频率 = 模型中使用该特征的次数。

根据我的经验,这些值通常并不总是相关的。我曾经遇到过某个功能获得最大收益但几乎没有检查过的情况,因此没有很多“频率”。

此外,二进制编码的变量通常不会有很高的频率,因为只有 2 个可能的值。当涉及连续变量时,模型通常会检查某些范围,因此它需要多次查看此特征,通常会导致高频率。

为了将来参考,我通常只按增益检查前 20 个特征,按频率检查前 20 个特征。如果两者都出现了一个功能,那么我认为这很重要。另外,我真的不会担心“封面”。我不认为有太多可以从中学到的东西。

我的外行对这些指标的理解如下:

  • 增益 =(某种度量)通过使用该特征提高整体模型的准确性
  • 频率 = 模型中使用该特征的频率。

重要的是要记住算法是按顺序构建的,因此这两个指标并不总是直接可比较/相关的。

一个例子(2个场景):

  1. Var1 可以相对预测响应。它包含在算法中,并且其“增益”相对较高。一旦它与响应的链接已被捕获,它可能不会再次使用 - 例如,可能有其他特征在建模的后期阶段更具预测性,或者 Var1 与响应的所有链接可能已被捕获 - 因此它的“频率”低。

  2. Var1 在整个响应值范围内都具有极强的预测性。我们可以预期 Var1 将具有高“增益”。现在,由于 Var1 的预测能力如此之强,它可能会重复拟合(每次使用不同的拆分),因此也会有很高的“频率”。

在大多数情况下,我们会优先考虑准确性,因此可能会优先考虑“增益”而不是“频率”,但如果您使用该算法进行特征选择,那么最好将两者混合使用来告知您的决定,很多就像@bbennett36 建议的那样。