我一直在研究 catboost 算法,但我很难看出使用对称树的意义。关于这一点,我在他们的github上找到了:
该算法的一个重要部分是它使用对称树并逐层构建它们。对称树是每一层节点使用相同分裂的树。这允许使用索引对叶子的路径进行编码。例如,有一棵深度为2的树。第一层的分裂是f1<2,第二层的分裂是f2<4。那么 f1=5,f2=0 的对象将有编号为 01b 的叶子。
他们说这有助于减少过度拟合并进行更快的推理,但是,直观地对我来说,这就像你需要两倍的深度来探索相同数量的分割。
那么,有人能解释一下使用这种类型的树实际上有什么好处吗?
非常感谢。