diff --git a/lab2/assignment1.R b/lab2/assignment1.R index 9b78e10a34baab9fb90e440dc8e315a66d988b8c..a2211dd9c861c6ea87dbc11b3503be3f6e6d9f3b 100644 --- a/lab2/assignment1.R +++ b/lab2/assignment1.R @@ -2,7 +2,6 @@ library(glmnet) data = read.csv("tecator.csv") -# Split data n = dim(data)[1] set.seed(12345) id = sample(1:n, floor(n * 0.5)) @@ -35,9 +34,8 @@ print(paste("MSE on the test data:", mse(test$Fat, test_pred))) #----3.---- -lambda_with_k_features = function(x_train,y_train,a,k = 3){ - - fit_train <- glmnet(as.matrix(X_train), y_train, alpha = a ) +lambda_with_k_features = function(x_train, y_train, alpha, k = 3) { + fit_train <- glmnet(as.matrix(X_train), y_train, alpha = alpha) plot(fit_train, xvar = "lambda", label = TRUE) @@ -47,18 +45,18 @@ lambda_with_k_features = function(x_train,y_train,a,k = 3){ num_non_zero <- apply(coef_matrix != 0, 2, sum) # Sum of num of cols wit non zero coeff, i.e. number of features - lambda_values[num_non_zero == k] # lambda value wit 3 non zero coeff, i.e. number of features - + lambda_values[num_non_zero == k] # Lambda value with k non zero coeff, i.e. number of features + } -lambda_with_3_features = lambda_with_k_features(x_train,y_train, 1,3) +lambda_with_3_features = lambda_with_k_features(x_train, y_train, 1, 3) print(lambda_with_3_features) #----4.---- -lambda_with_3_features = lambda_with_k_features(x_train, y_train,0,3) +lambda_with_3_features = lambda_with_k_features(x_train, y_train, 0, 3) print(lambda_with_3_features) @@ -70,8 +68,15 @@ plot(fit, xvar = "lambda", label = TRUE) fit$lambda.min -coef(fit, s="lambda.min") +coef(fit, s = "lambda.min") -y_hat = predict(fit, newx=as.matrix(X_train), s="lambda.min") +y_hat = predict(fit, newx = as.matrix(X_train), s = "lambda.min") -plot(y_train, y_hat, xlab = "Observed test values", ylab = "Predicted test values", main = "Original versus predicted test values ", col = "blue") +plot( + y_train, + y_hat, + xlab = "Observed test values", + ylab = "Predicted test values", + main = "Original versus predicted test values ", + col = "blue" +)