Невероятная игра деревьев!!!!!

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

Как другие алгоритмы берут независимые функции и пытаются предсказать зависимые, то же самое и для Xgboost, но он не берет фактическую зависимую функцию, вместо этого создает свою собственную функцию, разве это не удивительно?

Давайте проверим, как это работает с помощью этой таблицы.

Итак, это простой пример прогнозирования уровня IQ с помощью возраста, но колонка "Новая функция (прогноз)" — это та, которую Xg-boost создал, взяв среднее значение всех IQ представлен в таблице. Как уже упоминалось, он возьмет новый столбец и обучит себя, но это не основной столбец/функция. Давайте посмотрим на это

Это новая и последняя функция, с которой начинается обучение в Xg-boost. Теперь он попытается предсказать остатки с помощью деревьев решений.

Как мы знаем критерии разбиения в деревьях решений, с помощью получения информации. Таким образом, корневой узел будет разделен, если он показывает максимальный прирост информации, и это дерево будет базовым учащимся или слабым учащимся и будет предсказывать новые значения остатков, которые при добавлении к предыдущей «Новая функция (предсказанная )”выдаст новые значения IQ, теперь снова идут те же процедуры и Xg-boost учится на ошибках этого базового учащегося и будет предсказывать новые значения и так далее до тех пор, пока потери или остатки не станут минимальными , и у нас есть наш сильный ученик в конце. Преимущество этого подхода заключается в том, что новые учащиеся добавляются к модели, изучая и исправляя ошибки предыдущих учеников.

Давайте рассмотрим практический пример на Python

- !pip установить xgboost

- Импортировать xgboost как xgb

Разделение и подгонка данных

- из sklearn.model_selection импорт train_test_split

- X_train, X_test, Y_train, Y_test = train_test_split(X, y, test_size=0,2)

Нам нужно изменить формат, который может обрабатывать Xg-boost

- D_train = xgb.DMatrix (X_train, метка = Y_train)

- D_test = xgb.DMatrix (X_test, метка = Y_test)

мы можем определить параметры нашего ансамбля усиления градиента

- параметр = {

- «эта»: 0,3,

- «макс_глубина»: 3,

- «объективный»: «мульти: softprob»,

- ‘num_class’: 3}

steps = 10 # Количество итераций обучения

Обучение и тестирование

модель = xgb.train (параметр, D_train, шаги)

предс = модель.прогноз(D_test)

Борьба с переоснащением

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

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

Ссылка - https://xgboost.readthedocs.io/

Другие параметры, на которые мы можем обратить внимание: max_depth и eta (скорость обучения).

Специальные примечания –

1. Мы можем использовать поиск по сетке для выбора оптимальных гиперпараметров

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

Использованная литература -

https://xgboost.readthedocs.io/

https://www.geeksforgeeks.org/xgboost-for-regression/