Изучите некоторые из наиболее распространенных гиперпараметров, которые вы можете настроить, чтобы повысить производительность алгоритмов на основе дерева.

Деревья решений — это действительно классные алгоритмы, которые создают основу для более продвинутых алгоритмов, таких как Random Forests, LightGBM или XGBoost. Во время вашего путешествия по науке о данных деревья решений, вероятно, являются первым нелинейным алгоритмом, который вы изучите, поскольку они довольно объяснимы и просты для понимания. Если вы все еще боретесь с древовидными алгоритмами, ознакомьтесь с моей статьей о деревьях классификации. Надеюсь, это может быть интересно прочитать, чтобы помочь вам

В контексте изучения науки о данных и машинного обучения деревья решений, вероятно, являются первым алгоритмом, который вы изучите, где гиперпараметры важны, когда речь идет об их производительности. Гиперпараметры, возможно, более важны для древовидных алгоритмов, чем для других моделей, таких как модели, основанные на регрессии. По крайней мере, количество гиперпараметров, которые можно настроить в деревьях решений, более обширно и разнородно, чем в большинстве алгоритмов.

Поскольку с большой силой приходит большая ответственность, деревья решений могут найти чрезвычайно интересные нелинейные отношения между функциями и целью, но они также чрезвычайно склонны к высокой дисперсии, обычно называемой переоснащением.

И как вы можете контролировать эту склонность к переоснащению? С гиперпараметрами!

Гиперпараметры – это параметры, которые не выводятся моделью во время обучения, и которые специалист по обработке и анализу данных должен откалибровать самостоятельно. Как мы уже говорили, изучение этого алгоритма также даст вам хорошее представление о важности гиперпараметров в процессе обучения и о том, как их изменение влияет на производительность и стабильность вашего решения для машинного обучения.

В этом посте мы собираемся проверить некоторые общие гиперпараметры, которые мы можем настроить при настройке дерева решений, и их влияние на производительность ваших моделей. Давайте начнем!

Максимальная глубина

Первый гиперпараметр, в который мы углубимся, — это максимальная глубина. Этот гиперпараметр задает максимальный уровень, на который дерево может спуститься в процессе обучения. Например, в реализации дерева классификации sklearn максимальная глубина по умолчанию не установлена.

На что влияет отсутствие максимальной глубины во время тренировочного процесса? Ваше дерево «теоретически» может опускаться до тех пор, пока все узлы не станут чистыми — при условии, что ваше дерево не контролируется каким-либо другим гиперпараметром. Основная проблема с этим подходом заключается в том, что вы можете в конечном итоге принимать решения только на одном примере из вашей тренировочной таблицы. Подумайте, что если вы позволите своему дереву слишком сильно опуститься, вы рекурсивно разбиваете свое пространство до тех пор, пока не «потенциально» изолируете каждый пример — это приведет к переоснащению, поскольку ваш алгоритм будет чрезвычайно хорош в обучающей выборке, но не сможет обобщить его. реальный мир — конечная цель алгоритма машинного обучения.

Попробовав разные уровни глубины вашего дерева, вы найдете баланс между обобщением и подходящей мощностью вашего алгоритма. Вот наглядный пример того, что происходит, когда вы пробуете разные параметры максимальной глубины:

Резюме:

  • Слишком большое значение максимальной глубины может привести к переоснащению или высокой дисперсии.
  • Слишком низкое значение максимальной глубины может привести к недостаточной подгонке или большому смещению.

Минимальное количество сэмплов

Как мы видели, если мы не установим максимальную глубину в нашем дереве, мы в конечном итоге стимулируем наше дерево искать чистые узлы — узлы, которые содержат только один единственный класс (деревья классификации) или одно непрерывное значение (деревья регрессии). ). Это, естественно, заставит наше дерево основывать свои решения на меньшем количестве примеров, поскольку чистые узлы могут основываться на множестве расщеплений и иметь тенденцию страдать от проклятия размерности.

Есть ли какие-либо другие гиперпараметры, которые помогают нам избежать использования разреженных данных для принятия решений? Да, есть! Одним из них является гиперпараметр «минимальное разделение образцов», который позволяет вам контролировать, сколько образцов должен содержать узел, чтобы быть доступным для разделения.

Установка большого числа в этом гиперпараметре приведет к тому, что ваше дерево будет делать обобщения с большим количеством примеров, поскольку вы разделяете узел дерева только в том случае, если он содержит больше, чем заданное вами число. Это позволит избежать создания два потенциально «низких образца» дочерних элементов, которые будут порождены из узла.

Крайним примером (с высоким значением в этом гиперпараметре) может быть: если вы используете размер обучения как «минимальное разделение выборок», ваш результат — это просто среднее значение целевой переменной, потому что вы делаете вывод для всей совокупности — конечно , этот подход был бы немного бессмысленным.

Небольшое количество разделенных минимальных выборок приведет к чрезмерной подгонке вашего дерева решений, поскольку оно будет принимать решения на меньшем количестве примеров — это имеет тот же эффект, что и выбор большой максимальной глубины дерева решений.

Резюме:

  • Слишком малое число «минимальных разделенных выборок» может привести к переобучению или высокой дисперсии.
  • Слишком большое число «минимальных разделенных выборок» может привести к недостаточному соответствию или большому смещению.

Лист с минимальными образцами

Подобно гиперпараметру, который мы видели выше, лист с минимальными выборками — это гиперпараметр, который управляет количеством примеров, которые может иметь конечный конечный узел. Листовой узел — это любой конечный узел вашего дерева, который будет использоваться для классификации новых точек.

Это очень похоже на гиперпараметр, который я представил ранее, с той лишь разницей, что вы пытаетесь контролировать размер выборки. В приведенном выше гиперпараметре вы управляете количеством примеров в узле передразделением узла. С листом с минимальным количеством образцов вы контролируете количество примеров в узле после того, как расщепление «потенциально» произошло.

Увеличивая количество листов минимальной выборки, вы также предотвращаете переоснащение, пытаясь избежать проклятия размерности.

Резюме:

  • Слишком малое количество «минимальных выборочных листьев» может привести к переоснащению или высокой дисперсии.
  • Слишком большое количество «минимальных выборочных листов» может привести к недостаточному соответствию или большому смещению.

Максимум возможностей

Гиперпареметр, который действует не на размер выборки, а на признаки, называется «максимальными признаками». Каждый раз, когда дерево решений выполняет поиск кандидатов для выполнения следующего разделения, оно по умолчанию тщательно просматривает каждую функцию.

Это имеет, в основном, два недостатка:

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

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

В реализации sklearn вы найдете различные способы выбора количества максимальных функций, которые вы хотите учитывать для каждого разделения — вы можете определить это как целое число или как долю от общего количества функций (50% всех функций). особенности, например).

Резюме:

  • Большое количество «максимальных возможностей» приближается к расширенному поиску дерева решений без набора параметров.
  • Низкое число максимальной глубины выбирает меньшее количество случайных признаков, которые следует учитывать при выборе следующего разбиения на дереве.

Минимальное снижение содержания примесей

Еще один способ настроить ваше дерево и быть более строгим в отношении того, какие разбиения являются «приемлемыми» для вашего дерева, — это контролировать количество примеси (значение, которое вы хотите минимизировать в каждом разбиении).

По умолчанию в каждом разделении вы принимаете любое уменьшение примеси в вашем общем дереве. С этим набором гиперпараметров вы применяете разделение только в том случае, если это разделение уменьшает примесь на величину x.

Этот гиперпараметр действует непосредственно на функцию стоимости дерева решений — даже если разделение уменьшит вашу нечистоту и теоретически улучшит вашу классификацию или регрессию, его нельзя использовать для продвижения вперед, поскольку оно не соответствует порогу, который вы определили. В реализации sklearn это значение по умолчанию установлено на 0 — это означает, что любое разделение допустимо, пока оно уменьшает примесь, даже если оно уменьшает это значение на 0,00001.

Резюме:

  • Низкое число «минимального уменьшения примеси» заставит ваше дерево разделить ваши данные на «теоретически» допустимые разделения, но это может быть бессмысленным;
  • Высокое число «минимальное снижение примесей» сделает ваш тренировочный процесс слишком строгим при выборе следующего сплита, что приведет к большому смещению.

Спасибо за чтение! Это 5 гиперпараметров, которые я обычно настраиваю при разработке деревьев решений. Изучение деревьев решений было важным в моих исследованиях DS и ML — это был алгоритм, который помог мне понять огромное влияние, которое гиперпараметры могут оказать на производительность вашего алгоритма, и то, как они могут быть ключом к провалу или успеху проекта.

Я подготовил курс по изучению Data Science с нуля на Udemy — курс структурирован для начинающих, содержит более 100 упражнений, и я буду рад видеть вас рядом!