StackingRegressor
- classsklearn.ensemble.StackingRegressor(estimators, final_estimator=None, *, cv=None, n_jobs=None, passthrough=False, verbose=0)[исходный код]
-
Стек оценивателей с итоговым регрессором.
Стекинг обобщения состоит в объединении выходных данных отдельных оценивателей и использовании регрессора для вычисления итогового предсказания. Стекинг позволяет использовать сильные стороны каждого отдельного оценивателя, передавая его выходные данные в качестве входных данных итоговому оценивателю.
Обратите внимание, что
estimators_обучаются на полном набореX, тогда какfinal_estimator_обучается на кросс-валидированных предсказаниях базовых оценивателей с использованиемcross_val_predict.Подробнее см. в Руководстве пользователя.
Добавлено в версии 0.22.
- Параметры:
-
- estimatorsсписок пар (str, estimator)
-
Базовые оцениватели, которые будут объединены в стек. Каждый элемент списка задаётся кортежем из строки (т. е. имени) и экземпляра оценивателя. Оценивателю можно задать значение ‘drop’ с помощью
set_params. - final_estimatorоцениватель, по умолчанию=None
-
Регрессор, который будет использоваться для объединения базовых оценивателей. По умолчанию используется регрессор
RidgeCV. - cvint, генератор кросс-валидации, итерируемый объект или «prefit», по умолчанию=None
-
Определяет стратегию разделения данных для кросс-валидации, используемую в
cross_val_predictдля обученияfinal_estimator. Возможные значения cv:- None — использовать кросс-валидацию с 5 блоками по умолчанию,
- целое число — задать количество блоков в (стратифицированном) KFold,
- объект, используемый в качестве генератора кросс-валидации,
- итерируемый объект, возвращающий разделения на обучающую и тестовую выборки,
-
"prefit"— считать, чтоestimatorsуже обучены. В этом случае повторное обучение оценивателей выполняться не будет.
Для целочисленных значений и None, если оцениватель является классификатором, а y содержит бинарные или многоклассовые метки, используется
StratifiedKFold. Во всех остальных случаях используетсяKFold. Эти разделители создаются с параметромshuffle=False, поэтому разделения будут одинаковыми при каждом вызове.Описание различных стратегий кросс-валидации, которые можно использовать здесь, см. в Руководстве пользователя.
Если передано значение «prefit», предполагается, что все
estimatorsуже обучены.final_estimator_обучается на предсказанияхestimatorsдля полного обучающего набора; это не кросс-валидированные предсказания. Обратите внимание: если модели обучались на тех же данных, что и модель стекинга, риск переобучения очень высок.Добавлено в версии 1.1: Параметр ‘prefit’ добавлен в версии 1.1
Примечание
Увеличение количества разбиений не даст преимуществ, если обучающих образцов и так достаточно много. Более того, время обучения увеличится.
cvиспользуется не для оценки модели, а для предсказания. - n_jobsint, по умолчанию=None
-
Количество заданий, выполняемых параллельно для
fitвсехestimators.Noneозначает 1, если только не используется контекстjoblib.parallel_backend. Значение -1 означает использование всех процессоров. Подробнее см. в глоссарии. - passthroughbool, по умолчанию=False
-
Если False, в качестве обучающих данных для
final_estimatorиспользуются только предсказания оценивателей. Если True,final_estimatorобучается как на предсказаниях, так и на исходных обучающих данных. - verboseint, по умолчанию=0
-
Уровень подробности вывода.
- Атрибуты:
-
- estimators_список оценивателей
-
Элементы параметра
estimators, обученные на обучающих данных. Если оценивателю задано значение'drop', он не появится вestimators_. Еслиcv="prefit",estimators_присваивается значениеestimatorsи повторно не обучается. -
named_estimators_
Bunch -
Атрибут для доступа к любым обученным подоценивателям по имени.
-
n_features_in_int -
Количество признаков, обнаруженных во время обучения.
-
feature_names_in_ndarray формы (
n_features_in_,) -
Названия признаков, обнаруженных во время обучения. Определён только в том случае, если базовые оцениватели предоставляют такой атрибут при обучении.
Добавлено в версии 1.0.
- final_estimator_оцениватель
-
Регрессор, обученный на выходных данных
estimators_и отвечающий за итоговые предсказания. - stack_method_список строк
-
Метод, используемый каждым базовым оценивателем.
См. также
StackingClassifier-
Стек оценивателей с итоговым классификатором.
Список литературы
[1]Wolpert, David H. «Stacked generalization». Neural networks 5.2 (1992): 241–259.
Примеры
>>> from sklearn.datasets import load_diabetes >>> from sklearn.linear_model import RidgeCV >>> from sklearn.svm import LinearSVR >>> from sklearn.ensemble import RandomForestRegressor >>> from sklearn.ensemble import StackingRegressor >>> X, y = load_diabetes(return_X_y=True) >>> estimators = [ ... ('lr', RidgeCV()), ... ('svr', LinearSVR(random_state=42)) ... ] >>> reg = StackingRegressor( ... estimators=estimators, ... final_estimator=RandomForestRegressor(n_estimators=10, ... random_state=42) ... ) >>> from sklearn.model_selection import train_test_split >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, random_state=42 ... ) >>> reg.fit(X_train, y_train).score(X_test, y_test) 0.3...- fit(X, y, **fit_params)[исходный код]
-
Обучить оцениватели.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Обучающие векторы, где
n_samples— количество образцов, аn_features— количество признаков. - yarray-like формы (n_samples,)
-
Целевые значения.
- **fit_paramsdict
-
Параметры, передаваемые базовым оценивателям.
Добавлено в версии 1.6: Доступно только при условии
enable_metadata_routing=True, которое можно задать с помощьюsklearn.set_config(enable_metadata_routing=True). Подробнее см. в Руководстве пользователя по маршрутизации метаданных.
- Возвращает:
-
- selfобъект
-
Возвращает обученный экземпляр.
- fit_transform(X, y, **fit_params)[исходный код]
-
Обучить оцениватели и вернуть предсказания для X каждого оценивателя.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Обучающие векторы, где
n_samples— количество образцов, аn_features— количество признаков. - yarray-like формы (n_samples,)
-
Целевые значения.
- **fit_paramsdict
-
Параметры, передаваемые базовым оценивателям.
Добавлено в версии 1.6: Доступно только при условии
enable_metadata_routing=True, которое можно задать с помощьюsklearn.set_config(enable_metadata_routing=True). Подробнее см. в Руководстве пользователя по маршрутизации метаданных.
- Возвращает:
-
- y_predsndarray формы (n_samples, n_estimators)
-
Выходные предсказания каждого оценивателя.
- get_feature_names_out(input_features=None)[исходный код]
-
Получить названия выходных признаков для преобразования.
- Параметры:
-
- input_featuresarray-like из строк или None, по умолчанию=None
-
Входные признаки. Названия входных признаков используются только тогда, когда
passthroughравноTrue.- Если
input_featuresравноNone, тоfeature_names_in_используется в качестве названий признаков. Еслиfeature_names_in_не определён, названия генерируются:[x0, x1, ..., x(n_features_in_ - 1)]. - Если
input_featuresявляется объектом array-like, тоinput_featuresдолжен соответствоватьfeature_names_in_, если определёнfeature_names_in_.
Если
passthroughравноFalse, для формирования названий выходных признаков используются только названияestimators. - Если
- Возвращает:
-
- feature_names_outndarray из объектов str
-
Названия преобразованных признаков.
- get_metadata_routing()[исходный код]
-
Получить настройки маршрутизации метаданных этого объекта.
О том, как работает механизм маршрутизации, см. в Руководстве пользователя.
Добавлено в версии 1.6.
- Возвращает:
-
- routingMetadataRouter
-
MetadataRouter, содержащий сведения о маршрутизации.
- get_params(deep=True)[исходный код]
-
Получить параметры оценивателя из ансамбля.
Возвращает параметры, заданные в конструкторе, а также оцениватели, содержащиеся в параметре
estimators.- Параметры:
-
- deepbool, по умолчанию=True
-
Если задать True, будут получены различные оцениватели и их параметры.
- Возвращает:
-
- paramsdict
-
Имена параметров и оценивателей, сопоставленные их значениям, или имена параметров, сопоставленные их значениям.
- propertynamed_estimators
-
Словарь для доступа к любым обученным подоценивателям по имени.
- Возвращает:
-
Bunch
- predict(X, **predict_params)[исходный код]
-
Предсказать целевые значения для X.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Обучающие векторы, где
n_samples— количество образцов, аn_features— количество признаков. - **predict_paramsdict вида str -> obj
-
Параметры для
predict, вызываемогоfinal_estimator. Обратите внимание, что некоторые оцениватели могут использоваться для получения оценок неопределённости с помощьюreturn_stdилиreturn_cov. Учтите, что это позволит учесть неопределённость только итогового оценивателя.- Если
enable_metadata_routing=False(по умолчанию): параметры напрямую передаются методуpredictобъектаfinal_estimator. - Если
enable_metadata_routing=True: параметры безопасно передаются методуpredictобъектаfinal_estimator. Подробнее см. в Руководстве пользователя по маршрутизации метаданных.
Изменено в версии 1.6:
**predict_paramsможно передавать через API маршрутизации метаданных. - Если
- Возвращает:
-
- y_predndarray формы (n_samples,) или (n_samples, n_output)
-
Предсказанные целевые значения.
- 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для регрессора, используетmultioutput='uniform_average'начиная с версии 0.23, чтобы соответствовать значению по умолчанию дляr2_score. Это влияет на методscoreвсех регрессоров с несколькими выходами (кромеMultiOutputRegressor).
- set_output(*, transform=None)[исходный код]
-
Задать контейнер выходных данных.
Подробнее см. в руководстве пользователя, а пример использования API приведён в разделе Знакомство с API set_output.
- Параметры:
-
- transform{“default”, “pandas”, “polars”}, по умолчанию=None
-
Настроить формат выходных данных для
transformиfit_transform.-
"default": формат выходных данных преобразователя по умолчанию -
"pandas": выходные данные в формате DataFrame -
"polars": выходные данные в формате Polars -
None: конфигурация преобразования не изменяется
Добавлено в версии 1.4: Добавлен параметр
"polars". -
- Возвращает:
-
- selfэкземпляр оценивателя
-
Экземпляр оценивателя.
- set_params(**params)[исходный код]
-
Задать параметры оценивателя из ансамбля.
Допустимые ключи параметров можно получить с помощью
get_params(). Обратите внимание, что параметры оценивателей, содержащихся вestimators, можно задавать напрямую.- Параметры:
-
- **paramsименованные аргументы
-
Конкретные параметры, задаваемые, например, с помощью
set_params(parameter_name=new_value). Помимо задания параметров оценивателя, можно также задавать отдельные оцениватели или удалять их, присваивая им значение ‘drop’.
- Возвращает:
-
- selfобъект
-
Экземпляр оценивателя.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') StackingRegressor[исходный код]
-
Настроить, следует ли запрашивать передачу метаданных методу
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объект
-
Обновлённый объект.
-
- transform(X)[исходный код]
-
Вернуть предсказания для X каждого оценивателя.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Обучающие векторы, где
n_samples— количество образцов, аn_features— количество признаков.
- Возвращает:
-
- y_predsndarray формы (n_samples, n_estimators)
-
Выходные предсказания каждого оценивателя.
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.ensemble.StackingRegressor.html