В этом блоге я собираюсь обсудить, как мы можем построить деревья решений для регрессии с нуля. Таким образом, мы собираемся использовать небольшой набор данных, для которого мы будем рассчитывать оклады по различным характеристикам для каждого человека в нашем наборе данных. *ПРИМЕЧАНИЕ*: Пожалуйста, будьте терпеливы при просмотре блога, так как он длинный, и если вы не понимаете какой-либо части, оставьте комментарий, чтобы я мог помочь вам понять ту часть, где вас заблокировали. .

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

ШАГ 1 → Мы пройдемся по каждому столбцу функций один за другим и решим, как мы можем разместить каждую функцию на каждом уровне дерева регрессии. Сначала мы начнем со столбца rank следующим образом:

ШАГ 2 → Поскольку это категориальный столбец, мы разделим заработную плату в соответствии с рангом, найдем среднее значение для обоих и найдем сумму квадратов остатков как:

Среднее значение AsstProf = (79750 + 77500 + 82379 + 78000 + 80225)/5 = 79570,8

Профессиональное среднее = (101000 + 124750 + 137000 + 144651 + 109646)/5 = 123409,4

Сумма квадратов остатков для столбцаRank=(79750 –79570,8)² + (77500 –79570,8)² + (82379 –79570,8)² + (78000 –79570,8)² + (80225 –79570,8)² + (101000 –123409,4)² + (124750 –123409,4)² + (137000 –123409,4)² +( 144651 –123409,4)² + (109646 –123409,4)² = 1344421278

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

Среднее = (77500 + 124750 + 137000 + 109646)/4 = 112224

B Среднее = (79750 + 82379 + 78000 + 80225 + 101000 + 144651)/6 = 94334,16

Сумма квадратов остатков для столбцаRank=(77500 –112224)² + (124750 –112224)² + (137000 –112224)² + (109646 –112224)² + (79750 –94334,16)² + (82379 –94334,16)² + (78000 –94334,16)² + (80225 –94334,16)² +( 101000 –94334,16)² + (144651 –94334,16)² = 16657363674,8

ШАГ 3 → Для числовых столбцов, таких как yrs.since.phd и yrs.service, мы сначала отсортируем столбец в порядке возрастания и сохраним соответствующее значение зарплаты рядом с каждым элементом данных этого столбца.

Затем мы будем перемещаться по каждой точке данных в столбце и вычислять среднее значение каждой последовательной точки данных и вычислять наименьшую сумму квадрата остатка следующим образом: →

для , 2 и 4 → Среднее значение равно 3

следовательно, для 3 сумма квадратов невязки равна:

средняя зарплата 78000 это 78000

а для остальных остальных: (77500 + 79750 + 80225 + 82379 + 101000 + 109646 +144651 + 124750 + 137000)/9 = 104100,11

таким образом, сумма квадрата остатка для стоимости 3равна= (78000 - 78000)² + (77500 -104100,11)² + (79750 -104100,11 )² + (80225 -104100,11)² + (82379-104100,11)² + (101000 -104100,11)² + (109646 -104100,11)² + (144651-104100,11)² +(124750 -104100,11)0 + (13700,1111)0 + (13700,1111)0 ² = 5535884182,89

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

для 4 и 5 → средний балл 4,5

следовательно, для 4,5 сумма квадратов невязки равна:

средняя зарплата 78000, 77500, 79750 и 80225 равна (78000 + 77500 + 79750 +80225)/4 = 78868,75

и , для остальных (82379 + 101000 + 109646 + 144651 + 124750 + 137000)/6 = 116571

таким образом, сумма квадратов остатка для значения 4,5равна= (78000–78868,75)² + (77500 -78868,75)² + (79750 -78868,75 )² + (80225 -78868,75)² + (82379–116571)² + (101000 -116571)² + (109646 -116571)² + (144651–116571)² + (124750 -116571)² + (137000 -116571) ² = 2737475230,75

Так же будем продолжать для других,

для 5 и 19 → в среднем 12

средняя зарплата 78000, 77500, 79750, 80225 и 82379 равна (78000 + 77500 + 79750 +80225 +82379)/5 = 79570,8

и , для отдыха (101000 + 109646 + 144651 + 124750 + 137000)/5 = 123409,4

таким образом, сумма квадратов остатка для стоимости 12равна= (78000–79570,8)² + (77500 -79570,8)² + (79750 -79570,8 )² + (80225 -79570,8)² + (82379–79570,8)² + (101000 -123409,4)² + (109646 -123409,4)² + (144651–123409,4)² +(124750 -123409,4)² + (137000 -123409,4)² ² = 1344421278

сумма квадрата остатка для значения 21 (для 19 и 23→ Среднее значение 21)равно= (78000– 83142,33)² + (77500 -83142,33)² + (79750 -83142,33)² + (80225 -83142,33)² + (82379–83142,33)² + (101000 -83142,33)² + (109646 -129011,75)²1 + (144566)²1 )² + (124750 -129011,75)² + (137000 -129011,75)² = 1099370278,08

сумма квадрата остатка для значения 29,5 (для 23 и 36 → среднее значение равно 29,5)равно= (78000– 86928,57)² + (77500 -86928,57)² + (79750 -86928,57)² + (80225 -86928,57)² + (82379–86928,57)² + (101000 -86928,57)² + (109646 -86928,57)² + (14464651)² )² +(124750 -135467)² + (137000 -135467)² = 1201422401,71

сумма квадратов остатка для значения 36,5 (для 36 и 37 → среднее значение равно 36,5)равно= (78000– 94143,875)² + (77500–94143,875)² + (79750–94143,875)² + (80225–94143,875)² + (82379–94143,875)² + (101000–94143,875)² + (109646–94144)² )² +(124750–130875)² + (137000–130875)² = 3990297532,88

сумма квадратов остатка для значения 38 (для 37 и 39 → среднее значение равно 38)равно= (78000– 97544,55)² + (77500–97544,55)² + (79750–97544,55)² + (80225–97544,55)² + (82379–97544,55)² + (101000–97544,55)² + (109646–97544,55)²1 + (14464,554,54)²1 )² +(124750–97544,55)² + (137000–137000)² = 4747919516,22

Таким образом, как мы видим, для значения 21 оно имеет наименьшую сумму квадрата остатка1099370278,08 . Таким образом, это значение будет учитываться для сравнения квадрата остатка с другие столбцы .

Мы снова повторим тот же процесс для вычисления наименьшей суммы квадрата остатка для столбца «yrs.service», что и для столбца «yrs.since.phd».

Сортировка значений данных Сначала, а затем

сумма квадрата остатка для значения 1 (для 0 и 2 → Среднее равно 1)равно= (78000– 78000)² + (77500–104100,11)² + (80225–104100,11)² + (79750–104100,11)² + (82379–104100,11)² + (109646–104100,11)² + (101000–104100,11)²50 + (01000–104100,11)²50 + (01000–104100,11)²50 )² +(144651 –104100,11)² + (137000–104100,11)² = 5535884182,89

сумма квадрата остатка для значения 1,5 (для 23 и 26 → среднее значение 1,5)равно= (78000 – 78575)² + (77500–78575)² + (80225–78575)² + (79750–111310,85)² + (82379–111310,85)² + (109646–111310,85)² + (101000–111310,85)² + (1211310,85)² )² +(144651 –111310,85)² + (137000–111310,85)² = 3898542082,86

сумма квадрата остатка для стоимости 9 (для 3 и 15→ Среднее равно 9)равно= (78000– 79570,8)² + (77500– 79570,8)² + (80225– 79570,8)² + (79750– 79570,8)² + (82379– 79570,8)² + (109646–123409,4)² + (101000– 123409,4)² 50–(11243)² )² + (144651–123409,4)² + (137000– 123409,4)² = 1344421278

сумма квадрата остатка для стоимости 17,5 (для 15 и 20→ Среднее значение 17,5)равно= (78000– 84583,33)² + (77500– 84583,33)² + (80225– 84583,33)² + (79750– 84583,33)² + (82379– 84583,33)² + (109646–84583,33)² + (101000– 5,1270,24)²5 )² +(144651–126850,25)² + (137000–126850,25)² = 1861397016,08

сумма квадрата остатка для значения 21,5 (для 20 и 23→ Среднее значение 21,5)равно= (78000– 86928,57)² + (77500– 86928,57)² + (80225– 86928,57)² + (79750– 86928,57)² + (82379– 86928,57)² + (109646–86928,57)² + (101000– 86928,57)² )² +(144651– 135467)² + (137000– 135467)² = 1201422401,71

сумма квадрата остатка для значения 24,5 (для 23 и 26→ Среднее значение 24,5)равно= (78000 – 91656,25)² + (77500– 91656,25)² + (80225 – 91656,25)² + (79750 – 91656,25)² + (82379 – 91656,25)² + (109646 –91656,25)² + (101000 – 91656,24)²50 + (101000 – 91656,24)²50 )² +(144651– 140825,5)² + (137000– 140825,5)² = 2280794170

сумма квадрата остатка для стоимости 31 (для 26 и 36→ Среднее значение 31)равно= (78000– 81472,22)² + (77500– 81472,22)² + (80225– 81472,22)² + (79750– 81472,22)² + (82379– 81472,22)² + (109646–81472,22)² + (101000– 81472,224)²50 )² +(144651– 81472,22)² + (137000– 137000)² = 7072799248,12

Таким образом, как мы видим, для значения21,5имеется наименьшая сумма квадратов остатка1201422401,71. >Таким образом, это значение будет учитываться при сравнении квадрата остатка с другими столбцами.

Среднее значение для мужчин = (78000 + 80225 + 79750 + 109646 + 101000)/5 = 89724,2

Среднее значение = (77500 + 80225 + 124750 + 144651 + 137000)/5 = 112825,2

Сумма квадратов остатков для столбцаRank=(78000 –89724,2)² + (80225 –89724,2)² + (79750 –89724,2)² + (109646 –89724,2)² + (101000 –89724,2)² + (77500 –112825,2)² + (80225 –112825,2)² + (124750 –112825,2)² +( 144651 –112825,2)² + (137000 –112825,2)² = 4901344263,6

Итак, среди всех квадратов суммы остатков:

для столбца "rank" = 1344421278

для столбца "дисциплина" = 16657363674,8

для столбца «лет.с.доктор философии» = 1099370278,08

для столбца "лет службы" = 1201422401,71

для столбца "пол" = 4901344263,6

таким образом, столбец «yrs.since.phd» становится столбцом с наименьшей суммой квадрата остаточной стоимости и, таким образом, он станет первым узлом для нашего дерева регрессии.

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

сумма квадрата остатка для столбца rank: (79750 –79570,8)² + (77500 –79570,8)² + (82379 –79570,8)² + (78000 –79570,8)² + (80225 –79570,8)² ² + (101000 -101000)² = 15101702,8

сумма квадрата остатка для столбца «дисциплина»: (79750–84270,8)² + (77500–77500)² + (82379–84270,8)² + (78000–84270,8)² + (80225–84270,8) ² + (101000 –84270,8)² = 359574102,8

сумма квадрата остатка для столбца пол: (79750– 85282,25)² + (77500–78862,5)² + (82379– 85282,25)² + (78000– 85282,25)² + (80225– 78862,5)² ² + (101000–85282,25)² = 342826293,25

Теперь для «yrs.service»:

сначала отсортировал столбец по данным в «yrs.service»

сумма квадрата остатка для значения 1 (для 0 и 2→ Среднее равно 1)равно= (78000– 78000)² + (77500– 84170,8)² + (80225– 84170,8)² + (79750– 84170,8)² + (82379– 84170,8)² + (101000– 84170,8)² = 366044902,8

сумма квадрата остатка для стоимости 1,5 (для 2 и 3→ Среднее значение 1,5)равно= (78000– 78575)² + (77500– 78575)² + (80225– 78575)² + (79750– 87709,66)² + (82379– 87709,66)² + (101000– 87709,66)² = 272614010,66

сумма квадратов остатка для значения 11,5(для 3 и 20→ Среднее значение 11,5) равно= (78000– 79570,8)² + (77500– 79570,8)² + (80225– 79570,8)² + (79750– 79570,8)² + (82379– 79570,8)² + (101000– 101000)² = 15101702,8

Таким образом, как мы видим, для значения11,5имеется наименьшая сумма квадратов остатка15101702,8 .Таким образом, это значение будет учитываться при сравнении квадрата остатка с другими столбцами.

Теперь, если мы сравним все остальные значения суммы квадратов остатков, мы увидим, что «rank» и «yrs.service» с 11,5 будут иметь самые низкие значения суммы квадратов остатков. . Следовательно, следующий узел нашего дерева будет таким:

Теперь мы будем работать с правым дочерним элементом корневого узла:

*Для столбца «rank» все значения одинаковы, поэтому мы его пропустим.

Сумма квадратов остатка для «дисциплина» = (124750–123798,66)² + (137000–123798,66)²+ (144651–144651)² + (109646 -123798,66)² = 375478210,66

Сумма квадратов остатка для «пола» = (124750–124750)² + (137000–118764)²+ (144651–118764)² + (109646–118764)² = 1085826389

сумма квадрата остатка для значения 19(для 15 и 23→ Среднее равно 19) равно= (109646– 109646)² + (124750– 135467)²+ (144651– 135467)² + (137000– 135467)² = 201550034

сумма квадратов остатка для значения 24,5(для 23 и 236 Среднее значение 24,5) равно= (109646– 117198 )² + (124750– 117198)²+ (144651– 140825,5)² + (137000– 140825,5)² = 143334308,5

сумма квадратов остатка для значения 24,5(для 23 и 236 Среднее значение 24,5) равно= (109646– 126349 )² + (124750– 126349)²+ (144651– 126349)² + (137000– 137000)² = 616510214

Таким образом, как мы видим, для значения24,5имеется наименьшая сумма квадратов остатка143334308,5 .Таким образом, это значение будет учитываться при сравнении квадрата остатка с другими столбцами, которые составляют375478210,66 (для “дисциплины) и 1085826389 (для столбца “Пол)

Следовательно , ​​143334308,5 является наименьшим значением суммы квадрата остатка среди всех столбцов . Следовательно, наше дерево регрессии будет выглядеть так:

Теперь для самого левого ребенка;

Для столбца "дисциплина":

Среднее = 77500 / 1 =

Среднее B = (79750+ 82379+ 78000+ 80225)/5 = 80088,5

Сумма квадратов остатков для столбцаRank=(79750– 80088,5)² + (77500–77500)² + (82379– 80088,5)² + (78000– 80088,5)² + (80225– 80088,5)² = 9741437

Для столбца "пол":

Среднее значение для мужчин = (79750 + 82379 + 78000)/3 = 80043

Среднее значение для женщин = (77500 + 80225)/2 = 78862,5

Сумма квадратов остатков для столбцаRank=(79750–80043)² + (77500–78862,5)² + (82379–80043)² + (78000–80043)² + (80225–78862,5)² = 13429406,5

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

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

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

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

Вот как деревья регрессии строятся из набора данных, и теперь мы готовы к прогнозам с новыми данными. Итак, если нам нужно сделать прогноз для данных с функциями: →

тогда ,

Мы можем четко предсказать, что средняя зарплата человека с этими характеристиками (профессор , A , 25 , 40 , женщина) составляет 137000 .

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