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