def cv_time_series_rmse(regressor, data, target_column, n_splits, max_train_size):
tscv = TimeSeriesSplit(n_splits = n_splits, max_train_size = max_train_size)
RMSE = 0.0
for train_index, test_index in tscv.split(data):
train = data.iloc[train_index]
test = data.iloc[test_index]
train_features = train.drop(target_column, axis=1)
train_target = train[target_column]
test_features = test.drop(target_column, axis=1)
test_target = test[target_column]
regressor.fit(train_features, train_target)
RMSE += mean_squared_error(test_target, regressor.predict(test_features)) ** 0.5
return RMSE / n_splits
cv_train_test_split = (train.shape[0] * 4 //5)
cv_splits = 3
cv_time_series_rmse(regressor=LinearRegression(),
data=train,
target_column='num_orders',
n_splits=cv_splits,
max_train_size=cv_train_test_split)