From c189dc40d730adb6071b9208a4ccd81bbdac6dda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Ramnel=C3=B6v?= <felra653@student.liu.se> Date: Fri, 6 Dec 2024 09:08:46 +0100 Subject: [PATCH] Lab 2: Fixed function in assignment 1 --- lab2/assignment1.R | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/lab2/assignment1.R b/lab2/assignment1.R index b706dd3..2df7f33 100644 --- a/lab2/assignment1.R +++ b/lab2/assignment1.R @@ -34,8 +34,15 @@ print(paste("MSE on the test data:", mse(test$Fat, test_pred))) #----3.---- -lambda_with_k_features = function(x_train, y_train, alpha, k = 3) { - fit_train <- glmnet(as.matrix(X_train), y_train, alpha = alpha) +lambda_with_k_features = function(x_train, + y_train, + alpha, + k = 3, + nlambda = 1000) { + fit_train <- glmnet(as.matrix(X_train), + y_train, + alpha = alpha, + nlambda = nlambda) plot(fit_train, xvar = "lambda", label = TRUE) grid() @@ -48,7 +55,16 @@ lambda_with_k_features = function(x_train, y_train, alpha, k = 3) { num_non_zero <- apply(coef_matrix != 0, 2, sum) # lambda value with k non zero coeff, i.e. number of features - lambda_values[num_non_zero == k] + lambda_values <- lambda_values[num_non_zero == k] + + if (length(lambda_values) == 0) { + return() + } + + return(list( + min = min(lambda_values), + max = max(lambda_values) + )) } -- GitLab