StackingRegressor
- classsklearn.ensemble.StackingRegressor(estimators, final_estimator=None, *, cv=None, n_jobs=None, passthrough=False, verbose=0)[source]
-
Стек оценщиков с конечным регрессором.
Стек обобщения состоит в стекировании вывода отдельных оценщиков и использовании регрессора для вычисления окончательного прогноза. Стекинг позволяет использовать преимущества каждого отдельного оценщика, используя их вывод в качестве входных данных для конечного оценщика.
Обратите внимание, что
estimators_обучаются на полномX, в то время какfinal_estimator_обучается с использованием прогнозов базовых оценщиков с перекрестной проверкой с помощьюcross_val_predict.Подробнее см. в Руководстве пользователя.
Добавлен в версии 0.22.
- Параметры:
-
- estimatorsсписок из (строка, оценщик)
-
Базовые оценщики, которые будут объединены вместе. Каждый элемент списка определен как кортеж из строки (т.е. имя) и экземпляра оценщика. Оценщик можно установить в «отбросить» с помощью
set_params. - final_estimatorоценщик, по умолчанию=None
-
Регрессор, который будет использован для объединения базовых оценщиков. По умолчанию регрессор - это
RidgeCV. - cvцелое число, генератор перекрестной проверки, итерируемый объект или “prefit”, по умолчанию=None
-
Определяет стратегию разделения данных при перекрестной проверке, используемой в
cross_val_predictдля обученияfinal_estimator. Возможные входные данные для cv:- None, чтобы использовать стандартную 5-кратную перекрестную проверку,
- целое число, чтобы указать количество слоёв в (Stratified) KFold,
- объект, используемый в качестве генератора перекрестной проверки,
- итерируемый объект, возвращающий тренировочные и тестовые разделы,
-
"prefit", чтобы предположить, чтоestimatorsуже предварительно обучены. В этом случае оценщики не будут переобучаться.
Для целочисленных/None входных данных, если оценщик является классификатором и y является двоичным или многоклассовым, используется
StratifiedKFold. Во всех других случаях используетсяKFold. Эти разделы инициализируютсяshuffle=False, поэтому разделы будут одинаковыми при вызовах.См. Руководство пользователя для различных стратегий перекрестной проверки, которые могут быть здесь использованы.
Если передано «prefit», предполагается, что все
estimatorsуже обучены.final_estimator_обучается на прогнозахestimatorsна полном наборе обучающих данных и не являются прогнозами с перекрестной проверкой. Обратите внимание, что если модели были обучены на одних и тех же данных для обучения модели стекинга, существует очень высокая вероятность переобучения.Добавлен в версии 1.1: Вариант ‘prefit’ был добавлен в 1.1
Примечание
Больше разделов не принесёт пользы, если количество обучающих образцов достаточно велико. Действительно, время обучения увеличится.
cvне используется для оценки модели, а для прогнозирования. - n_jobsцелое число, по умолчанию=None
-
Количество задач, которые будут выполняться параллельно для
fitвсехestimators.Noneозначает 1, за исключением контекстаjoblib.parallel_backend. -1 означает использование всех процессоров. См. Словарь для получения дополнительных сведений. - passthroughбулево значение, по умолчанию=False
-
Если False, только прогнозы оценщиков будут использоваться в качестве обучающих данных для
final_estimator. Если True,final_estimatorобучается на прогнозах наряду с исходными обучающими данными. - verboseцелое число, по умолчанию=0
-
Уровень подробности.
- Атрибуты:
-
- estimators_список оценщиков
-
Элементы параметра
estimators, обученные на обучающих данных. Если оценщик был установлен в'drop', он не будет отображаться вestimators_. Приcv="prefit",estimators_установлено вestimatorsи больше не обучается. -
named_estimators_
Bunch -
Атрибут для доступа к любым обученным под-оценщикам по имени.
-
n_features_in_целое число -
Количество признаков, увиденных во время fit.
-
feature_names_in_массив формы (
n_features_in_,) -
Имена признаков, увиденные во время fit. Определены только если основанные оценщики поддерживают такой атрибут при обучении.
Добавлен в версии 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, *, sample_weight=None, **fit_params)[source]
-
Обучить оценщиков.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Обучающие векторы, где
n_samples- количество образцов, аn_features- количество признаков. - yмассив-подобный формы (n_samples,)
-
Значения целевых переменных.
- sample_weightмассив-подобный формы (n_samples,), по умолчанию=None
-
Веса образцов. Если None, то образцы имеют одинаковый вес. Обратите внимание, что это поддерживается только в том случае, если все основанные оценщики поддерживают веса образцов.
- **fit_paramsсловарь
-
Параметры для передачи базовым оценщикам.
Добавлен в версии 1.6: Доступен только если
enable_metadata_routing=True, которое может быть установлено с помощьюsklearn.set_config(enable_metadata_routing=True). См. Руководство пользователя по маршрутизации метаданных для получения дополнительных сведений.
- Возвращает:
-
- selfобъект
-
Возвращает обученный экземпляр.
- fit_transform(X, y, *, sample_weight=None, **fit_params)[source]
-
Обучить оценщики и вернуть предсказания для X для каждого оценщика.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Векторы обучения, где
n_samples- это число образцов, аn_features- число признаков. - yarray-like of shape (n_samples,)
-
Целевые значения.
- sample_weightarray-like of shape (n_samples,), default=None
-
Веса образцов. Если None, то образцы весят одинаково. Обратите внимание, что это поддерживается только в том случае, если все базовые оценщики поддерживают веса образцов.
- **fit_paramsdict
-
Параметры для передачи базовым оценщикам.
Добавлено в версии 1.6: Доступно только если
enable_metadata_routing=True, что можно установить с помощьюsklearn.set_config(enable_metadata_routing=True). См. Руководство пользователя по маршрутизации метаданных для получения более подробной информации.
- Возвращает:
-
- y_predsndarray of shape (n_samples, n_estimators)
-
Выходные данные предсказаний для каждого оценщика.
- get_feature_names_out(input_features=None)[source]
-
Получить выходные имена признаков для преобразования.
- Параметры:
-
- input_featuresarray-like of str or None, default=None
-
Входные признаки. Имена входных признаков используются только тогда, когда
passthroughравноTrue.- Если
input_featuresравноNone, тоfeature_names_in_используется в качестве имен признаков. Еслиfeature_names_in_не определено, то имена генерируются:[x0, x1, ..., x(n_features_in_ - 1)]. - Если
input_featuresявляется массивоподобным, тоinput_featuresдолжно совпадать сfeature_names_in_, еслиfeature_names_in_определено.
Если
passthroughравноFalse, то для генерации выходных имен признаков используются только именаestimators. - Если
- Возвращает:
-
- feature_names_outndarray of str objects
-
Преобразованные имена признаков.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, ознакомьтесь с Руководством пользователя о том, как работает механизм маршрутизации.
Добавлено в версии 1.6.
- Возвращает:
-
- routingMetadataRouter
-
A
MetadataRouter, инкапсулирующий информацию о маршрутизации.
- get_params(deep=True)[source]
-
Получить параметры оценщика из ансамбля.
Возвращает параметры, указанные в конструкторе, а также оценщики, содержащиеся в параметре
estimators.- Параметры:
-
- deepbool, default=True
-
Установив его в True, вы получите различные оценщики и параметры оценщиков.
- Возвращает:
-
- paramsdict
-
Имена параметров и оценщиков, сопоставленные с их значениями, или имена параметров, сопоставленные с их значениями.
- propertyn_features_in_
-
Количество признаков, обнаруженных во время fit.
- propertynamed_estimators
-
Словарь для доступа к любым подогнанным под-оценщикам по имени.
- Возвращает:
-
Bunch
- predict(X, **predict_params)[source]
-
Предсказать целевое значение для X.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Векторы обучения, где
n_samples- это число образцов, аn_features- число признаков. - **predict_paramsdict of str -> obj
-
Параметры для
predict, вызываемогоfinal_estimator. Обратите внимание, что это может использоваться для возврата неопределенностей от некоторых оценщиков сreturn_stdилиreturn_cov. Имейте в виду, что это будет учитывать только неопределенность в финальном оценщике.- Если
enable_metadata_routing=False(по умолчанию): Параметры передаются непосредственно в методpredictfinal_estimator. - Если
enable_metadata_routing=True: Параметры безопасно направляются в методpredictfinal_estimator. См. Руководство пользователя по маршрутизации метаданных для получения более подробной информации.
Изменено в версии 1.6:
**predict_paramsможет быть направлено через API маршрутизации метаданных. - Если
- Возвращает:
-
- y_predndarray of shape (n_samples,) or (n_samples, n_output)
-
Предсказанные целевые значения.
- score(X, y, sample_weight=None)[source]
-
Возвращает коэффициент детерминации предсказания.
Коэффициент детерминации \(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 of shape (n_samples, n_features)
-
Тестовые выборки. Для некоторых оценщиков это может быть предварительно вычисленная матрица ядра или список универсальных объектов вместо неё с формой
(n_samples, n_samples_fitted), гдеn_samples_fitted— количество выборок, используемых при подгонке для оценщика. - yarray-like of shape (n_samples,) or (n_samples, n_outputs)
-
Истинные значения для
X. - sample_weightarray-like of shape (n_samples,), default=None
-
Веса выборок.
- Возвращает:
-
- scorefloat
-
\(R^2\) для
self.predict(X)относительноy.
Примечания
Значение \(R^2\), используемое при вызове
scoreдля регрессора, используетmultioutput='uniform_average'с версии 0.23 для соответствия значению по умолчаниюr2_score. Это влияет на методscoreдля всех регрессоров с несколькими выходами (за исключениемMultiOutputRegressor).
- set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') StackingRegressor[source]
-
Запрос метаданных, переданных методу
fit.Обратите внимание, что этот метод актуален только если
enable_metadata_routing=True(см.sklearn.set_config). Пожалуйста, обратитесь к Руководству пользователя для получения информации о том, как работает механизм маршрутизации.Варианты для каждого параметра:
-
True: запрашиваются метаданные, и передаются вfitпри их наличии. Запрос игнорируется, если метаданные не предоставлены. -
False: метаданные не запрашиваются, и мета-оценщик не передаст их вfit. -
None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь их предоставит. -
str: метаданные должны передаваться мета-оценщику с этим псевдонимом вместо исходного имени.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED): сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, а не для других.Добавлен в версии 1.3.
Примечание
Этот метод актуален только в том случае, если этот оценщик используется в качестве под-оценщика мета-оценщика, например, внутри
Pipeline. В противном случае он не оказывает никакого влияния.- Параметры:
-
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвfit.
- Возвращает:
-
- selfobject
-
Обновленный объект.
-
- set_output(*, transform=None)[source]
-
Установить контейнер вывода.
См. Введение в API set_output для примера использования API.
- Параметры:
-
- transform{“default”, “pandas”, “polars”}, default=None
-
Настройка вывода для
transformиfit_transform.-
"default": Формат вывода по умолчанию для преобразователя -
"pandas": Вывод DataFrame -
"polars": Вывод Polars -
None: Настройка преобразования не изменяется
Добавлен в версии 1.4:
"polars"опция добавлена. -
- Возвращает:
-
- selfestimator instance
-
Экземпляр оценщика.
- set_params(**params)[source]
-
Устанавливает параметры оценщика из ансамбля.
Допустимые ключи параметров можно перечислить с помощью
get_params(). Обратите внимание, что вы можете напрямую установить параметры оценщиков, содержащихся вestimators.- Параметры:
-
- **paramskeyword arguments
-
Конкретные параметры, используя, например,
set_params(parameter_name=new_value). Кроме того, для установки параметров оценщика, также можно установить отдельные оценщики или удалить их, установив значение ‘drop’.
- Возвращает:
-
- selfobject
-
Экземпляр оценщика.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') StackingRegressor[source]
-
Запрос метаданных, передаваемых методу
score.Обратите внимание, что этот метод актуален только если
enable_metadata_routing=True(см.sklearn.set_config). См. Руководство пользователя о том, как работает механизм маршрутизации.Доступные варианты для каждого параметра:
-
True: метаданные запрашиваются и передаются методуscoreпри наличии. Запрос игнорируется, если метаданные не предоставлены. -
False: метаданные не запрашиваются, и мета-оценщик не передаст ихscore. -
None: метаданные не запрашиваются, и мета-оценщик выведет ошибку, если пользователь их предоставит. -
str: метаданные должны быть переданы мета-оценщику с данным псевдонимом вместо исходного имени.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменять запрос для некоторых параметров, а не для всех.Добавлен в версии 1.3.
Примечание
Этот метод актуален только если этот оцещик используется в качестве под-оценщика мета-оценщика, например, внутри
Pipeline. В противном случае он не оказывает никакого влияния.- Parameters:
-
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвscore.
- Returns:
-
- selfobject
-
Обновлённый объект.
-
- transform(X)[source]
-
Возвращает прогнозы для X для каждого оцещика.
- Parameters:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Векторы обучения, где
n_samples— количество примеров, аn_features— количество признаков.
- Returns:
-
- y_predsndarray of shape (n_samples, n_estimators)
-
Выходные прогнозы для каждого оцещика.
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.ensemble.StackingRegressor.html