Tuning the regularization parameters using cross-validation

We then proceed to cross-validate the hyperparameter values again using 250 folds as follows:

nfolds = 250
alphas = np.logspace(-5, 5, 21)
scaler = StandardScaler()

ridge_result, ridge_coeffs = pd.DataFrame(), pd.DataFrame()
for i, alpha in enumerate(alphas):
coeffs, test_results = [], []
lr_ridge = Ridge(alpha=alpha)
for train_dates, test_dates in time_series_split(dates, nfolds=nfolds):
X_train = model_data.loc[idx[train_dates], features]
y_train = model_data.loc[idx[train_dates], target]
lr_ridge.fit(X=scaler.fit_transform(X_train), y=y_train)
coeffs.append(lr_ridge.coef_)

X_test = model_data.loc[idx[test_dates], features]
y_test = model_data.loc[idx[test_dates], target]
y_pred = lr_ridge.predict(scaler.transform(X_test))

rmse = np.sqrt(mean_squared_error(y_pred=y_pred, y_true=y_test))
ic, pval = spearmanr(y_pred, y_test)

test_results.append([train_dates[-1], rmse, ic, pval, alpha])
test_results = pd.DataFrame(test_results, columns=['date', 'rmse', 'ic', 'pval', 'alpha'])
ridge_result = ridge_result.append(test_results)
ridge_coeffs[alpha] = np.mean(coeffs, axis=0)
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.23.101.60