Стек предикторов: прогноз на тесте X_test - PullRequest
0 голосов
/ 24 марта 2020

Я использую эти советы для объединения предикторов с использованием стека: https://scikit-learn.org/stable/auto_examples/ensemble/plot_stack_predictors.html#sphx -glr-auto-examples-ensemble-plot-stack-pregntors-py

import time
import numpy as np
from sklearn.datasets import load_boston
from sklearn.model_selection import cross_validate, cross_val_predict

X, y = load_boston(return_X_y=True)

fig, axs = plt.subplots(2, 2, figsize=(9, 7))
axs = np.ravel(axs)

for ax, (name, est) in zip(axs, estimators + [('Stacking Regressor',
                                               stacking_regressor)]):
    start_time = time.time()
    score = cross_validate(est, X, y,
                           scoring=['r2', 'neg_mean_absolute_error'],
                           n_jobs=-1, verbose=0)
    elapsed_time = time.time() - start_time

    y_pred = cross_val_predict(est, X, y, n_jobs=-1, verbose=0)
    plot_regression_results(
        ax, y, y_pred,
        name,
        (r'$R^2={:.2f} \pm {:.2f}$' + '\n' + r'$MAE={:.2f} \pm {:.2f}$')
        .format(np.mean(score['test_r2']),
                np.std(score['test_r2']),
                -np.mean(score['test_neg_mean_absolute_error']),
                np.std(score['test_neg_mean_absolute_error'])),
        elapsed_time)

plt.suptitle('Single predictors versus stacked predictors')
plt.tight_layout()
plt.subplots_adjust(top=0.9)
plt.show()

Используется Бостонский набор данных (прогноз цен на жилье).

Этот код, кажется, предсказывает весь набор данных Бостона. Как использовать этот код с разделением для обучения / проверки данных, пожалуйста?

Я разделил:

X_train, X_test, Y_train, Y_test = \
                model_selection.train_test_split(X, y,
                                test_size=0.3, # 30% des données dans le jeu de test
                                random_state=42)

1) На данных поезда: я пересекаю валидацию и cross_val_predict на данных X_train / Y_train:

score = cross_validate(est, X_train, Y_train,
                           scoring=['r2', 'neg_mean_absolute_error'],
                           n_jobs=-1, verbose=0)
y_pred = cross_val_predict(est, X, y, n_jobs=-1, verbose=0)

2) На тестовых данных: на мой взгляд, нехорошо прогнозировать с помощью «перекрестной проверки» на X_test с помощью функции cross_val_predict ().

y_pred_test = cross_val_predict(est, X_test, Y_test, n_jobs=-1, verbose=0)

Какую функцию прогнозирования можно использовать вызывать набор данных X_test? Большое спасибо. Тео

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...