library(readxl)
## Warning: package 'readxl' was built under R version 4.4.3
library(caret)
## Warning: package 'caret' was built under R version 4.4.3
## Loading required package: ggplot2
## Loading required package: lattice
library(e1071)
## Warning: package 'e1071' was built under R version 4.4.3
library(randomForest)
## Warning: package 'randomForest' was built under R version 4.4.3
## randomForest 4.7-1.2
## Type rfNews() to see new features/changes/bug fixes.
##
## Attaching package: 'randomForest'
## The following object is masked from 'package:ggplot2':
##
## margin
library(rpart)
## Warning: package 'rpart' was built under R version 4.4.3
train <- read_excel("datatraining.xlsx")
test <- read_excel("datatesting.xlsx")
categorical_columns <- c("jenis_kelamin", "dukungan_orang_tua", "fasilitas_belajar",
"minat_pada_pelajaran", "kesulitan_ekonomi")
train[categorical_columns] <- lapply(train[categorical_columns], factor)
test[categorical_columns] <- lapply(test[categorical_columns], factor)
train$motivasi_belajar <- factor(train$motivasi_belajar,
levels = c(1, 2, 3),
labels = c("Rendah", "Sedang", "Tinggi"))
# Bersihkan NA
train <- na.omit(train)
test <- na.omit(test)
dt_model <- rpart(motivasi_belajar ~ ., data = train, method = "class")
rf_model <- randomForest(motivasi_belajar ~ ., data = train, ntree = 100)
svm_model <- svm(motivasi_belajar ~ ., data = train, kernel = "linear")
# Prediksi
pred_dt <- predict(dt_model, test, type = "class")
pred_rf <- predict(rf_model, test)
pred_svm <- predict(svm_model, test)
# Gabungkan
hasil <- data.frame(ID = 1:nrow(test),
Decision_Tree = pred_dt,
Random_Forest = pred_rf,
SVM = pred_svm)
# TAMPILKAN ke HTML
print(hasil)
## ID Decision_Tree Random_Forest SVM
## 1 1 Sedang Sedang Sedang
## 2 2 Sedang Sedang Sedang
## 3 3 Rendah Rendah Rendah
## 4 4 Sedang Sedang Sedang
## 5 5 Rendah Rendah Rendah
## 6 6 Sedang Sedang Sedang
## 7 7 Sedang Sedang Sedang
## 8 8 Tinggi Sedang Sedang
## 9 9 Rendah Sedang Sedang
## 10 10 Sedang Sedang Sedang
## 11 11 Sedang Rendah Rendah
## 12 12 Rendah Rendah Rendah
## 13 13 Rendah Sedang Sedang
## 14 14 Sedang Sedang Rendah
## 15 15 Rendah Rendah Rendah
# Simpan ke CSV (optional)
write.csv(hasil, "hasil_prediksi_uas.csv", row.names = FALSE)