From 40e10eeef43169373f5b5c066089e2ca5bcc1798 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Ramnel=C3=B6v?= <felra653@student.liu.se> Date: Mon, 2 Dec 2024 08:37:53 +0100 Subject: [PATCH] Lab 2: Code cleanup --- lab2/assignment1.R | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/lab2/assignment1.R b/lab2/assignment1.R index 9b78e10..a2211dd 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" +) -- GitLab