Обобщения решающих деревьев
Обобщение правил ветвления
Вместо правил (признак меньше порога) во внутренних узлах дерева можно применять и другие правила:
-
Например, при использовании категориального признака можно построить столько дочерних вершин, сколько есть уникальных категорий и, в зависимости от категории , спускаться в соответствующую вершину. Дерево тогда уже не будет бинарным.
-
Можно разбить множество значений признака на набор из непересекающихся полуинтервалов: и осуществлять спуск в дочернюю вершину , если признак попадает в -й полуинтервал.
-
В каждом внутреннем узле можно спускаться в левую или правую дочернюю вершину на основе правила
при этом вектора коэффициентов и пороги у каждого узла будут свои. Тогда каждый внутренний узел сможет дробить признаковое пространство не только перпендикулярно осям, а под произвольным углом на основе линейной классификации.
-
В качестве проверяемой функции в узле можно брать произвольную функцию . Например, если взять , то правило будет направлять объекты в левую и правую дочернюю вершину в зависимости от того, попал ли объект внутрь шара определённого радиуса или нет.
Обобщение правил прогнозирования в листьях
Вместо назначения константного прогноза в листьях дерева, в каждом листе можно строить прогноз по некоторой функции (например, линейной):
Параметры этой функции можно настроить, используя обучающие объекты, попавшие в лист .
Более оптимальная настройка дерева
Стандартное решающее дерево строится последовательно сверху вниз, выбирая локально оптимальное разбиение на один шаг вперёд. Поиск можно сделать более полным и точным (ценой увеличения вычислительной сложности), если настраивать правило разбиения в каждой вершине, заглядывая не на один шаг вперёд, а на два: для этого нужно перебирать всевозможные признаки и пороги не только в текущем узле, но и в образовавшихся левой и правой дочерней вершине, максимизируя изменение неопределённости сразу на два шага вперёд между вершиной и потомками от её потомков.