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)[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

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

Атрибуты:
END_OF_DOCUMENT_MARKER
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,)

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

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

Основные моменты выпуска scikit-learn 1.3

Основные моменты выпуска scikit-learn 1.2

Основные моменты выпуска scikit-learn 1.1

Основные моменты выпуска scikit-learn 1.0

Основные моменты выпуска scikit-learn 0.24

Основные моменты выпуска scikit-learn 0.23

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

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

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

Особенности деревьев градиентного бустинга на основе гистограмм

Градиентный бустинг регрессии

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

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

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

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

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

Регрессия Пуассона и потери, не являющиеся нормальными

Диаграммы частичных зависимостей и индивидуальных условных ожиданий

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

© 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

Spec-Zone.ru

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