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

Я прошу вас сначала просмотреть эту статью, прежде чем читать эту статью.

В этой статье мы узнаем о деревьях регрессии и о том, как они используются для прогнозирования.

В деревьях регрессии целевой переменной являются непрерывные числовые данные.

Давайте разберем работу деревьев регрессии на примере:

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

Итак, закономерность между Avg. учебные часы и оценки будут выглядеть следующим образом:

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

На самом деле, мы смогли это сделать, потому что данные следовали линейному тренду, т. е. когда количество учебных часов увеличивалось, общие оценки также росли.

Но что, если данные следуют нелинейному тренду? Как показано ниже на изображении:

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

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

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

Итак, если мы получим новую точку данных, имеющую количество часов обучения больше 9 и меньше 24, то значение общих оценок, которые он может получить в будущем, будет средним значением всех точек данных, присутствующих в этом диапазоне.

Но теперь возникает вопрос, как определить эти идеальные пороговые значения для нашего дерева?

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

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

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

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

В соответствии с этим порогом он правильно предсказывает значение первой точки данных, тогда как он предсказывает среднее значение всех других точек данных, как показано ниже:

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

Таким образом, в случае деревьев регрессии RSS (остаточная сумма квадратов) используется для расчета производительности каждого порогового значения, как показано ниже:

RSS (остаточная сумма квадратов): - сумма квадратов разницы между средним значением и прогнозируемым значением.

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

На представленной ниже визуализации показано, как выбирается наилучшее пороговое значение:

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

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

Таким образом, чтобы избежать этого условия переобучения, можно установить критерии, согласно которым действительны только те пороговые значения, до и после которых присутствуют по крайней мере 4 или 5 точек данных (в нашем случае только потому, что у нас очень мало данных, но на самом деле это значение обычно равно принимается за 20 для больших данных). Итак, в соответствии с этим условием наши окончательные пороги показаны ниже:

До сих пор мы обсуждали, как найти лучшее значение в столбце для разделения дерева, как показано ниже:

Примечание. Результаты будут такими же, если мы начнем разбивать с помощью «Часов обучения ‹ 24», вы можете попробовать это сами.

Но что, если у нас есть несколько столбцов? Как мы решим, какой столбец лучше всего подходит для корневого узла?

Предположим, у нас есть данные, как показано ниже:

Примечание.Данные в таблице не являются реальными данными, они созданы мной только для примера :)

В этом случае мы рассмотрим каждый столбец и рассчитаем RSS для каждого случая по отношению к нашему целевому столбцу, которым является Marks.

Мы уже видели, как рассчитываются пороговые значения, когда независимый столбец является числовым, например «Часы учебы» или «Часы сна».

Но что, если у нас есть категориальный столбец, такой как «Пол», как показано выше?

В таких случаях порог может быть «M» или «F», как показано ниже:

Таким образом, взяв среднее значение всех точек данных «M» и всех точек данных «F», RSS рассчитывается относительно этого среднего значения и значения из «M' и 'F' будут выбраны с меньшим RSS.

Итак, в конечном итоге корневым узлом будет столбец с наименьшим RSS.

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

Счастливого обучения !!! :)

Ссылки:

StatQuest с Джошем Стармером