Я проходил алгоритм catboost, и мне трудно понять смысл использования симметричных деревьев. По этому поводу я нашел в их github:
Важной частью алгоритма является то, что он использует симметричные деревья и строит их уровень за уровнем.
Симметричное дерево - это дерево, в котором узлы каждого уровня используют одинаковое разбиение. Это позволяет закодировать путь к листу с помощью idex.
Например, есть дерево с глубиной 2. Разделение на первом уровне f1 <2, разделение на втором уровне f2 <4.
Тогда объект с f1 = 5, f2 = 0 будет иметь лист с номером 01b. </p>
Говорят, это помогает быть менее склонным к переоснащению и иметь гораздо более быстрый вывод, но для меня интуитивно это похоже на то, что вам нужно удвоить глубину, чтобы исследовать такое же количество расщеплений.
Итак, кто-нибудь может объяснить, что на самом деле является преимуществом использования этих типов деревьев ??
Большое спасибо.