Spec-Zone.ru › scikit-learn

BaggingClassifier

classsklearn.ensemble.BaggingClassifier(estimator=None, n_estimators=10, *, max_samples=None, max_features=1.0, bootstrap=True, bootstrap_features=False, oob_score=False, warm_start=False, n_jobs=None, random_state=None, verbose=0)[исходный код]

Классификатор с бэггингом.

Классификатор с бэггингом — это ансамблевый метаоценщик, который обучает базовые классификаторы на случайных подмножествах исходного набора данных, а затем объединяет их отдельные прогнозы (голосованием или усреднением), чтобы получить итоговый прогноз. Такой метаоценщик обычно можно использовать для снижения дисперсии модели «чёрного ящика» (например, дерева решений): для этого в процедуру её построения вносится элемент случайности, а затем создаётся ансамбль из таких моделей.

Этот алгоритм объединяет несколько методов, описанных в научной литературе. Если случайные подмножества набора данных формируются как случайные подмножества объектов, алгоритм называется Pasting [1]. Если объекты выбираются с возвращением, метод называется Bagging [2]. Если случайные подмножества набора данных формируются как случайные подмножества признаков, метод называется Random Subspaces [3]. Наконец, если базовые оценщики строятся на подмножествах как объектов, так и признаков, метод называется Random Patches [4].

Подробнее см. в руководстве пользователя.

Добавлено в версии 0.15.

Параметры:
estimatorobject, по умолчанию=None

Базовый оценщик, обучаемый на случайных подмножествах набора данных. Если значение None, базовым оценщиком будет DecisionTreeClassifier.

Добавлено в версии 1.2: base_estimator переименован в estimator.

n_estimatorsint, по умолчанию=10

Количество базовых оценщиков в ансамбле.

max_samplesint или float, по умолчанию=None

Количество объектов, выбираемых из X для обучения каждого базового оценщика (по умолчанию — с возвращением; дополнительные сведения см. в bootstrap).

  • Если значение None, выбираются X.shape[0] объектов независимо от sample_weight.
  • Если значение имеет тип int, выбираются max_samples объектов.
  • Если значение имеет тип float, выбираются max_samples * X.shape[0] объектов без учёта весов или max_samples * sample_weight.sum() объектов с учётом весов.
max_featuresint или float, по умолчанию=1.0

Количество признаков, выбираемых из X для обучения каждого базового оценщика (по умолчанию — без возвращения; дополнительные сведения см. в bootstrap_features).

  • Если значение имеет тип int, выбираются max_features признаков.
  • Если значение имеет тип float, выбираются max(1, int(max_features * n_features_in_)) признаков.
bootstrapbool, по умолчанию=True

Выбираются ли объекты с возвращением. Если значение False, выборка выполняется без возвращения. При обучении с помощью sample_weight настоятельно рекомендуется выбрать значение True, поскольку только выборка с возвращением обеспечивает ожидаемую семантику частот для sample_weight.

bootstrap_featuresbool, по умолчанию=False

Выбираются ли признаки с возвращением.

oob_scorebool, по умолчанию=False

Использовать ли объекты вне выборки для оценки ошибки обобщения. Доступно только при bootstrap=True.

warm_startbool, по умолчанию=False

Если задано значение True, повторно используется результат предыдущего вызова fit, а в ансамбль добавляются новые оценщики; в противном случае обучается совершенно новый ансамбль. См. глоссарий.

Добавлено в версии 0.17: параметр конструктора warm_start.

n_jobsint, по умолчанию=None

Количество задач, выполняемых параллельно как для fit, так и для predict. Значение None означает 1, если только не используется контекст joblib.parallel_backend. Значение -1 означает использование всех процессоров. Дополнительные сведения см. в глоссарии.

random_stateint, экземпляр RandomState или None, по умолчанию=None

Управляет случайной повторной выборкой исходного набора данных (как по объектам, так и по признакам). Если базовый оценщик принимает атрибут random_state, для каждого экземпляра в ансамбле генерируется отдельное начальное значение. Передайте int, чтобы получать воспроизводимые результаты при нескольких вызовах функции. См. глоссарий.

verboseint, по умолчанию=0

Управляет подробностью вывода при обучении и прогнозировании.

Атрибуты:
estimator_оценщик

Базовый оценщик, на основе которого строится ансамбль.

Добавлено в версии 1.2: base_estimator_ переименован в estimator_.

n_features_in_int

Количество признаков, обнаруженных во время обучения.

Добавлено в версии 0.24.

feature_names_in_ndarray формы (n_features_in_,)

Названия признаков, обнаруженных во время обучения. Определяется только в том случае, если X содержит названия признаков, представленные строками.

Добавлено в версии 1.0.

estimators_список оценщиков

Набор обученных базовых оценщиков.

estimators_samples_список массивов

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

estimators_features_список массивов

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

classes_ndarray формы (n_classes,)

Метки классов.

n_classes_int или список

Количество классов.

oob_score_float

Оценка обучающего набора данных, полученная с помощью оценки по объектам вне выборки. Этот атрибут существует только при значении True для oob_score.

oob_decision_function_ndarray формы (n_samples, n_classes)

Функция принятия решений, вычисленная для обучающего набора с помощью оценки по объектам вне выборки. Если значение n_estimators мало, возможно, что точка данных ни разу не была исключена при бутстрепе. В этом случае oob_decision_function_ может содержать NaN. Этот атрибут существует только при значении True для oob_score.

См. также

BaggingRegressor

Регрессор с бэггингом.

Литература

[1]

L. Breiman, «Pasting small votes for classification in large databases and on-line», Machine Learning, 36(1), 85-103, 1999.

[2]

L. Breiman, «Bagging predictors», Machine Learning, 24(2), 123-140, 1996.

[3]

T. Ho, «The random subspace method for constructing decision forests», Pattern Analysis and Machine Intelligence, 20(8), 832-844, 1998.

[4]

G. Louppe and P. Geurts, «Ensembles on Random Patches», Machine Learning and Knowledge Discovery in Databases, 346-361, 2012.

Примеры

>>> from sklearn.svm import SVC
>>> from sklearn.ensemble import BaggingClassifier
>>> from sklearn.datasets import make_classification
>>> X, y = make_classification(n_samples=100, n_features=4,
...                            n_informative=2, n_redundant=0,
...                            random_state=0, shuffle=False)
>>> clf = BaggingClassifier(estimator=SVC(),
...                         n_estimators=10, random_state=0).fit(X, y)
>>> clf.predict([[0, 0, 0, 0]])
array([1])
decision_function(X, **params)[исходный код]

Среднее значение функций принятия решений базовых классификаторов.

Параметры:
X{массивоподобная структура, разреженная матрица} формы (n_samples, n_features)

Входные обучающие объекты. Разреженные матрицы поддерживаются, только если их поддерживает базовый оценщик.

**paramsdict

Параметры, передаваемые методу decision_function вложенных оценщиков через API маршрутизации метаданных.

Добавлено в версии 1.7: Доступно только при установленном значении sklearn.set_config(enable_metadata_routing=True). Дополнительные сведения см. в руководстве пользователя по маршрутизации метаданных.

Возвращает:
scorendarray формы (n_samples, k)

Функция принятия решений для входных объектов. Столбцы соответствуют классам в отсортированном порядке, как они представлены в атрибуте classes_. Регрессия и бинарная классификация — частные случаи, для которых k == 1; в остальных случаях k==n_classes.

fit(X, y, sample_weight=None, **fit_params)[исходный код]

Создать ансамбль оценщиков с бэггингом на основе обучающего набора (X, y).

Параметры:
X{массивоподобная структура, разреженная матрица} формы (n_samples, n_features)

Входные обучающие объекты. Разреженные матрицы поддерживаются, только если их поддерживает базовый оценщик.

yмассивоподобная структура формы (n_samples,)

Целевые значения (метки классов в классификации, вещественные числа в регрессии).

sample_weightмассивоподобная структура формы (n_samples,), по умолчанию=None

Веса объектов. Если значение None, все объекты имеют одинаковый вес. Используются как вероятности при выборке обучающего набора. Обратите внимание: ожидаемая семантика частот для параметра sample_weight обеспечивается только при выборке с возвращением bootstrap=True и использовании значения max_samples с типом float или int (вместо значения max_samples=None по умолчанию).

**fit_paramsdict

Параметры, передаваемые базовым оценщикам.

Добавлено в версии 1.5: Доступно только при условии enable_metadata_routing=True, которое можно задать с помощью sklearn.set_config(enable_metadata_routing=True). Дополнительные сведения см. в руководстве пользователя по маршрутизации метаданных.

Возвращает:
selfobject

Обученный оценщик.

get_metadata_routing()[исходный код]

Получить сведения о маршрутизации метаданных этого объекта.

О том, как работает механизм маршрутизации, см. в руководстве пользователя.

Добавлено в версии 1.5.

Возвращает:
routingMetadataRouter

Объект MetadataRouter, содержащий сведения о маршрутизации.

get_params(deep=True)[исходный код]

Получить параметры этого оценщика.

Параметры:
deepbool, по умолчанию=True

Если значение True, возвращаются параметры этого оценщика и содержащихся в нём объектов, являющихся оценщиками.

Возвращает:
paramsdict

Имена параметров, сопоставленные с их значениями.

predict(X, **params)[исходный код]

Предсказать класс для X.

Предсказанный класс входного объекта определяется как класс с наибольшей средней предсказанной вероятностью. Если базовые оценщики не реализуют метод predict_proba, используется голосование.

Параметры:
X{массивоподобная структура, разреженная матрица} формы (n_samples, n_features)

Входные обучающие объекты. Разреженные матрицы поддерживаются, только если их поддерживает базовый оценщик.

**paramsdict

Параметры, передаваемые методу predict_proba (если он доступен) или методу predict (в противном случае) вложенных оценщиков через API маршрутизации метаданных.

Добавлено в версии 1.7: Доступно только при установленном значении sklearn.set_config(enable_metadata_routing=True). Дополнительные сведения см. в руководстве пользователя по маршрутизации метаданных.

Возвращает:
yndarray формы (n_samples,)

Предсказанные классы.

predict_log_proba(X, **params)[исходный код]

Предсказать логарифмы вероятностей классов для X.

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

Параметры:
X{массивоподобная структура, разреженная матрица} формы (n_samples, n_features)

Входные обучающие объекты. Разреженные матрицы поддерживаются, только если их поддерживает базовый оценщик.

**paramsdict

Параметры, передаваемые методам predict_log_proba, predict_proba или proba вложенных оценщиков через API маршрутизации метаданных. Маршрутизация выполняется в указанном порядке в зависимости от доступности соответствующего метода у вложенного оценщика.

Добавлено в версии 1.7: Доступно только при установленном значении sklearn.set_config(enable_metadata_routing=True). Дополнительные сведения см. в руководстве пользователя по маршрутизации метаданных.

Возвращает:
pndarray формы (n_samples, n_classes)

Логарифмы вероятностей классов для входных объектов. Порядок классов соответствует порядку в атрибуте classes_.

predict_proba(X, **params)[исходный код]

Предсказать вероятности классов для X.

Предсказанные вероятности классов для входного объекта вычисляются как среднее значение предсказанных вероятностей классов базовых оценщиков в ансамбле. Если базовые оценщики не реализуют метод predict_proba, используется голосование, а предсказанные вероятности классов для входного объекта представляют собой долю оценщиков, предсказавших каждый класс.

Параметры:
X{массивоподобная структура, разреженная матрица} формы (n_samples, n_features)

Входные обучающие объекты. Разреженные матрицы поддерживаются, только если их поддерживает базовый оценщик.

**paramsdict

Параметры, передаваемые методу predict_proba (если он доступен) или методу predict (в противном случае) вложенных оценщиков через API маршрутизации метаданных.

Добавлено в версии 1.7: Доступно только при установленном значении sklearn.set_config(enable_metadata_routing=True). Дополнительные сведения см. в руководстве пользователя по маршрутизации метаданных.

Возвращает:
pndarray формы (n_samples, n_classes)

Вероятности классов для входных объектов. Порядок классов соответствует порядку в атрибуте 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(*, sample_weight:bool|None|str='$UNCHANGED$') → BaggingClassifier[исходный код]

Настроить, следует ли запрашивать передачу метаданных методу fit.

Обратите внимание: этот метод имеет значение, только если данный оценщик используется как вложенный оценщик в метаоценщике и включена маршрутизация метаданных с помощью enable_metadata_routing=True (см. sklearn.set_config). О том, как работает механизм маршрутизации, см. в руководстве пользователя.

Для каждого параметра доступны следующие варианты:

  • True: метаданные запрашиваются и передаются в fit, если они предоставлены. Если метаданные не предоставлены, запрос игнорируется.
  • False: метаданные не запрашиваются, и метаоценщик не передаёт их в fit.
  • None: метаданные не запрашиваются, и метаоценщик выдаёт ошибку, если пользователь их предоставляет.
  • str: метаданные передаются метаоценщику под указанным псевдонимом вместо исходного имени.

Значение по умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняет текущий запрос. Это позволяет изменить запрос для одних параметров, не меняя его для остальных.

Добавлено в версии 1.3.

Параметры:
sample_weightstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight метода fit.

Возвращает:
selfobject

Обновлённый объект.

set_params(**params)[исходный код]

Задать параметры этого оценщика.

Этот метод работает как с простыми оценщиками, так и с вложенными объектами (например, Pipeline). У последних параметры имеют вид <component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценщика.

Возвращает:
selfэкземпляр оценщика

Экземпляр оценщика.

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → BaggingClassifier[исходный код]

Настроить, следует ли запрашивать передачу метаданных в метод 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 или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в score.

Возвращает:
selfобъект

Обновлённый объект.

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.ensemble.BaggingClassifier.html

Spec-Zone.ru

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