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)[source]
-
Дерево регрессии градиентного бустинга на основе гистограмм.
Этот оценщик намного быстрее, чем
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,), по умолчанию=None
-
Указывает категориальные признаки.
- None: ни один признак не будет считаться категориальным.
- массив-подобный тип bool: маска bool, указывающая категориальные признаки.
- массив-подобный тип int: целочисленные индексы, указывающие категориальные признаки.
- массив-подобный тип str: имена категориальных признаков (предполагая, что обучающие данные имеют имена признаков).
-
"from_dtype": столбцы фрейма данных с типом dtype «category» считаются категориальными признаками. Вход должен быть объектом, предоставляющим метод__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) или словарь, по умолчанию=None
-
Монотонные ограничения, накладываемые на каждый признак, задаются следующими целочисленными значениями:
- 1: монотонное возрастание
- 0: без ограничения
- -1: монотонное убывание
Если словарь со строковыми ключами, отображает признак на монотонные ограничения по имени. Если массив, признаки отображаются на ограничения по положению. См. Использование имён признаков для задания монотонных ограничений для примера использования.
Подробнее см. в Руководстве пользователя.
Добавлена в версии 0.23.
Изменено в версии 1.2: Принимает словарь ограничений с именами признаков в качестве ключей.
- interaction_cst{“pairwise”, “no_interactions”} или последовательность списков/кортежей/множеств целых чисел, по умолчанию=None
-
Указывает ограничения на взаимодействие — наборы признаков, которые могут взаимодействовать друг с другом в узлах разделения дочерних элементов.
Каждый элемент задаёт набор индексов признаков, которые разрешено взаимодействовать друг с другом. Если есть больше признаков, чем указано в этих ограничениях, они обрабатываются как если бы они были указаны как дополнительный набор.
Строки «pairwise» и «no_interactions» являются сокращениями для разрешения только парных или отсутствия взаимодействий соответственно.
Например, при наличии 5 признаков в целом,
interaction_cst=[{0, 1}]эквивалентноinteraction_cst=[{0, 1}, {2, 3, 4}], и указывает, что каждый раздел дерева либо только разбивается по признакам 0 и 1, либо только по признакам 2, 3 и 4.Добавлена в версии 1.2.
- warm_startbool, по умолчанию=False
-
При установке в
True, повторно используйте решение предыдущего вызова fit и добавьте больше оценщиков в ансамбль. Для того, чтобы результаты были валидны, оценщик должен быть повторно обучен только на одних и тех же данных. См. Словарь. - early_stopping‘auto’ или bool, по умолчанию=’auto’
-
Если ‘auto’, раннее прекращение включено, если размер выборки больше 10000. Если True, раннее прекращение включено, иначе раннее прекращение отключено.
Добавлена в версии 0.23.
- scoringстрока или вызываемый объект или None, по умолчанию=’loss’
-
Параметр оценки, используемый для раннего прекращения. Он может быть единственной строкой (см. Параметр scoring: определение правил оценки моделей) или вызываемым объектом (см. Вызываемые объекты-оценщики). Если None, используется по умолчанию оценщик оценщика. Если
scoring='loss', проверка раннего прекращения выполняется относительно значения потерь. Используется только если выполняется раннее прекращение. - validation_fractionint или float или None, по умолчанию=0.1
-
Доля (или абсолютный размер) обучающих данных, выделяемых в качестве проверочных данных для раннего прекращения. Если None, раннее прекращение выполняется на обучающих данных. Используется только если выполняется раннее прекращение.
- 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
-
Генератор псевдослучайных чисел для управления подвыборкой в процессе формирования бинов и разделением обучающих/проверочных данных, если включено раннее прекращение. Передайте целое число для воспроизводимого результата при нескольких вызовах функции. См. Словарь.
- Атрибуты:
-
- do_early_stopping_bool
-
Указывает, используется ли раннее прекращение обучения во время обучения.
-
n_iter_int -
Количество итераций процесса бустинга.
- n_trees_per_iteration_int
-
Количество деревьев, построенных на каждой итерации. Для регрессоров это всегда 1.
- train_score_ndarray, shape (n_iter_+1,)
-
Значения метрики на обучающих данных на каждой итерации. Первое значение — метрика ансамбля до первой итерации. Метрики вычисляются в соответствии с параметром
scoring. Еслиscoringне ‘loss’, метрики вычисляются на подмножестве не более чем 10 000 образцов. Пусто, если раннее прекращение не использовалось. - validation_score_ndarray, shape (n_iter_+1,)
-
Значения метрики на проверочных данных на каждой итерации. Первое значение — метрика ансамбля до первой итерации. Метрики вычисляются в соответствии с параметром
scoring. Пусто, если раннее прекращение не использовалось или еслиvalidation_fractionравно None. - is_categorical_ndarray, shape (n_features, ) or None
-
Булево маскирование категориальных признаков.
Noneесли категориальных признаков нет. - n_features_in_int
-
Количество признаков, увиденных во время fit.
Добавлена в версии 0.24.
-
feature_names_in_ndarray of shape (
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.92...
- fit(X, y, sample_weight=None)[source]
-
Обучение модели градиентного бустинга.
- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Входные образцы.
- yarray-like of shape (n_samples,)
-
Целевые значения.
- sample_weightarray-like of shape (n_samples,) default=None
-
Веса обучающих данных.
Добавлена в версии 0.23.
- Возвращает:
-
- selfobject
-
Обученная модель.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, обратитесь к Руководству пользователя по тому, как работает механизм маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
MetadataRequestинкапсулирующая информацию о маршрутизации.
- get_params(deep=True)[source]
-
Получить параметры этого оценщика.
- Параметры:
-
- deepbool, default=True
-
Если True, вернет параметры этого оценщика и вложенных под-объектов, которые являются оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров сопоставлены со своими значениями.
- propertyn_iter_
-
Количество итераций процесса бустинга.
- predict(X)[source]
-
Предсказание значений для X.
- Параметры:
-
- Xarray-like, shape (n_samples, n_features)
-
Входные образцы.
- Возвращает:
-
- yndarray, shape (n_samples,)
-
Предсказанные значения.
-
- score(X, y, sample_weight=None)[source]
-
Возвращает коэффициент детерминации предсказания.
Коэффициент детерминации \(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.- Параметры:
-
- Xarray-like формы (n_samples, n_features)
-
Тестовые образцы. Для некоторых оценок это может быть предварительно вычисленная матрица ядер или список общих объектов вместо с формой
(n_samples, n_samples_fitted), гдеn_samples_fitted— количество образцов, используемых при подгонке для оценщика. - yarray-like формы (n_samples,) или (n_samples, n_outputs)
-
Истинные значения для
X. - sample_weightarray-like формы (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(*, sample_weight:bool|None|str='$UNCHANGED$') HistGradientBoostingRegressor[source]
-
Запрос метаданных, переданных методу
fit.Обратите внимание, что этот метод актуален только если
enable_metadata_routing=True(см.sklearn.set_config). Подробнее о работе механизма маршрутизации см. в Руководстве пользователя.Варианты для каждого параметра:
-
True: метаданные запрашиваются и передаютсяfitпри наличии. Запрос игнорируется, если метаданные не предоставлены. -
False: метаданные не запрашиваются, и мета-оценщик не будет передавать ихfit. -
None: метаданные не запрашиваются, и мета-оценщик вызовет ошибку, если пользователь предоставит их. -
str: метаданные должны передаваться мета-оценщику с данным псевдонимом вместо оригинального имени.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, а не для других.Добавлен в версии 1.3.
Примечание
Этот метод актуален только в том случае, если этот оценщик используется в качестве под-оценщика мета-оценщика, например, внутри
Pipeline. В противном случае он не оказывает никакого влияния.- Параметры:
-
- sample_weightstr, True, False, или None, по умолчанию sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвfit.
- Возвращает:
-
- selfобъект
-
Обновленный объект.
-
- set_params(**params)[source]
-
Устанавливает параметры данного оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (такими как
Pipeline). Последние имеют параметры в формате<component>__<parameter>, чтобы было возможно обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') HistGradientBoostingRegressor[source]
-
Запрос метаданных, передаваемых методу
score.Обратите внимание, что этот метод актуален только если
enable_metadata_routing=True(см.sklearn.set_config). Пожалуйста, ознакомьтесь со Руководством пользователя, чтобы узнать, как работает механизм маршрутизации.Доступные варианты для каждого параметра:
-
True: метаданные запрашиваются и передаются методуscore(если предоставлены). Запрос игнорируется, если метаданные не предоставлены. -
False: метаданные не запрашиваются, и мета-эстиматор не передаст ихscore. -
None: метаданные не запрашиваются, и мета-эстиматор выдаст ошибку, если пользователь их предоставит. -
str: метаданные должны быть переданы мета-эстиматору с данным псевдонимом вместо оригинального имени.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, а не для других.Добавлена в версии 1.3.
Примечание
Этот метод актуален только если данный эстиматор используется как подэстиматор мета-эстиматора, например, внутри
Pipeline. В противном случае он не оказывает влияния.- Parameters:
-
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвscore.
- Returns:
-
- selfobject
-
Обновленный объект.
-
- staged_predict(X)[source]
-
Предсказание целевого значения регрессии для каждой итерации.
Этот метод позволяет отслеживать (т.е. определять ошибку на тестовом наборе) после каждой стадии.
Добавлена в версии 0.24.
- Parameters:
-
- Xarray-like of shape (n_samples, n_features)
-
Входные данные.
- Yields:
-
- yгенератор ndarray of shape (n_samples,)
-
Предсказанные значения входных данных для каждой итерации.
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.ensemble.HistGradientBoostingRegressor.html