In the previous chapter on linear regression, we used the glmnet
package to perform regularization with ridge regression and the lasso. As we've seen that, it might be a good idea to remove some of our features, we'll try applying lasso to our dataset and assess the results. First, we'll train a series of regularized models with glmnet()
and then we will use cv.glmnet()
to estimate a suitable value for λ. Then, we'll examine the coefficients of our regularized model using this λ:
> library(glmnet) > heart_train_mat <- model.matrix(OUTPUT ~ ., heart_train)[,-1] > lambdas <- 10 ^ seq(8, -4, length = 250) > heart_models_lasso <- glmnet(heart_train_mat, heart_train$OUTPUT, alpha = 1, lambda = lambdas, family = "binomial") > lasso.cv <- cv.glmnet(heart_train_mat, heart_train$OUTPUT, alpha = 1,lambda = lambdas, family = "binomial") > lambda_lasso <- lasso.cv$lambda.min > lambda_lasso [1] 0.01057052 > predict(heart_models_lasso...