BaggingRegressor
- classsklearn.ensemble.BaggingRegressor(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, базовым оценивателем является
DecisionTreeRegressor.Добавлен в версии 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 и в ансамбль добавляются новые оцениватели; в противном случае обучается совершенно новый ансамбль. См. глоссарий.
- 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
-
Количество признаков, встречавшихся при вызове fit.
Добавлен в версии 0.24.
-
feature_names_in_ndarray формы (
n_features_in_,) -
Названия признаков, встречавшихся при вызове fit. Определяется только тогда, когда
Xсодержит названия признаков, представленные строками.Добавлен в версии 1.0.
- estimators_список оценивателей
-
Набор обученных подоценивателей.
-
estimators_samples_список массивов -
Подмножество выбранных объектов для каждого базового оценивателя.
- estimators_features_список массивов
-
Подмножество выбранных признаков для каждого базового оценивателя.
- oob_score_float
-
Оценка обучающего набора, полученная с помощью оценки по объектам вне выборки. Этот атрибут существует только при
oob_scoreсо значением True. - oob_prediction_ndarray формы (n_samples,)
-
Прогноз, вычисленный для обучающего набора с помощью оценки по объектам вне выборки. Если n_estimators мало, возможно, что некоторые точки данных ни разу не исключались из бутстреп-выборки. В этом случае
oob_prediction_может содержать NaN. Этот атрибут существует только приoob_scoreсо значением True.
См. также
BaggingClassifier-
Классификатор на основе бэггинга.
Ссылки
[1]L. Breiman, «Объединение небольших голосов для классификации в крупных базах данных и в режиме онлайн», Machine Learning, 36(1), 85–103, 1999.
[2]L. Breiman, «Предикторы на основе бэггинга», Machine Learning, 24(2), 123–140, 1996.
[3]T. Ho, «Метод случайных подпространств для построения лесов решений», Pattern Analysis and Machine Intelligence, 20(8), 832–844, 1998.
[4]G. Louppe и P. Geurts, «Ансамбли на случайных патчах», Machine Learning and Knowledge Discovery in Databases, 346–361, 2012.
Примеры
>>> from sklearn.svm import SVR >>> from sklearn.ensemble import BaggingRegressor >>> from sklearn.datasets import make_regression >>> X, y = make_regression(n_samples=100, n_features=4, ... n_informative=2, n_targets=1, ... random_state=0, shuffle=False) >>> regr = BaggingRegressor(estimator=SVR(), ... n_estimators=10, random_state=0).fit(X, y) >>> regr.predict([[0, 0, 0, 0]]) array([-2.8720])
- fit(X, y, sample_weight=None, **fit_params)[исходный код]
-
Обучить ансамбль Bagging по обучающему набору (X, y).
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Обучающие входные объекты. Разреженные матрицы поддерживаются только в том случае, если их поддерживает базовый оцениватель.
- yarray-like формы (n_samples,)
-
Целевые значения (метки классов в классификации, действительные числа в регрессии).
- sample_weightarray-like формы (n_samples,), по умолчанию=None
-
Веса объектов. Если None, все объекты имеют одинаковый вес. Используются как вероятности для выборки обучающего набора. Обратите внимание, что ожидаемая семантика частоты для параметра
sample_weightсоблюдается только при выборке с возвращениемbootstrap=Trueи использовании значенияmax_samplesтипа float или integer (вместо значения по умолчанию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.
Прогнозируемое целевое значение регрессии для входного объекта вычисляется как среднее прогнозируемых целевых значений регрессии оценивателей ансамбля.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Обучающие входные объекты. Разреженные матрицы поддерживаются только в том случае, если их поддерживает базовый оцениватель.
- **paramsdict
-
Параметры, передаваемые методу
predictподоценивателей через API маршрутизации метаданных.Добавлен в версии 1.7: Доступно только при установленном значении
sklearn.set_config(enable_metadata_routing=True). Дополнительные сведения см. в руководстве пользователя по маршрутизации метаданных.
- Возвращает:
-
- yndarray формы (n_samples,)
-
Прогнозируемые значения.
- score(X, y, sample_weight=None)[исходный код]
-
Вернуть коэффициент детерминации на тестовых данных.
Коэффициент детерминации \(R^2\) определяется как \((1 - \frac{u}{v})\), где \(u\) — сумма квадратов остатков
((y_true - y_pred)** 2).sum(), а \(v\) — общая сумма квадратов((y_true - y_true.mean()) ** 2).sum(). Наилучшая возможная оценка равна 1.0, но она может быть отрицательной (поскольку модель может быть сколь угодно хуже). Постоянная модель, всегда предсказывающая ожидаемое значениеyбез учёта входных признаков, получит оценку \(R^2\), равную 0.0.- Параметры:
-
- Xarray-like формы (n_samples, n_features)
-
Тестовые объекты. Для некоторых оценивателей это может быть предварительно вычисленная матрица ядра или список обобщённых объектов формы
(n_samples, n_samples_fitted), гдеn_samples_fitted— количество объектов, использованных при обучении оценивателя. - yarray-like формы (n_samples,) или (n_samples, n_outputs)
-
Истинные значения для
X. - sample_weightarray-like формы (n_samples,), по умолчанию=None
-
Веса объектов.
- Возвращает:
-
- scorefloat
-
\(R^2\) для
self.predict(X)относительноy.
Примечания
Оценка \(R^2\), используемая при вызове
scoreдля регрессора, начиная с версии 0.23 используетmultioutput='uniform_average', чтобы соответствовать значению по умолчанию дляr2_score. Это влияет на методscoreвсех регрессоров с несколькими выходами (кромеMultiOutputRegressor).
- set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') BaggingRegressor[исходный код]
-
Настроить, следует ли запрашивать передачу метаданных методу
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$') BaggingRegressor[исходный код]
-
Настроить, следует ли запрашивать передачу метаданных методу
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.
- Возвращает:
-
- selfobject
-
Обновлённый объект.
-
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.ensemble.BaggingRegressor.html