Используйте классы повышения градиента в Scikit-Learn для решения различных задач классификации и регрессии.
В первой части этой статьи мы представили алгоритм повышения градиента и показали его реализацию в псевдокоде.
В этой части статьи мы рассмотрим классы в Scikit-Learn, которые реализуют этот алгоритм, обсудим их различные параметры и продемонстрируем, как их использовать для решения нескольких задач классификации и регрессии.
Хотя библиотека XGBoost (о которой будет рассказано в следующей статье) обеспечивает более оптимизированную и хорошо масштабируемую реализацию повышения градиента, для небольших и средних наборов данных часто проще использовать классы повышения градиента в Scikit-Learn, которые имеют более простой интерфейс и значительно меньшее количество гиперпараметров для настройки.
Повышение градиента в Scikit-Learn
Scikit-Learn предоставляет следующие классы, реализующие модель деревьев решений с градиентным усилением (GBDT):
- GradientBoostingClassifier используется для задач классификации.
- GradientBoostingRegressor используется для задач регрессии.
В дополнение к стандартным параметрам деревьев решений, таким как criterion, max_depth (по умолчанию установлено значение 3) и min_samples_split, эти классы указать следующие параметры:
- потери — оптимизируемая функция потерь. В GradientBoostingClassifier эта функция может быть log_loss (по умолчанию) или экспоненциальной (что заставит усиление градиента вести себя как AdaBoost). В GradientBoostingRegressor эта функция может быть squared_loss (по умолчанию), absolute_loss, huber или quantile (см. эту статью о различиях между этими функциями потерь).
- n_estimators — количество итераций бустинга (по умолчанию 100).
- learning_rate — коэффициент, уменьшающий вклад каждого дерева (по умолчанию 0,1).
- подвыборка — доля выборок, используемых для обучения каждого дерева (по умолчанию 1,0).
- max_features — количество функций, которые следует учитывать при поиске лучшего разделения в каждом…