Spec-Zone.ru › scikit-learn

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.

END_OF_DOCUMENT_MARKER
Параметры:
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,)

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

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

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

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

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

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

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

Преобразование признаков с помощью ансамблей деревьев

Настройка порога принятия решения для обучения с учётом стоимости

© 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

Spec-Zone.ru

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