# 1. Memuat library yang diperlukan
library(readr)
## Warning: package 'readr' was built under R version 4.4.3
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
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:dplyr':
##
## combine
library(rpart)
## Warning: package 'rpart' 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
##
## Attaching package: 'ggplot2'
## The following object is masked from 'package:randomForest':
##
## margin
## Loading required package: lattice
library(readxl)
## Warning: package 'readxl' was built under R version 4.4.3
library(openxlsx)
## Warning: package 'openxlsx' was built under R version 4.4.3
# 2. Load dataset
data_train<- read_excel("C:/Yulia/semester 6/Data mining/datatraining.xlsx")
data_test<- read_excel("C:/Yulia/semester 6/Data mining/datatesting.xlsx")
# 3. Preprocessing
data_train <- data_train %>%
mutate(
jenis_kelamin = as.factor(jenis_kelamin),
dukungan_orang_tua = as.factor(dukungan_orang_tua),
fasilitas_belajar = as.factor(fasilitas_belajar),
minat_pada_pelajaran = as.factor(minat_pada_pelajaran),
kesulitan_ekonomi = as.factor(kesulitan_ekonomi),
motivasi_belajar = as.factor(motivasi_belajar)
)
# Pastikan data_test punya faktor yang sama (tanpa motivasi_belajar)
data_test <- data_test %>%
mutate(
jenis_kelamin = as.factor(jenis_kelamin),
dukungan_orang_tua = as.factor(dukungan_orang_tua),
fasilitas_belajar = as.factor(fasilitas_belajar),
minat_pada_pelajaran = as.factor(minat_pada_pelajaran),
kesulitan_ekonomi = as.factor(kesulitan_ekonomi)
)
# 4. Train model
## A. Decision Tree
tree_model <- rpart(motivasi_belajar ~ ., data = data_train, method = "class")
## B. Random Forest
rf_model <- randomForest(motivasi_belajar ~ ., data = data_train)
## C. SVM
svm_model <- svm(motivasi_belajar ~ ., data = data_train)
# 5. Predict
tree_pred <- predict(tree_model, data_test, type = "class")
rf_pred <- predict(rf_model, data_test)
svm_pred <- predict(svm_model, data_test)
# 6. Lihat hasil prediksi
hasil_prediksi <- data.frame(
ID = 1:nrow(data_test),
Decision_Tree = tree_pred,
Random_Forest = rf_pred,
SVM = svm_pred
)
print(hasil_prediksi)
## ID Decision_Tree Random_Forest SVM
## 1 1 2 2 2
## 2 2 2 2 2
## 3 3 1 1 1
## 4 4 2 2 2
## 5 5 1 1 1
## 6 6 2 2 2
## 7 7 2 2 2
## 8 8 3 2 2
## 9 9 1 2 2
## 10 10 2 2 2
## 11 11 2 1 1
## 12 12 1 1 1
## 13 13 1 2 2
## 14 14 2 2 1
## 15 15 1 1 1