Pada dokumen ini, kita akan membandingkan dua model regresi — Regresi
Linear dan Support Vector Regression (SVR) — dalam memprediksi efisiensi
bahan bakar mobil (mpg
) berdasarkan tenaga mesin
(hp
) menggunakan dataset mtcars
.
Dataset mtcars
berisi data teknis dari 32 mobil,
termasuk mpg
(mile per gallon), hp
(horsepower), dan fitur lainnya.
MEMBUAT LIBRARY
library(e1071)
## Warning: package 'e1071' was built under R version 4.4.3
library(ggplot2)
MEMUAT DAN MEMBAGI DATA
data("mtcars")
set.seed(123)
index <- sample(1:nrow(mtcars), 0.7 * nrow(mtcars))
train_data <- mtcars[index, ]
test_data <- mtcars[-index, ]
MODEL REGRESI LINEAR
lm_model <- lm(mpg ~ hp, data = train_data)
lm_pred <- predict(lm_model, newdata = test_data)
Model SVR (Support Vector Regression)
svr_model <- svm(mpg ~ hp, data = train_data, type = "eps-regression")
svr_pred <- predict(svr_model, newdata = test_data)
VISUALISASI HASIL
ggplot() +
geom_point(aes(x = test_data$hp, y = test_data$mpg), color = "black", size = 2) +
geom_line(aes(x = test_data$hp, y = lm_pred), color = "blue", linetype = "dashed", size = 1) +
geom_line(aes(x = test_data$hp, y = svr_pred), color = "red", linetype = "solid", size = 1) +
labs(title = "Perbandingan SVR vs Regresi Linear dalam Prediksi mpg",
x = "Horsepower",
y = "Miles per Gallon (mpg)")
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
EVALUASI MODEL DENGAN MSE
# Menghitung Mean Squared Error (MSE)
lm_mse <- mean((lm_pred - test_data$mpg)^2)
svr_mse <- mean((svr_pred - test_data$mpg)^2)
# Menampilkan hasil
print(paste("MSE Regresi Linear:", round(lm_mse, 2)))
## [1] "MSE Regresi Linear: 9.55"
print(paste("MSE SVR:", round(svr_mse, 2)))
## [1] "MSE SVR: 5.94"
Interpretasi Hasil: Visualisasi: - Titik-titik hitam = data aktual. - Garis biru putus-putus = hasil regresi linear. - Garis merah solid = hasil SVR. - Kalau pola data agak “membelok”, SVR biasanya bisa mengikuti lekukannya lebih baik.
MSE: - Menunjukkan rata-rata kesalahan kuadrat. Makin kecil nilainya, makin bagus prediksinya. - Berdasarkan hasil yang diperoleh, MSE Regresi Linear 9.55 > MSE SVR 5.94 sehingga dapat disimpulkan untuk data(mtcars) SVR adalah metode yang lebih baik daripada regresi.
Kesimpulan: - Regresi Linear lebih sederhana dan mungkin lebih mudah diinterpretasikan, namun hanya efektif jika hubungan antara variabel bersifat linear. - SVR lebih fleksibel dan dapat menangani hubungan non-linear, yang seringkali lebih sesuai dalam data nyata yang lebih kompleks.
View(mtcars)