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)[source]
-
Классификационное дерево градиентного бустинга на основе гистограмм.
Этот оценщик намного быстрее, чем
GradientBoostingClassifierдля больших наборов данных (n_samples >= 10 000).Этот оценщик имеет встроенную поддержку пропущенных значений (NaN). Во время обучения строитель дерева определяет на каждом узле, к какому дочернему элементу (левому или правому) должны переходить образцы с пропущенными значениями, на основе потенциального прироста. При прогнозировании образцы с пропущенными значениями последовательно назначаются левому или правому дочернему элементу. Если для данного признака во время обучения не встречались пропущенные значения, то образцы с пропущенными значениями отображаются на тот дочерний элемент, у которого больше образцов.
Эта реализация вдохновлена LightGBM.
Подробнее см. в Руководстве пользователя.
Добавлена в версии 0.21.
- Параметры:
-
- loss{‘log_loss’}, default=’log_loss’
-
Функция потерь, используемая в процессе бустинга.
Для задач бинарной классификации «log_loss» также известна как логистическая потеря, биномиальная дисперсия или бинарная кросс-энтропия. Внутри модель подбирает одно дерево на итерацию бустинга и использует логистическую сигмоиду (expit) в качестве обратной функции связи для вычисления предсказанной вероятности принадлежности к положительному классу.
Для задач многоклассовой классификации «log_loss» также известна как многономиальная дисперсия или категориальная кросс-энтропия. Внутри модель подбирает по одному дереву на итерацию и на каждый класс и использует функцию softmax в качестве обратной функции связи для вычисления предсказанных вероятностей принадлежности к классам.
- learning_ratefloat, default=0.1
-
Скорость обучения, также известная как сжатие. Используется как множительный фактор для значений листьев. Используйте
1для отсутствия сжатия. - max_iterint, default=100
-
Максимальное количество итераций процесса бустинга, т.е. максимальное количество деревьев для бинарной классификации. Для многоклассовой классификации
n_classesдерева строятся на каждой итерации. - max_leaf_nodesint or None, default=31
-
Максимальное количество листьев для каждого дерева. Должно быть строго больше 1. Если None, ограничений нет.
- max_depthint or None, default=None
-
Максимальная глубина каждого дерева. Глубина дерева — это количество рёбер от корня до самого глубокого листа. Глубина по умолчанию не ограничена.
- min_samples_leafint, default=20
-
Минимальное количество выборок на листе. Для небольших наборов данных с менее чем несколькими сотнями выборок рекомендуется снизить это значение, так как будут строиться только очень неглубокие деревья.
- l2_regularizationfloat, default=0
-
Параметр регуляризации L2, наказывающий листья с небольшими гессианами. Используйте
0для отсутствия регуляризации (по умолчанию). - max_featuresfloat, default=1.0
-
Пропорция случайных выбранных признаков в каждом узле разбиения. Это форма регуляризации, меньшие значения делают деревья более слабыми и могут предотвратить переобучение. Если присутствуют ограничения на взаимодействие от
interaction_cst, учитываются только разрешённые признаки для подвыборки.Добавлена в версии 1.4.
- max_binsint, default=255
-
Максимальное количество интервалов для использования для ненулевых значений. Перед обучением каждый признак входного массива
Xразбивается на целочисленные интервалы, что позволяет значительно ускорить этап обучения. Признаки с небольшим количеством уникальных значений могут использовать меньше чемmax_binsинтервалов. В дополнение кmax_binsинтервалам всегда резервируется ещё один интервал для пропущенных значений. Не должно быть больше 255. - categorical_featuresarray-like of {bool, int, str} of shape (n_features) or shape (n_categorical_features,), default=None
-
Указывает категориальные признаки.
- None : ни один признак не будет рассматриваться как категориальный.
- boolean array-like : булева маска, указывающая категориальные признаки.
- integer array-like : целочисленные индексы, указывающие категориальные признаки.
- str array-like: имена категориальных признаков (предполагая, что обучающие данные имеют имена признаков).
-
"from_dtype": столбцы DataFrame с типом данных “category” считаются категориальными признаками. Вход должен быть объектом, предоставляющим метод__dataframe__, таким как pandas или polars DataFrame, чтобы использовать эту функцию.
Для каждого категориального признака должно быть не более
max_binsуникальных категорий. Отрицательные значения для категориальных признаков, закодированных как числовые типы данных, обрабатываются как пропущенные значения. Все категориальные значения преобразуются в числа с плавающей точкой. Это означает, что категориальные значения 1.0 и 1 обрабатываются как одна и та же категория.Подробнее см. в Руководстве пользователя.
Добавлена в версии 0.24.
Изменено в версии 1.2: Добавлена поддержка имён признаков.
Изменено в версии 1.4: Добавлен
"from_dtype"параметр. - monotonic_cstarray-like of int of shape (n_features) or dict, default=None
-
Ограничения монотонности для каждого признака задаются следующими целочисленными значениями:
- 1: монотонно возрастает
- 0: без ограничений
- -1: монотонно убывает
Если словарь с ключами str, сопоставляет признак с ограничениями монотонности по имени. Если массив, признаки сопоставляются с ограничениями по позиции. См. Использование имён признаков для задания ограничений монотонности для примера использования.
Ограничения справедливы только для бинарной классификации и относятся к вероятности положительного класса. Дополнительные сведения см. в Руководстве пользователя.
Добавлена в версии 0.23.
Изменено в версии 1.2: Принимает словарь ограничений с именами признаков в качестве ключей.
- interaction_cst{“pairwise”, “no_interactions”} or sequence of lists/tuples/sets of int, default=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, default=False
-
Если установлено в
True, повторно используйте решение предыдущего вызова fit и добавьте больше оценщиков в ансамбль. Для получения корректных результатов оценщик должен быть повторно обучен только на одних и тех же данных. См. Справочник. - early_stopping‘auto’ or bool, default=’auto’
-
Если ‘auto’, раннее прекращение обучения включено, если размер выборки больше 10000. Если True, раннее прекращение обучения включено, в противном случае раннее прекращение обучения отключено.
Добавлена в версии 0.23.
- scoringstr or callable or None, default=’loss’
-
Параметр оценки для использования при раннем прекращении обучения. Может быть строкой (см. Параметр scoring: определение правил оценки модели) или вызываемым объектом (см. Вызываемые объекты оценщиков). Если None, используется значение по умолчанию для оценщика. Если
scoring='loss', раннее прекращение обучения проверяется по отношению к значению функции потерь. Используется только при раннем прекращении обучения. - validation_fractionint or float or None, default=0.1
-
Пропорция (или абсолютный размер) обучающих данных, откладываемых в сторону для проверки данных при раннем прекращении обучения. Если None, раннее прекращение обучения выполняется на обучающих данных. Используется только при раннем прекращении обучения.
- n_iter_no_changeint, default=10
-
Используется для определения, когда следует “раньше остановить”. Процесс обучения останавливается, когда ни один из последних
n_iter_no_changeоценок не лучше, чем предпоследний, до некоторой толерантности. Используется только при раннем прекращении обучения. - tolfloat, default=1e-7
-
Абсолютная толерантность для сравнения оценок. Чем выше толерантность, тем больше вероятность раннего прекращения обучения: большая толерантность означает, что последующим итерациям будет сложнее считаться улучшением по отношению к эталонному значению.
- verboseint, default=0
-
Уровень подробности. Если не ноль, то печатается информация о процессе обучения.
1печатает только сводочную информацию,2печатает информацию по каждой итерации. - random_stateint, RandomState instance or None, default=None
-
Генератор псевдослучайных чисел для управления подвыборкой в процессе разбиения на интервалы и разделением обучающих/проверочных данных, если включено раннее прекращение обучения. Передайте целое число для воспроизводимого результата при нескольких вызовах функции. См. Справочник.
- class_weightdict or ‘balanced’, default=None
-
Веса, связанные с классами в форме
{class_label: weight}. Если не заданы, все классы предполагаются весом один. Режим “balanced” использует значения y для автоматической настройки весов, обратно пропорциональных частотам классов в входных данных, какn_samples / (n_classes * np.bincount(y)). Обратите внимание, что эти веса будут умножены на sample_weight (передаваемые через метод fit), еслиsample_weightуказан.Добавлена в версии 1.2.
- Атрибуты:
-
- classes_array, shape = (n_classes,)
-
Метки классов.
- do_early_stopping_bool
-
Указывает, используется ли раннее прекращение обучения во время тренировки.
-
n_iter_int -
Количество итераций процесса бустинга.
- n_trees_per_iteration_int
-
Количество деревьев, построенных на каждой итерации. Это равно 1 для бинарной классификации и
n_classesдля многоклассовой классификации. - 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.
См. также
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)[source]
-
Вычислить функцию принятия решения для
X.- Параметры:
-
- Xarray-like, shape (n_samples, n_features)
-
Входные образцы.
- Возвращает:
-
- decisionndarray, shape (n_samples,) or (n_samples, n_trees_per_iteration)
-
Сырые предсказанные значения (т.е. сумма листьев деревьев) для каждого образца. n_trees_per_iteration равно количеству классов в многоклассовой классификации.
- 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,)
-
Предсказанные классы.
-
- predict_proba(X)[source]
-
Предсказание вероятностей классов для X.
- Параметры:
-
- Xarray-like, форма (n_samples, n_features)
-
Входные примеры.
- Возвращает:
-
- pndarray, форма (n_samples, n_classes)
-
Вероятности классов входных примеров.
- score(X, y, sample_weight=None)[source]
-
Возвращает среднюю точность на заданных тестовых данных и метках.
В многоклассовой классификации это точность подмножества, которая является жёсткой метрикой, так как для каждого примера необходимо, чтобы каждый набор меток был предсказан правильно.
- Параметры:
-
- Xarray-like формы (n_samples, n_features)
-
Тестовые примеры.
- yarray-like формы (n_samples,) или (n_samples, n_outputs)
-
Истинные метки для
X. - sample_weightarray-like формы (n_samples,), по умолчанию=None
-
Веса примеров.
- Возвращает:
-
- scorefloat
-
Средняя точность
self.predict(X)относительноy.
- set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') HistGradientBoostingClassifier[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.
- Возвращает:
-
- selfobject
-
Обновлённый объект.
-
- set_params(**params)[source]
-
Устанавливает параметры этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (такими как
Pipeline). Последние имеют параметры вида<component>__<parameter>, чтобы было возможно обновить каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') HistGradientBoostingClassifier[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_decision_function(X)[source]
-
Вычисление функции принятия решений для
Xна каждой итерации.Этот метод позволяет отслеживать (т.е. определять ошибку на тестовом наборе) после каждой стадии.
- Parameters:
-
- Xarray-like of shape (n_samples, n_features)
-
Входные данные.
- Yields:
-
- decisionгенератор ndarray of shape (n_samples,) или (n_samples, n_trees_per_iteration)
-
Функция принятия решений для входных данных, которая соответствует значениям, предсказанным деревьями ансамбля. Классы соответствуют атрибуту classes_.
- staged_predict(X)[source]
-
Предсказание классов на каждой итерации.
Этот метод позволяет отслеживать (т.е. определять ошибку на тестовом наборе) после каждой стадии.
Добавлена в версии 0.24.
- Parameters:
-
- Xarray-like of shape (n_samples, n_features)
-
Входные данные.
- Yields:
-
- ygenerator of ndarray of shape (n_samples,)
-
Предсказанные классы входных данных для каждой итерации.
- staged_predict_proba(X)[source]
-
Предсказание вероятностей классов на каждой итерации.
Этот метод позволяет отслеживать (т.е. определять ошибку на тестовом наборе) после каждой стадии.
- Parameters:
-
- Xarray-like of shape (n_samples, n_features)
-
Входные данные.
- Yields:
-
- ygenerator of 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.HistGradientBoostingClassifier.html