StackingRegressor#
- класс sklearn.ensemble.StackingRegressor(оценщики, финальный_оцениватель=None, *, cv=None, n_jobs=None, passthrough=False, verbose=0)[источник]#
Стек оценщиков с финальным регрессором.
Стекинг-обобщение состоит в объединении выходов отдельных оценщиков и использовании регрессора для вычисления окончательного предсказания. Стекинг позволяет использовать сильные стороны каждого отдельного оценщика, используя их выходы в качестве входных данных для финального оценщика.
Обратите внимание, что
estimators_обучаются на полномXв то время какfinal_estimator_обучается с использованием перекрестно проверенных предсказаний базовых оценщиков с помощьюcross_val_predict.Подробнее в Руководство пользователя.
Добавлено в версии 0.22.
- Параметры:
- оценщикисписок (str, estimator)
Базовые оценщики, которые будут объединены. Каждый элемент списка определяется как кортеж строки (т.е. имени) и экземпляра оценщика. Оценщик может быть установлен в 'drop' с помощью
set_params.- финальный_оценивательоценщик, по умолчанию=None
Регрессор, который будет использоваться для объединения базовых оценщиков. Регрессор по умолчанию — это
RidgeCV.- cvint, генератор кросс-валидации, итерируемый объект или "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_jobsint, default=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Количество признаков, замеченных во время fit.
- feature_names_in_ndarray формы (
n_features_in_,) Имена признаков, наблюдаемых во время fit. Определяется только в том случае, если базовые модели предоставляют такой атрибут при обучении.
Добавлено в версии 1.0.
- final_estimator_estimator
Регрессор, обученный на выходе
estimators_и отвечает за окончательные прогнозы.- stack_method_список str
Метод, используемый каждым базовым оценщиком.
Смотрите также
StackingClassifierСтек оценщиков с финальным классификатором.
Ссылки
[1]Волперт, Дэвид Х. «Сложенное обобщение». 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, sparse matrix} формы (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). См. Руководство по маршрутизации метаданных для более подробной информации.
- Возвращает:
- selfobject
Возвращает обученный экземпляр.
- fit_transform(X, y, **fit_params)[источник]#
Обучите оценщики и верните прогнозы для X для каждого оценщика.
- Параметры:
- X{array-like, sparse matrix} формы (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 из str или None, по умолчанию=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_iffeature_names_in_определен.
Если
passthroughявляетсяFalse, тогда только именаestimatorsиспользуются для генерации выходных имен признаков.
- Возвращает:
- feature_names_outndarray из str объектов
Преобразованные имена признаков.
- 6332()[источник]#
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.
Добавлено в версии 1.6.
- Возвращает:
- маршрутизацияMetadataRouter
A
MetadataRouterИнкапсуляция информации о маршрутизации.
- get_params(глубокий=True)[источник]#
Получить параметры оценщика из ансамбля.
Возвращает параметры, заданные в конструкторе, а также оценщики, содержащиеся в
estimatorsпараметр.- Параметры:
- глубокийbool, по умолчанию=True
Установка значения True получает различные оценки и параметры оценок.
- Возвращает:
- paramsdict
Имена параметров и оценщиков, сопоставленные с их значениями, или имена параметров, сопоставленные с их значениями.
- predict(X, **predict_params)[источник]#
Предсказать целевые значения для X.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Обучающие векторы, где
n_samples— это количество образцов иn_featuresэто количество признаков.- **predict_paramsсловарь 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\) of
self.predict(X)относительноy.
Примечания
The \(R^2\) оценка, используемая при вызове
scoreна регрессоре используетmultioutput='uniform_average'с версии 0.23 для сохранения согласованности со значением по умолчаниюr2_score. Это влияет наscoreметод всех многомерных регрессоров (кромеMultiOutputRegressor).
- set_output(*, преобразовать=None)[источник]#
Установить контейнер вывода.
См. Введение API set_output для примера использования API.
- Параметры:
- преобразовать{“default”, “pandas”, “polars”}, по умолчанию=None
Настройка вывода
transformиfit_transform."default": Формат вывода трансформера по умолчанию"pandas": DataFrame вывод"polars": Вывод PolarsNone: Конфигурация преобразования не изменена
Добавлено в версии 1.4:
"polars"опция была добавлена.
- Возвращает:
- selfэкземпляр estimator
Экземпляр оценщика.
- set_params(**params)[источник]#
Установить параметры оценщика из ансамбля.
Допустимые ключи параметров можно перечислить с помощью
get_params(). Обратите внимание, что вы можете напрямую устанавливать параметры оценщиков, содержащихся вestimators.- Параметры:
- **paramsименованные аргументы
Конкретные параметры с использованием, например,
set_params(parameter_name=new_value). Кроме того, помимо установки параметров модели, отдельная модель в ансамбле также может быть настроена или удалена путем установки значения 'drop'.
- Возвращает:
- selfobject
Экземпляр оценщика.
- 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.
- Возвращает:
- selfobject
Обновленный объект.
- преобразовать(X)[источник]#
Возвращает предсказания для X для каждого оценщика.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Обучающие векторы, где
n_samples— это количество образцов иn_featuresэто количество признаков.
- Возвращает:
- y_predsndarray формы (n_samples, n_estimators)
Выходы предсказаний для каждого оценивателя.