From 750d287bb91f17f1d1bc5824b6c0645bee410007 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Ramnel=C3=B6v?= <felra653@student.liu.se> Date: Fri, 13 Dec 2024 09:44:27 +0100 Subject: [PATCH] Lab 3: Code cleanup --- lab3/assignment2.R | 13 ++++++------- lab3/assignment3.R | 6 ++---- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/lab3/assignment2.R b/lab3/assignment2.R index f71fbf8..0f0353d 100644 --- a/lab3/assignment2.R +++ b/lab3/assignment2.R @@ -28,6 +28,7 @@ times <- c( "24:00:00" ) +# Convert time strings to POSIXlt st$time <- strptime(st$time, format = "%H:%M:%S") gaussian_kernel <- function(x, h) { @@ -80,9 +81,7 @@ date_diff_ignoring_year <- function(date1, date2) { diff <- abs(as.numeric(date1-date2)) # If difference is greater than half a year, go other way - if (diff >= 183) { - diff <- 366 - diff - } + if (diff >= 183) diff <- 366 - diff return(diff) } @@ -106,14 +105,14 @@ for (time in times) { }, st_temp$latitude, st_temp$longitude) - date_kernels <- mapply(function(x_i) { - dist <- date_diff_ignoring_year(date, x_i) + date_kernels <- mapply(function(date_i) { + dist <- date_diff_ignoring_year(date, date_i) gaussian_kernel(dist, h_date) }, st_temp$date) - time_kernels <- mapply(function(x_i) { - dist <- as.numeric(difftime(time, x_i, units = "hours")) + time_kernels <- mapply(function(time_i) { + dist <- as.numeric(difftime(time, time_i, units = "hours")) gaussian_kernel(dist, h_time) }, st_temp$time) diff --git a/lab3/assignment3.R b/lab3/assignment3.R index 18d9602..bc09c53 100644 --- a/lab3/assignment3.R +++ b/lab3/assignment3.R @@ -98,16 +98,14 @@ k <- NULL for (i in 1:10) { # We produce predictions for just the first 10 points in the dataset. k2 <- inte - data_point <- as.numeric(spam[i, -58]) + new_data_point <- as.numeric(spam[i, -58]) for (j in 1:length(sv)) { support_vector <- as.numeric(spam[sv[j], -58]) - kernel_value <- rbf_kernel(support_vector, data_point) + kernel_value <- rbf_kernel(support_vector, new_data_point) k2 <- k2 + co[j] * kernel_value } print(k2) k <- c(k, sign(k2)) } - -# Only first correct, close to decision boundary (0.006292512). k predict(filter3, spam[1:10, -58], type = "decision") \ No newline at end of file -- GitLab