LightGBM - 为什么选择独家功能捆绑 (EFB)?

数据挖掘 特征选择 决策树 xgboost 机器学习模型 gbm
2021-10-01 09:01:24

我目前正在学习 GBDT 并开始阅读LightGBM 的研究论文

在第 4 节中,他们解释了Exclusive Feature Bundling算法,该算法旨在通过将互斥特征重新组合成包来减少特征数量,将它们视为单个特征。研究人员强调这样一个事实,即必须能够从捆绑包中检索特征的原始值。

问题:如果我们有一个分类特征已经被 one-hot 编码,这个算法会不会简单地将 one-hot 编码反转为数字编码,从而抵消我们之前编码的所有好处?(抑制类别之间的层次结构等)

3个回答

我以前以很多方式读过那篇论文很多遍。关于这个问题我能说的是,这篇论文没有明确描述该框架的具体作用。它只是暗示了他们以有效方式捆绑功能的直观想法。但具体来说,它并没有说它特别针对您的问题做了“单热编码的回归”。

我尝试直接给出分类输入并作为单热编码来比较计算所需的时间。有一个显着的区别:在多个数据集中直接给出比一次性编码更好。

可能性:

1)有可能LightGBM框架可以从稀疏性中发现我们将特征作为one-hot-encoded,也有可能该算法没有使用EFB处理one-hot-encoded。

2)LightGBM 也有可能在 one-hot-encoded 样本上使用 EFB,但它可能是有害的,或者不如直接分类输入上的 EFB 好。(我去这个)

但是,我仍然认为 EFB 不会逆转 one-hot-encoding,因为 EFB 被解释为一种处理分类特征的独特方式。但在处理单热编码输入时,它可能会“捆绑未捆绑的功能”。

出于论文的含蓄,我多次使用“可能”这个词。我能给你的建议是,给论文的一位作者发送电子邮件,我认为他们不会拒绝解释。或者如果你有勇气,去LightGBM 的 GitHub Repo自己检查代码。我希望我能给你一个见解。如果您对此事有确切的答案,请告诉我。请不要犹豫,进一步讨论这个,我会在附近。祝你好运,玩得开心!

有关如何更好地解释 EFB 的更多详细信息,请参阅本文。这是我自己编辑的简短视觉解释。我希望你能欣赏我更新的图形的高品质...

在此处输入图像描述

要回答您的主要问题,请参阅“EFB 第 1 部分”。这解释了特征按其稀疏性排序并与所有其他特征混合。尽管并非不可能,但鉴于您有足够的其他功能,它们似乎有很小的机会完美地重新组合。

这里有大量关于 EFB 的更多信息要点是:

  1. 大约为零的阈值是total_sample_cnt / 10000这里
  2. 它还通过使用最频繁的 bin 作为参考点来处理“非零稀疏”数据(与稀疏数据使用零作为参考点的方式相同)。这里

核心开发人员之一詹姆斯·兰姆 (James Lamb) 进行了一场精彩的演讲。对 EFB 的引用在此处此处后者是你问的确切问题。

enable_bundle=false仅供参考 -如果您想尝试一下,您可以使用 关闭它。

有关为什么不应该在树中使用 One-Hot-Encoding 以及为什么将它重新组合成 Numeric/Ordinal Encoding 可能是一件坏事的更多信息,请在此处查看这篇出色的博客。此外,有关二进制编码的更多详细信息以及与其他类型相比快速测试它的方法,请参阅我的答案。categorical_feature最后,无论如何你最好还是使用参数!

根据论文的描述,EFB 通过减少特征数量来加速。我认为这并不是说没有其他影响。当然,其他“影响”是否真正令人担忧是另一个问题。

此外,EFB 不仅处理 one-hot 编码特征,还处理连续特征。

我还认为它不会将所有单热编码功能与获得溢出值的可能性捆绑在一起。