Растущие деревья решений

По умолчанию, fitctree и fitrtree используйте алгоритм standard CART [1], чтобы создать деревья решений. То есть они выполняют следующие шаги:

  1. Начните со всех входных данных и исследуйте все возможные двоичные разделения на каждом предикторе.

  2. Выберите разделение с лучшим критерием оптимизации.

    • Разделение может привести к тому, что дочерний узел будет иметь слишком мало наблюдений (меньше MinLeafSize параметр). Чтобы избежать этого, программное обеспечение выбирает разделение, которое приводит к лучшему критерию оптимизации, удовлетворяющему MinLeafSize ограничение.

  3. Навязать раскол.

  4. Повторите рекурсивно для двух дочерних узлов.

Для объяснения требуются еще два элемента: описание критерия оптимизации и правило остановки.

Правило остановки: Остановите разделение, когда любое из следующих удержаний:

  • Узел pure.

    • Для классификации узел является чистым, если он содержит только наблюдения одного класса.

    • Для регрессии узел является чистым, если средняя квадратичная невязка (MSE) для наблюдаемого отклика в этом узле падает ниже MSE для наблюдаемого отклика во всех данных, умноженного на допуск по квадратичной ошибке на узел (QuadraticErrorTolerance параметр).

  • Их меньше MinParentSize наблюдения в этом узле.

  • Любое разделение, наложенное на этот узел, создает дочерние элементы с меньшим, чем MinLeafSize наблюдения.

  • Алгоритм разделяет MaxNumSplits узлы.

Критерий оптимизации:

  • Регрессия: среднеквадратичная ошибка (MSE). Выберите разделение, чтобы минимизировать MSE предсказаний по сравнению с обучающими данными.

  • Классификация: Одна из трех мер, в зависимости от настройки SplitCriterion Пара "имя-значение":

    • 'gdi'(индекс разнообразия Джини, по умолчанию)

    • 'twoing'

    • 'deviance'

    Для получения дополнительной информации смотрите ClassificationTree .Подробнее о

Для альтернативных методов выбора предиктора разделения, см., Выбор метода выбора предиктора разделения.

Для непрерывного предиктора дерево может разделиться на половины между любыми двумя соседними уникальными значениями, найденными для этого предиктора. Для категориального предиктора с L уровнями, дерево классификации должно учитывать 2L–1-1 разделение, чтобы найти оптимальное разделение. Кроме того, можно выбрать эвристический алгоритм, чтобы найти хорошее разделение, как описано в Разделении Категориальных Предикторов в Деревьях Классификации.

Для двухъядерных систем и выше, fitctree и fitrtree параллелизируйте деревья решений по обучению с помощью Intel® Многопоточные базовые блоки (TBB). Для получения дополнительной информации о Intel TBB смотрите https://software.intel.com/en-us/intel-tbb.

Ссылки

[1] Breiman, L., J. H. Friedman, R. A. Olshen, and C. J. Stone. Деревья классификации и регрессии. Бока Ратон, FL: Chapman & Hall, 1984.

См. также

| | |

Похожие темы