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)[исходный код]

Дерево классификации с градиентным бустингом на основе гистограмм.

Этот оцениватель работает намного быстрее, чем 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)

Дополнительная выборка признаков для проверки, используемая при досрочной остановке. В Pipeline X_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,)

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

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

Построение графика вероятностей классификации

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

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

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

Основные нововведения scikit-learn 0.22

Основные нововведения scikit-learn 0.23

Основные нововведения scikit-learn 0.24

Основные нововведения scikit-learn 1.4

Основные нововведения scikit-learn 1.7

© 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

Spec-Zone.ru

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