Для регрессии: \( H(X) = \frac{1}{|X|} \sum \limits_{i \in X} (y_i - \overline{y}(X))^2 \)
Для классификации:
Разброс ответов в правом листе
Разброс ответов в левом листе
Доля объектов в левом листе относительно всех объектов родительского узла
Доля объектов в правом листе относительно всех объектов родительского узла
s0 = вычисляем энтропию исходного множества
Если s0 == 0 значит:
Все объекты исходного набора, принадлежат к одному классу
Сохраняем этот класс в качестве листа дерева
Если s0 != 0 значит:
Перебираем все элементы исходного множества:
Для каждого элемента перебираем все его атрибуты:
На основе каждого атрибута генерируем предикат,
который разбивает исходное множество на два подмножества
Рассчитываем среднее значение энтропии
Вычисляем ∆S
Нас интересует предикат с наибольшим значением ∆S
Найденный предикат является частью дерева принятия решений, сохраняем его
Разбиваем исходное множество на подмножества, согласно предикату
Повторяем данную процедуру рекурсивно для каждого подмножества
При каком n дерево получится максимально переобученным?
Тем не менее, это достаточно трудоемкая процедура, и она имеет смысл только при использовании одиночного дерева
Есть ли смысл ставить границу по возрасту 17,5?
Но как получить разные результаты, используя однотипные алгоритмы?
Теперь мы можем более объективно рассматривать статистики выборок (здесь мы имеем некоторое представление центральной предельной теоремы)
\(a(x) = \frac{1}{N}\sum\limits_{n=1}^Nb_n(x) \)
\(a(x) = sign\frac{1}{N}\sum\limits_{n=1}{N}b_n(x) \)
Основные параметры:
Обучим простой алгоритм:
\(b_1 (x) = \arg \min \limits_{b} \frac{1}{l} \sum\limits_{i=1}^{l} (b(x_i) - y_i)^2\)
Как исправить ошибки \(b_1(x)\)?
\(b_1(x_i) + b_2(x_i) = y_i\)
\(b_2\) - специальная модель, которая предсказывает необходимые исправления ответов модели \(b_1\)
\(b_2(x) = \arg \min \limits_b \frac{1}{l} \sum\limits_{i=1}^l (b(x_i) - (y_i - b_1(x_i)))^2 \)
Уже построили N-1 алгоритмов:
\(a_{N-1}(x) = \sum\limits_{n=0}^{N-1}b_n(x) \)
Нужно минимизировать функционал ошибки:
\(\sum\limits_{i=1}^l L(y_i, a_{N-1}(x_i) + b(x_i)) \rightarrow \min\limits_b \)
Ищем оптимальный сдвиг:
\(b(x_i) = s_i \),
\(s = -\nabla F = (-L_z'(y_1, a_{N-1}(x_1)), ..., -L_z'(y_l, a_{N-1}(x_l))\)
\(b_N(x) = \arg\min\limits_b \frac{1}{l} \sum\limits_{i=1}^l(b(x_i) - s_i)^2 \)
Перенастройка в листьях:
\(\sum\limits_{i=1}^lL(y_i, a_{N-1}(x) + \sum\limits_{j=1}^J[x \in R_{N_j}]b_j) \rightarrow \min\limits_{b_1, ..., b_J} \)