HistGradientBoostingClassifier
- classsklearn.ensemble.HistGradientBoostingClassifier(loss='log_loss', *, 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, class_weight=None)[исходный код]
-
Дерево классификации с градиентным бустингом на основе гистограмм.
Этот оцениватель работает намного быстрее, чем
GradientBoostingClassifier, на больших наборах данных (n_samples >= 10 000).Этот оцениватель имеет встроенную поддержку пропущенных значений (NaN). Во время обучения алгоритм построения дерева определяет в каждой точке разбиения, в какой дочерний узел — левый или правый — следует направить выборки с пропущенными значениями, исходя из потенциального прироста. При прогнозировании выборки с пропущенными значениями соответственно направляются в левый или правый дочерний узел. Если во время обучения для данного признака пропущенные значения не встречались, выборки с пропущенными значениями направляются в тот дочерний узел, в котором больше выборок.
Эта реализация создана под влиянием LightGBM.
Подробнее см. в руководстве пользователя.
Добавлено в версии 0.21.
- Параметры:
-
- loss{‘log_loss’}, по умолчанию=’log_loss’
-
Функция потерь, используемая в процессе бустинга.
В задачах бинарной классификации ‘log_loss’ также называют логистической функцией потерь, биномиальным девиансом или бинарной кросс-энтропией. Внутри модели на каждой итерации бустинга строится одно дерево, а для вычисления прогнозируемой вероятности положительного класса в качестве обратной функции связи используется логистическая сигмоидальная функция (expit).
В задачах многоклассовой классификации ‘log_loss’ также называют мультиномиальным девиансом или категориальной кросс-энтропией. Внутри модели на каждой итерации бустинга для каждого класса строится одно дерево, а для вычисления прогнозируемых вероятностей классов в качестве обратной функции связи используется функция softmax.
- learning_ratefloat, по умолчанию=0.1
-
Скорость обучения, также известная как сжатие. Используется как множитель для значений листьев. Используйте
1, чтобы отключить сжатие. - max_iterint, по умолчанию=100
-
Максимальное число итераций процесса бустинга, то есть максимальное число деревьев для бинарной классификации. Для многоклассовой классификации на каждой итерации строится
n_classesдеревьев. - 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. Например, это относится к датафреймам 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: монотонное убывание
Если задан словарь с ключами типа str, признаки сопоставляются с монотонными ограничениями по именам. Если задан массив, признаки сопоставляются с ограничениями по позициям. Пример использования см. в разделе Использование имён признаков для задания монотонных ограничений.
Ограничения действуют только для бинарной классификации и применяются к вероятности положительного класса. Подробнее см. в руководстве пользователя.
Добавлено в версии 0.23.
Изменено в версии 1.2: Добавлена поддержка словаря ограничений с именами признаков в качестве ключей.
- 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 или если в
fitпереданыX_valиy_val. Если задано значение True, досрочная остановка включена; в противном случае она отключена.Добавлено в версии 0.23.
- scoringstr или callable или None, по умолчанию=’loss’
-
Метод оценки, используемый для досрочной остановки. Используется только в том случае, если включён параметр
early_stopping. Возможные значения:- str: возможные значения см. в разделе Оцениватели, задаваемые строковыми именами.
- callable: вызываемый объект оценивателя (например, функция) с сигнатурой
scorer(estimator, X, y). Подробности см. в разделе Вызываемые оцениватели. -
None: используется точность. - ‘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
-
Генератор псевдослучайных чисел, управляющий подвыборкой в процессе разбиения на интервалы и разделением данных на обучающую и проверочную выборки, если включена досрочная остановка. Передайте целое число, чтобы получать воспроизводимые результаты при нескольких вызовах функции. См. глоссарий.
- class_weightdict или ‘balanced’, по умолчанию=None
-
Веса классов в виде
{class_label: weight}. Если параметр не задан, предполагается, что вес всех классов равен единице. Режим “balanced” автоматически корректирует веса обратно пропорционально частоте классов во входных данных, используя значения y, по формулеn_samples / (n_classes * np.bincount(y)). Обратите внимание, что эти веса перемножаются с sample_weight (передаваемым через метод fit), если заданsample_weight.Добавлено в версии 1.2.
- Атрибуты:
-
- classes_массив, форма = (n_classes,)
-
Метки классов.
- do_early_stopping_bool
-
Указывает, используется ли досрочная остановка во время обучения.
-
n_iter_int -
Число итераций процесса бустинга.
- n_trees_per_iteration_int
-
Число деревьев, строящихся на каждой итерации. Для бинарной классификации оно равно 1, а для многоклассовой классификации —
n_classes. - 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.
См. также
GradientBoostingClassifier-
Точный метод градиентного бустинга, который хуже масштабируется на наборах данных с большим числом выборок.
sklearn.tree.DecisionTreeClassifier-
Классификатор на основе дерева решений.
RandomForestClassifier-
Метаоцениватель, обучающий несколько классификаторов на основе деревьев решений на различных подвыборках набора данных и использующий усреднение для повышения точности прогнозирования и контроля переобучения.
AdaBoostClassifier-
Метаоцениватель, который сначала обучает классификатор на исходном наборе данных, а затем обучает дополнительные копии классификатора на том же наборе данных, корректируя веса неправильно классифицированных объектов так, чтобы последующие классификаторы уделяли больше внимания сложным случаям.
Примеры
>>> from sklearn.ensemble import HistGradientBoostingClassifier >>> from sklearn.datasets import load_iris >>> X, y = load_iris(return_X_y=True) >>> clf = HistGradientBoostingClassifier().fit(X, y) >>> clf.score(X, y) 1.0
- decision_function(X)[исходный код]
-
Вычисляет функцию принятия решения для
X.- Параметры:
-
- Xмассивоподобный объект, форма (n_samples, n_features)
-
Входные выборки.
- Возвращает:
-
- decisionndarray, форма (n_samples,) или (n_samples, n_trees_per_iteration)
-
Исходные прогнозируемые значения (то есть сумма значений листьев деревьев) для каждой выборки. n_trees_per_iteration равно числу классов при многоклассовой классификации.
- 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,)
-
Предсказанные классы.
- predict_proba(X)[исходный код]
-
Предсказывает вероятности классов для X.
- Параметры:
-
- Xмассивоподобный объект, форма (n_samples, n_features)
-
Входные выборки.
- Возвращает:
-
- pndarray, форма (n_samples, n_classes)
-
Вероятности классов для входных выборок.
- score(X, y, sample_weight=None)[исходный код]
-
Возвращает точность на предоставленных данных и метках.
В многометочной классификации это точность по подмножествам — строгая метрика, поскольку для каждой выборки требуется правильно предсказать весь набор меток.
- Параметры:
-
- Xмассивоподобный объект формы (n_samples, n_features)
-
Тестовые выборки.
- yмассивоподобный объект формы (n_samples,) или (n_samples, n_outputs)
-
Истинные метки для
X. - sample_weightмассивоподобный объект формы (n_samples,), по умолчанию=None
-
Веса выборок.
- Возвращает:
-
- scorefloat
-
Средняя точность
self.predict(X)относительноy.
- 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$') HistGradientBoostingClassifier[исходный код]
-
Настройте, следует ли запрашивать передачу метаданных методу
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, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
X_valвfit. - sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвfit. - sample_weight_valstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weight_valвfit. - y_valstr, True, False, or None, default=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$') HistGradientBoostingClassifier[исходный код]
-
Настройте, следует ли запрашивать передачу метаданных методу
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, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвscore.
- Возвращает:
-
- selfobject
-
Обновлённый объект.
-
- staged_decision_function(X)[исходный код]
-
Вычисляет функцию принятия решения для
Xна каждой итерации.Этот метод позволяет отслеживать (то есть определять ошибку на тестовом наборе) результат после каждого этапа.
- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Входные выборки.
- Выдаёт:
-
- decisiongenerator of ndarray of shape (n_samples,) or (n_samples, n_trees_per_iteration)
-
Значения функции принятия решения для входных выборок, соответствующие исходным значениям, предсказанным деревьями ансамбля. Классы соответствуют значениям атрибута classes_.
- staged_predict(X)[исходный код]
-
Предсказывает классы на каждой итерации.
Этот метод позволяет отслеживать (то есть определять ошибку на тестовом наборе) результат после каждого этапа.
Добавлено в версии 0.24.
- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Входные выборки.
- Выдаёт:
-
- ygenerator of ndarray of shape (n_samples,)
-
Предсказанные классы входных выборок на каждой итерации.
- staged_predict_proba(X)[исходный код]
-
Предсказывает вероятности классов на каждой итерации.
Этот метод позволяет отслеживать (то есть определять ошибку на тестовом наборе) результат после каждого этапа.
- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Входные выборки.
- Выдаёт:
-
- ygenerator of ndarray of shape (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.HistGradientBoostingClassifier.html