Повышение градиентного дерева, предложенное Фридманом, использует деревья решений с J
конечными узлами (= листья) в качестве базовых обучающихся. Есть несколько способов вырастить дерево с точно такими же J
узлами, например, вы можете вырастить дерево в глубину или в ширину ...
Есть ли установленный способ, как вырастить деревья с точно J
конечными узлами для повышения градиентного дерева?
Я рассмотрел процедуру выращивания дерева пакета R, gbm
и кажется, что он расширяет дерево в глубину и использует эвристику, основанную на улучшении ошибок, чтобы выбрать, расширять ли левый или правый дочерний узел - это правильно?
gbm
имеет параметр,n.minobsinnode
который контролирует минимальное количество объектов на узел. Конечно, тогда число узлов меньше или равно NumberOfPoints / n.minobsinnodeОтветы:
Решение в R
gbm
не является типичным.Другие пакеты, такие как
scikit-learn
илиLightGBM
используют так называемые (в scikit-learn)BestFirstTreeBuilder
, когда количество листьев ограничено. Он поддерживает приоритетную очередь всех листьев и на каждой итерации разбивает лист, что обеспечивает наилучшее уменьшение примесей. Таким образом, это не первый в глубину и не первый, а третий алгоритм, основанный на расчетах в листах.источник