Untitled
3 years ago in Plain Text
lambdas = np.logspace(-10, 10, 50)
pipe_lasso = make_pipeline(StandardScaler(), Lasso(random_state=1)) #Pipe
#Grid search
gs = GridSearchCV(estimator=pipe_lasso,
param_grid=[{'lasso__alpha':lambdas}], #Now two hyperparameters
scoring='neg_mean_squared_error',
cv=10, n_jobs=-1)
gs = gs.fit(X_train, y_train) #fits
print(gs.best_params_) # prints best parameters
lasso_alpha=gs.best_params_.get('lasso__alpha') #extract best parameters
#Builds final pipeline with best parameters
pipe_lasso_final = make_pipeline(StandardScaler(), Lasso(alpha=lasso_alpha,random_state=1))
pipe_lasso_final.fit(X_train, y_train)
#Stores performance using the prefered parameter from the cross validation
mseCVlasso_train=mse(y_train,pipe_lasso_final.predict(X_train)) #predict on train
mseCVlasso_test=mse(y_test,pipe_lasso_final.predict(X_test)) #predict on test
print('train MSE:' + str(mseCVlasso_train))
print('test MSE:' + str(mseCVlasso_test))