Spec-Zone.ru › scikit-learn

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() объектов с весами.
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 и в ансамбль добавляются новые оцениватели; в противном случае обучается совершенно новый ансамбль. См. глоссарий.

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

Spec-Zone.ru

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