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()объектов с учётом весов.
- Если значение None, выбираются
- max_featuresint или float, по умолчанию=1.0
-
Количество признаков, выбираемых из X для обучения каждого базового оценщика (по умолчанию — без возвращения; дополнительные сведения см. в
bootstrap_features).- Если значение имеет тип int, выбираются
max_featuresпризнаков. - Если значение имеет тип float, выбираются
max(1, int(max_features * n_features_in_))признаков.
- Если значение имеет тип int, выбираются
- 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