Повышение градиента — один из самых мощных методов построения прогностических моделей.
В этом блоге мы познакомимся с алгоритмом машинного обучения, повышающим градиент, и познакомимся с тем, откуда он взялся и как он работает.
Давайте разберемся, что такое буст, и попробуем найти отличия ч/б бэггинга от буста.
Краткое описание бэггинга и бустинга
Бэггинг – это метод машинного обучения, используемый для повышения точности статистической классификации и регрессии. Дерево решений используется для определения решения о мешках, но все типы методов могут быть решены с помощью мешков. Обычно бэггинг также используется для защиты предвзятости. Преимущество использования методов мешков в том, что они могут комбинироваться в регулировании действий выборок данных. Моделирование в бэггинге (самозагрузочное агрегирование) обычно дает лучшие результаты. Техника бэггинга выполняется с использованием дерева решений для повышения точности. Данные выборки будут взяты случайным образом. Бэггинг может решать проблемы регрессии или проблемы классификации.
Бустирование – это метод ансамбля, в котором предикторы создаются не независимо друг от друга, а последовательно.
Повышение опирается на логику, в которой последующие предикторы учатся на ошибках предыдущих предикторов. Таким образом, к концу мы получаем лучшие прогнозы. Повышение градиента — это пример алгоритма повышения.
Повышение градиента — это метод машинного обучения для задач регрессии и классификации, который создает модель прогнозирования в виде ансамбля слабых моделей прогнозирования, обычно деревьев решений.
Мы можем добиться повышения градиента с трех шагов
- Построить базовую модель с постоянными значениями
- Вычислить остатки (ошибки) и построить деревья решений
- Прогнозирование вывода
На изображении выше вы можете увидеть математическую интуицию, стоящую за усилением градиента.
Теперь давайте реализуем повышение градиента практически, используя набор данных прогнозирования цен на жилье в Бостоне.
Давайте начнем часть кодирования, импортировав основные библиотеки.
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)
Я надеюсь, что этот блог помог вам получить общее представление о том, как работает повышение градиента.