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)
-
Дополнительная выборка признаков для проверки, используемая при досрочной остановке. В
PipelineX_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,)
-
Предсказанные значения для входных выборок на каждой итерации.
Примеры из галереи
© 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