Spec-Zone.ru › scikit-learn

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 (по умолчанию): Параметры передаются непосредственно в метод predict final_estimator.
  • Если enable_metadata_routing=True: Параметры безопасно направляются в метод predict final_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

Spec-Zone.ru

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