По умолчанию, fitctree
и fitrtree
используйте алгоритм standard CART [1], чтобы создать деревья решений. Таким образом, они выполняют следующие шаги:
Начните со всех входных данных и исследуйте все возможные бинарные разделения на каждом предикторе.
Выберите разделение с лучшим критерием оптимизации.
Разделение может привести к дочернему узлу, имеющему слишком мало наблюдений (меньше, чем MinLeafSize
параметр). Чтобы избежать этого, программное обеспечение выбирает разделение, которое дает к лучшему критерию оптимизации, удовлетворяющему MinLeafSize
ограничение.
Наложите разделение.
Повторитесь рекурсивно для двух дочерних узлов.
Объяснение требует еще двух элементов: описание критерия оптимизации и останавливающий правило.
Остановка правила: Прекратите разделять, когда любое следующее будет содержать:
Узлом является pure.
Для классификации узел чист, если это содержит только наблюдения за одним классом.
Для регрессии узел чист, если среднеквадратическая ошибка (MSE) для наблюдаемого ответа в этом узле опускается ниже MSE для наблюдаемого ответа в целых данных, умноженных на допуск при квадратичной ошибке на узел (QuadraticErrorTolerance
параметр).
Существуют меньше, чем MinParentSize
наблюдения в этом узле.
Любое разделение, наложенное на этот узел, производит дочерние элементы с меньше, чем MinLeafSize
наблюдения.
Алгоритм разделяет MaxNumSplits
узлы.
Критерий оптимизации:
Регрессия: среднеквадратическая ошибка (MSE). Выберите разделение, чтобы минимизировать MSE предсказаний по сравнению с обучающими данными.
Классификация: Одна из трех мер, в зависимости от установки SplitCriterion
пара "имя-значение":
'gdi'
(Индекс разнообразия Джини, значение по умолчанию)
'twoing'
'deviance'
Для получения дополнительной информации смотрите ClassificationTree
Больше о.
Для альтернативных методов выбора предиктора разделения смотрите, Выбирают Split Predictor Selection Technique.
Для непрерывного предиктора дерево может разделить на полпути между любыми двумя смежными уникальными значениями, найденными для этого предиктора. Для категориального предиктора с уровнями L дерево классификации должно полагать, что разделения 2L–1–1 находят оптимальное разделение. В качестве альтернативы можно выбрать эвристический алгоритм, чтобы найти хорошее разделение, как описано в Разделении Категориальных Предикторов в Деревьях Классификации.
Для двухъядерных систем и выше, fitctree
и fitrtree
параллелизируйте учебные деревья решений с помощью Intel® Threading Building Blocks (TBB). Для получения дополнительной информации на Intel TBB, см. https://software.intel.com/en-us/intel-tbb.
[1] Бреимен, L., Дж. Х. Фридман, Р. А. Олшен и К. Дж. Стоун. Классификация и деревья регрессии. Бока-Ратон, FL: Chapman & Hall, 1984.
ClassificationTree
| RegressionTree
| fitctree
| fitrtree