Повышение градиента — один из самых мощных методов построения прогностических моделей.

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

Давайте разберемся, что такое буст, и попробуем найти отличия ч/б бэггинга от буста.

Краткое описание бэггинга и бустинга

Бэггинг – это метод машинного обучения, используемый для повышения точности статистической классификации и регрессии. Дерево решений используется для определения решения о мешках, но все типы методов могут быть решены с помощью мешков. Обычно бэггинг также используется для защиты предвзятости. Преимущество использования методов мешков в том, что они могут комбинироваться в регулировании действий выборок данных. Моделирование в бэггинге (самозагрузочное агрегирование) обычно дает лучшие результаты. Техника бэггинга выполняется с использованием дерева решений для повышения точности. Данные выборки будут взяты случайным образом. Бэггинг может решать проблемы регрессии или проблемы классификации.

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

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

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

Мы можем добиться повышения градиента с трех шагов

  • Построить базовую модель с постоянными значениями
  • Вычислить остатки (ошибки) и построить деревья решений
  • Прогнозирование вывода

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

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

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

import numpy as np
import pandas as pd

После импорта основных библиотек. давайте импортируем набор данных и разделим его на функции и целевую переменную.

from sklearn.datasets import load_boston
boston = load_boston()
X = pd.DataFrame(boston.data, columns=boston.feature_names)
y = pd.Series(boston.target)

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

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y)

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

from sklearn.ensemble import GradientBoostingRegressor
regressor = GradientBoostingRegressor(
    max_depth=2,
    n_estimators=2,
    learning_rate=1.0
)
regressor.fit(X_train, y_train)

Здесь max_depth — это количество узлов, равное 2, эти 2 узла ведут к 4 листьям, а n_estimators — это количество деревьев, в этом случае мы используем 2 и learning_rate равен 1.0, который может варьироваться от 0 до 1.0.

Таким образом, мы подогнали данные к модели, теперь давайте оценим модель.

from sklearn.metrics import mean_absolute_error
y_pred = regressor.predict(X_test)
mean_absolute_error(y_test, y_pred)

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