【问题标题】:What is the intuition behind symmetric trees in catboost algorithm?catboost算法中对称树背后的直觉是什么?
【发布时间】:2018-10-09 18:46:30
【问题描述】:

我一直在使用 catboost 算法,我很难理解使用对称树的意义。关于这点,我在他们的github上找到了:

该算法的一个重要部分是它使用对称树并逐级构建它们。 对称树是一棵树,其中每个级别的节点使用相同的拆分。这允许使用 idex 对叶子的路径进行编码。 例如,有一棵深度为 2 的树。第一层的拆分是 f1

他们说这有助于减少过度拟合并进行更快的推理,但从直觉上来说,这就像你需要两倍的深度来探索相同数量的分割。

那么,谁能解释一下使用这种树的真正优势是什么?

非常感谢。

【问题讨论】:

    标签: machine-learning decision-tree catboost


    【解决方案1】:

    由于这是谷歌搜索的第一个结果,我将提供答案。

    典型的决策树是一系列 if/else 决策。假设您可以在每个处理器周期做出 1 个这样的决定——这将很快,但 100% 是连续的。要做出决定,您需要O(m) 决定,其中m 是树的最大高度。

    在 CatBoost 的对称树中,每个拆分都在同一个属性上。要确定你是向左还是向右,你只需要知道树的当前级别,它对应于一个特征及其值。该阈值对于该级别上的所有拆分都是相同的。通过这种方式,您可以矢量化您的决策 - 创建一个阈值向量,一个您当前用于预测的值向量,并逐个元素进行比较。如果你有一个向量处理器,即它可以并行执行多个整数比较(这在现在很常见),你需要 1 个处理器周期来做出决定。

    如您所见,差异归结为 矢量化,能够在矢量元素比较的 1 步中直接从根到叶,而不是 if/ 的序列其他决定。

    【讨论】:

      猜你喜欢
      • 2020-10-09
      • 2016-07-06
      • 2017-08-17
      • 2019-04-03
      • 2010-09-15
      • 1970-01-01
      • 2021-10-31
      • 2015-05-31
      • 2013-10-30
      相关资源
      最近更新 更多