Spec-Zone.ru › scikit-learn

HistGradientBoostingRegressor

classsklearn.ensemble.HistGradientBoostingRegressor(loss='squared_error', *, quantile=None, learning_rate=0.1, max_iter=100, max_leaf_nodes=31, max_depth=None, min_samples_leaf=20, l2_regularization=0.0, max_features=1.0, max_bins=255, categorical_features='from_dtype', monotonic_cst=None, interaction_cst=None, warm_start=False, early_stopping='auto', scoring='loss', validation_fraction=0.1, n_iter_no_change=10, tol=1e-07, verbose=0, random_state=None)[исходный код]

Регрессионное дерево с градиентным бустингом на основе гистограмм.

Этот оценщик работает намного быстрее, чем GradientBoostingRegressor, на больших наборах данных (n_samples >= 10 000).

Этот оценщик изначально поддерживает пропущенные значения (NaN). Во время обучения алгоритм построения дерева в каждой точке разбиения определяет на основе потенциального выигрыша, в дочерний узел слева или справа следует направить образцы с пропущенными значениями. При прогнозировании образцы с пропущенными значениями соответственно направляются в левый или правый дочерний узел. Если при обучении для данного признака пропущенные значения не встречались, образцы с пропущенными значениями направляются в дочерний узел с наибольшим количеством образцов. Пример использования этой возможности см. в разделе Признаки в деревьях с градиентным бустингом на основе гистограмм.

Эта реализация основана на LightGBM.

Подробнее см. в руководстве пользователя.

Добавлено в версии 0.21.

Параметры:
loss{‘squared_error’, ‘absolute_error’, ‘gamma’, ‘poisson’, ‘quantile’}, по умолчанию=’squared_error’

Функция потерь, используемая в процессе бустинга. Обратите внимание, что потери “squared error”, “gamma” и “poisson” фактически реализуют “половину суммы квадратов ошибок”, “половину девианса гамма-распределения” и “половину девианса распределения Пуассона” соответственно, чтобы упростить вычисление градиента. Кроме того, потери “gamma” и “poisson” внутри используют логарифмическую функцию связи; для “gamma” требуется y > 0, а для “poisson” — y >= 0. В “quantile” используется функция потерь pinball.

Изменено в версии 0.23: Добавлен вариант ‘poisson’.

Изменено в версии 1.1: Добавлен вариант ‘quantile’.

Изменено в версии 1.3: Добавлен вариант ‘gamma’.

quantilefloat, по умолчанию=None

Если loss равен “quantile”, этот параметр задаёт оцениваемую квантиль и должен находиться в диапазоне от 0 до 1.

learning_ratefloat, по умолчанию=0.1

Скорость обучения, также известная как сжатие. Используется как множитель для значений листьев. Для отключения сжатия используйте 1.

max_iterint, по умолчанию=100

Максимальное количество итераций процесса бустинга, то есть максимальное количество деревьев.

max_leaf_nodesint или None, по умолчанию=31

Максимальное количество листьев в каждом дереве. Должно быть строго больше 1. Если равно None, максимальное ограничение отсутствует.

max_depthint или None, по умолчанию=None

Максимальная глубина каждого дерева. Глубина дерева — это количество рёбер от корня до самого глубокого листа. По умолчанию глубина не ограничена.

min_samples_leafint, по умолчанию=20

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

l2_regularizationfloat, по умолчанию=0

Параметр L2-регуляризации, штрафующий листья с малыми значениями гессиана. Для отключения регуляризации (по умолчанию) используйте 0.

max_featuresfloat, по умолчанию=1.0

Доля случайно выбираемых признаков при каждом разбиении узла. Это разновидность регуляризации: меньшие значения делают деревья более слабыми моделями и могут предотвратить переобучение. Если заданы ограничения взаимодействий из interaction_cst, при подвыборке учитываются только разрешённые признаки.

Добавлено в версии 1.4.

max_binsint, по умолчанию=255

Максимальное количество интервалов для непропущенных значений. Перед обучением каждый признак входного массива X разбивается на интервалы с целочисленными значениями, что значительно ускоряет этап обучения. Для признаков с небольшим количеством уникальных значений может использоваться менее max_bins интервалов. Помимо max_bins интервалов всегда резервируется ещё один интервал для пропущенных значений. Значение не должно превышать 255.

categorical_featuresмассивоподобный объект из {bool, int, str} формы (n_features) или (n_categorical_features,), по умолчанию=’from_dtype’

Указывает категориальные признаки.

  • None : ни один признак не будет считаться категориальным.
  • массивоподобный объект с булевыми значениями : булева маска, указывающая категориальные признаки.
  • массивоподобный объект с целыми числами : целочисленные индексы категориальных признаков.
  • массивоподобный объект со строками: названия категориальных признаков (предполагается, что у обучающих данных есть названия признаков).
  • "from_dtype": столбцы датафрейма с типом данных “Categorical” и “Enum” считаются категориальными признаками. Входные данные должны быть датафреймом, поддерживаемым narwhals (или совместимым с ним): должна работать функция narwhals.from_native. Например, это относится к DataFrame из pandas и polars.

Для каждого категориального признака допускается не более max_bins уникальных категорий. Отрицательные значения категориальных признаков, закодированные числовыми типами данных, трактуются как пропущенные. Все категориальные значения преобразуются в числа с плавающей точкой. Это означает, что категориальные значения 1.0 и 1 считаются одной и той же категорией.

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

Добавлено в версии 0.24.

Изменено в версии 1.2: Добавлена поддержка названий признаков.

Изменено в версии 1.4: Добавлен вариант "from_dtype".

Изменено в версии 1.6: Значение по умолчанию изменено с None на "from_dtype".

monotonic_cstмассивоподобный объект из int формы (n_features) или dict, по умолчанию=None

Монотонное ограничение для каждого признака задаётся следующими целочисленными значениями:

  • 1: монотонное возрастание
  • 0: без ограничений
  • -1: монотонное убывание

Если передан dict со строковыми ключами, признаки сопоставляются монотонным ограничениям по названиям. Если передан массив, признаки сопоставляются ограничениям по позициям. Пример использования см. в разделе Использование названий признаков для задания монотонных ограничений.

Подробнее см. в руководстве пользователя.

Добавлено в версии 0.23.

Изменено в версии 1.2: Добавлена поддержка dict с названиями признаков в качестве ключей.

interaction_cst{“pairwise”, “no_interactions”} или последовательность списков/кортежей/множеств int, по умолчанию=None

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

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

Строки “pairwise” и “no_interactions” являются сокращёнными обозначениями, разрешающими только попарные взаимодействия или запрещающими взаимодействия соответственно.

Например, для 5 признаков interaction_cst=[{0, 1}] эквивалентно interaction_cst=[{0, 1}, {2, 3, 4}] и указывает, что каждая ветвь дерева будет разбиваться либо только по признакам 0 и 1, либо только по признакам 2, 3 и 4.

Пример использования interaction_cst см. в этом примере.

Добавлено в версии 1.2.

warm_startbool, по умолчанию=False

Если задано значение True, повторно используется результат предыдущего вызова fit, а в ансамбль добавляются новые оценщики. Чтобы результаты были корректными, оценщик следует повторно обучать только на тех же данных. См. глоссарий.

early_stopping‘auto’ или bool, по умолчанию=’auto’

Если задано значение ‘auto’, досрочная остановка включается, когда размер выборки превышает 10000 или когда X_val и y_val переданы в fit. Если задано значение True, досрочная остановка включена; в противном случае она отключена.

Добавлено в версии 0.23.

scoringstr, вызываемый объект или None, по умолчанию=’loss’

Метод оценки, используемый для досрочной остановки. Используется только если включено early_stopping. Варианты:

  • str: варианты см. в разделе Оценщики, задаваемые строковым именем.
  • вызываемый объект: вызываемый объект-оценщик (например, функция) с сигнатурой scorer(estimator, X, y). Подробности см. в разделе Вызываемые оценщики.
  • None: используется коэффициент детерминации (\(R^2\)).
  • ‘loss’: досрочная остановка проверяется по значению функции потерь.
validation_fractionint, float или None, по умолчанию=0.1

Доля (или абсолютный размер) обучающих данных, выделяемая в качестве проверочных данных для досрочной остановки. Если задано None, досрочная остановка выполняется на обучающих данных. Значение игнорируется, если досрочная остановка не выполняется, например при early_stopping=False, либо если в fit переданы X_val и y_val.

n_iter_no_changeint, по умолчанию=10

Используется для определения момента “досрочной остановки”. Обучение прекращается, если ни одна из последних n_iter_no_change оценок не лучше оценки, полученной n_iter_no_change - 1 итераций назад, с учётом допуска. Используется только при выполнении досрочной остановки.

tolfloat, по умолчанию=1e-7

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

verboseint, по умолчанию=0

Уровень подробности вывода. Если значение не равно нулю, выводится информация о процессе обучения. 1 выводит только сводную информацию, 2 — информацию для каждой итерации.

random_stateint, экземпляр RandomState или None, по умолчанию=None

Генератор псевдослучайных чисел, управляющий подвыборкой в процессе разбиения на интервалы, а также разделением данных на обучающую и проверочную выборки, если включена досрочная остановка. Передайте int, чтобы получать воспроизводимые результаты при нескольких вызовах функции. См. глоссарий.

Атрибуты:
do_early_stopping_bool

Указывает, используется ли досрочная остановка при обучении.

n_iter_int

Количество итераций процесса бустинга.

n_trees_per_iteration_int

Количество деревьев, построенных на каждой итерации. Для регрессоров это значение всегда равно 1.

train_score_ndarray, форма (n_iter_+1,)

Оценки на каждой итерации для обучающих данных. Первый элемент — оценка ансамбля до первой итерации. Оценки вычисляются в соответствии с параметром scoring. Если scoring не равно ‘loss’, оценки вычисляются на подмножестве, содержащем не более 10 000 образцов. Пусто, если досрочная остановка не используется.

validation_score_ndarray, форма (n_iter_+1,)

Оценки на каждой итерации для отложенных проверочных данных. Первый элемент — оценка ансамбля до первой итерации. Оценки вычисляются в соответствии с параметром scoring. Пусто, если досрочная остановка не используется или если validation_fraction имеет значение None.

is_categorical_ndarray, форма (n_features, ) или None

Булева маска категориальных признаков. None, если категориальных признаков нет.

n_features_in_int

Количество признаков, обнаруженных при вызове fit.

Добавлено в версии 0.24.

feature_names_in_ndarray формы (n_features_in_,)

Названия признаков, обнаруженных при вызове fit. Определён только в том случае, если X содержит названия признаков, представленные строками.

Добавлено в версии 1.0.

См. также

GradientBoostingRegressor

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

sklearn.tree.DecisionTreeRegressor

Регрессор на основе дерева решений.

RandomForestRegressor

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

AdaBoostRegressor

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

Примеры

>>> from sklearn.ensemble import HistGradientBoostingRegressor
>>> from sklearn.datasets import load_diabetes
>>> X, y = load_diabetes(return_X_y=True)
>>> est = HistGradientBoostingRegressor().fit(X, y)
>>> est.score(X, y)
0.93...
fit(X, y, sample_weight=None, *, X_val=None, y_val=None, sample_weight_val=None)[исходный код]

Обучить модель градиентного бустинга.

Параметры:
Xмассивоподобный объект формы (n_samples, n_features)

Входные образцы.

yмассивоподобный объект формы (n_samples,)

Целевые значения.

sample_weightмассивоподобный объект формы (n_samples,) по умолчанию=None

Веса обучающих данных.

Добавлено в версии 0.23.

X_valмассивоподобный объект формы (n_val, n_features)

Дополнительная выборка признаков для проверки, используемая при досрочной остановке. В Pipeline X_val можно преобразовать тем же способом, что и X, с помощью Pipeline(..., transform_input=["X_val"]).

Добавлено в версии 1.7.

y_valмассивоподобный объект формы (n_samples,)

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

Добавлено в версии 1.7.

sample_weight_valмассивоподобный объект формы (n_samples,) по умолчанию=None

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

Добавлено в версии 1.7.

Возвращает:
selfobject

Обученный оценщик.

get_metadata_routing()[исходный код]

Получить маршрутизацию метаданных этого объекта.

О том, как работает механизм маршрутизации, см. в руководстве пользователя.

Возвращает:
routingMetadataRequest

Объект MetadataRequest, содержащий информацию о маршрутизации.

get_params(deep=True)[исходный код]

Получить параметры этого оценщика.

Параметры:
deepbool, по умолчанию=True

Если True, возвращает параметры этого оценщика и содержащихся в нём подобъектов, которые являются оценщиками.

Возвращает:
paramsdict

Названия параметров, сопоставленные их значениям.

predict(X)[исходный код]

Предсказать значения для X.

Параметры:
Xмассивоподобный объект, форма (n_samples, n_features)

Входные образцы.

Возвращает:
yndarray, форма (n_samples,)

Предсказанные значения.

score(X, y, sample_weight=None)[исходный код]

Вернуть коэффициент детерминации на тестовых данных.

Коэффициент детерминации \(R^2\) определяется как \((1 - \frac{u}{v})\), где \(u\) — сумма квадратов остатков ((y_true - y_pred)** 2).sum(), а \(v\) — общая сумма квадратов ((y_true - y_true.mean()) ** 2).sum(). Наилучшая возможная оценка равна 1.0, но она может быть отрицательной (поскольку модель может быть сколь угодно хуже). Константная модель, которая всегда предсказывает ожидаемое значение y, игнорируя входные признаки, получила бы оценку \(R^2\), равную 0.0.

Параметры:
Xмассивоподобный объект формы (n_samples, n_features)

Тестовые образцы. Для некоторых оценщиков это может быть предварительно вычисленная матрица ядра или список обобщённых объектов с формой (n_samples, n_samples_fitted), где n_samples_fitted — количество образцов, использованных при обучении оценщика.

yмассивоподобный объект формы (n_samples,) или (n_samples, n_outputs)

Истинные значения для X.

sample_weightмассивоподобный объект формы (n_samples,), по умолчанию=None

Веса образцов.

Возвращает:
scorefloat

\(R^2\) для self.predict(X) относительно y.

Примечания

Оценка \(R^2\), используемая при вызове score для регрессора, использует multioutput='uniform_average' начиная с версии 0.23, чтобы соответствовать значению по умолчанию для r2_score. Это влияет на метод score всех регрессоров с несколькими выходами (за исключением MultiOutputRegressor).

set_fit_request(*, X_val:bool|None|str='$UNCHANGED$', sample_weight:bool|None|str='$UNCHANGED$', sample_weight_val:bool|None|str='$UNCHANGED$', y_val:bool|None|str='$UNCHANGED$') → HistGradientBoostingRegressor[исходный код]

Настройте, следует ли запрашивать передачу метаданных методу fit.

Обратите внимание, что этот метод имеет значение только в том случае, если данный оцениватель используется как подчинённый оцениватель в составе метаоценивателя и маршрутизация метаданных включена с помощью enable_metadata_routing=True (см. sklearn.set_config). Информацию о работе механизма маршрутизации см. в Руководстве пользователя.

Для каждого параметра доступны следующие варианты:

  • True: метаданные запрашиваются и передаются в fit, если они предоставлены. Если метаданные не предоставлены, запрос игнорируется.
  • False: метаданные не запрашиваются, и метаоцениватель не будет передавать их в fit.
  • None: метаданные не запрашиваются, и метаоцениватель вызовет ошибку, если пользователь их предоставит.
  • str: метаданные следует передавать метаоценивателю под указанным псевдонимом вместо исходного имени.

Значение по умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменить запрос для одних параметров, не затрагивая остальные.

Добавлено в версии 1.3.

Параметры:
X_valstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра X_val в fit.

sample_weightstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в fit.

sample_weight_valstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight_val в fit.

y_valstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра y_val в fit.

Возвращает:
selfobject

Обновлённый объект.

set_params(**params)[исходный код]

Задать параметры этого оценивателя.

Метод работает как с простыми оценивателями, так и с вложенными объектами (например, Pipeline). У последних параметры имеют вид <component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценивателя.

Возвращает:
selfэкземпляр оценивателя

Экземпляр оценивателя.

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → HistGradientBoostingRegressor[исходный код]

Настройте, следует ли запрашивать передачу метаданных методу score.

Обратите внимание, что этот метод имеет значение только в том случае, если данный оцениватель используется как подчинённый оцениватель в составе метаоценивателя и маршрутизация метаданных включена с помощью enable_metadata_routing=True (см. sklearn.set_config). Информацию о работе механизма маршрутизации см. в Руководстве пользователя.

Для каждого параметра доступны следующие варианты:

  • True: метаданные запрашиваются и передаются в score, если они предоставлены. Если метаданные не предоставлены, запрос игнорируется.
  • False: метаданные не запрашиваются, и метаоцениватель не будет передавать их в score.
  • None: метаданные не запрашиваются, и метаоцениватель вызовет ошибку, если пользователь их предоставит.
  • str: метаданные следует передавать метаоценивателю под указанным псевдонимом вместо исходного имени.

Значение по умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменить запрос для одних параметров, не затрагивая остальные.

Добавлено в версии 1.3.

Параметры:
sample_weightstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в score.

Возвращает:
selfobject

Обновлённый объект.

staged_predict(X)[исходный код]

Предсказать целевое значение для регрессии на каждой итерации.

Этот метод позволяет отслеживать результаты (т. е. определять ошибку на тестовом наборе) после каждого этапа.

Добавлено в версии 0.24.

Параметры:
Xмассивоподобный объект формы (n_samples, n_features)

Входные выборки.

Выдаёт:
yгенератор ndarray формы (n_samples,)

Предсказанные значения для входных выборок на каждой итерации.

Примеры из галереи

Инженерия признаков, связанных со временем

Влияние сложности модели

Лаговые признаки для прогнозирования временных рядов

Сравнение моделей случайного леса и гистограммного градиентного бустинга

Поддержка категориальных признаков в градиентном бустинге

Интервалы предсказания для регрессии с градиентным бустингом

Регрессия с градиентным бустингом

Возможности деревьев с гистограммным градиентным бустингом

Монотонные ограничения

Объединение предсказателей с помощью стекинга

Графики частичной зависимости и индивидуальных условных ожиданий

Регрессия Пуассона и ненормальная функция потерь

Сравнение Target Encoder с другими кодировщиками

Основные нововведения scikit-learn 0.23

Основные нововведения scikit-learn 0.24

Основные нововведения scikit-learn 1.0

Основные нововведения scikit-learn 1.1

Основные нововведения scikit-learn 1.2

Основные нововведения scikit-learn 1.3

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.ensemble.HistGradientBoostingRegressor.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API