Я использовал перекрестную проверку на регрессоре повышения градиента.
Я вычислил RMSE для каждой оценки во время перекрестной проверки и нашел среднее значение, однако оно кажется слишком далеким от RMSE от использования train_test_split и сравнения (предсказано Фактически).
Насколько я понимаю, использование train_test_split невозможно переопределить, поскольку я не тестирую различные комбинации параметров на тестовом наборе.
Что представляет собой эта разница?
здесь мой код:
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3, random_state=0)
gbr_le = GradientBoostingRegressor(
n_estimators = 1000,
learning_rate = 0.1,
random_state = 0
)
model = gbr_le.fit(X_train, y_train)
y_pred = model.predict(X_test)
print(f'{np.sqrt(metrics.mean_squared_error(y_test, y_pred))}')
>>> 4.881378370139346
и с использованием CV:
scores = cross_val_score(gbr_le, X, y, cv=7, scoring='neg_mean_squared_error')
statistics.mean([np.sqrt(-sc) for sc in scores])
>>> 9.381100515895412