library(readr)
## Warning: package 'readr' was built under R version 4.4.3
dataset_mutu_kedelai_TIP_100data <- read_csv("dataset_mutu_kedelai_TIP_100data.csv")
## Rows: 100 Columns: 5
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): mutu
## dbl (4): kadar_air_persen, biji_rusak_persen, kotoran_persen, berat_1000_bij...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#IMPOR DATA
df <- read.csv("dataset_mutu_kedelai_TIP_100data.csv")
data_mutu_kedelai <- read.csv("dataset_mutu_kedelai_TIP_100data.csv")
data_mutu_kedelai <- read.csv("dataset_mutu_kedelai_TIP_100data.csv")
str(data_mutu_kedelai)
## 'data.frame': 100 obs. of 5 variables:
## $ kadar_air_persen : num 13.7 19.5 17.3 16 11.6 11.6 10.6 18.7 16 17.1 ...
## $ biji_rusak_persen : num 0.4 7.6 3.8 6.1 10.9 3 4.9 9.1 2.7 0.9 ...
## $ kotoran_persen : num 2.6 0.3 0.6 3.6 2.4 0 0.4 2.7 0 0.6 ...
## $ berat_1000_biji_gram: num 163 187 187 192 196 209 186 176 200 174 ...
## $ mutu : chr "Rendah" "Rendah" "Rendah" "Rendah" ...
#PEMBAGIAN DATA
set.seed(123)
index <- sample(1:nrow(data_mutu_kedelai), 0.7*nrow(data_mutu_kedelai))
train <- data_mutu_kedelai[index, ]
test <- data_mutu_kedelai[-index, ]
library(rpart)
model_tree <- rpart(mutu ~ ., data = train, method = "class")
model_tree
## n= 70
##
## node), split, n, loss, yval, (yprob)
## * denotes terminal node
##
## 1) root 70 6 Rendah (0.91428571 0.08571429) *
#install.packages("rpart.plot")
library(rpart.plot)
## Warning: package 'rpart.plot' was built under R version 4.4.3
rpart.plot(model_tree)
# Prediksi Data Uji
prediksi <- predict(model_tree, test, type = "class")
head(prediksi)
## [1] Rendah Rendah Rendah Rendah Rendah Rendah
## Levels: Rendah Tinggi
conf_matrix <- table(Actual = test$mutu, Predicted = prediksi)
conf_matrix
## Predicted
## Actual Rendah Tinggi
## Rendah 29 0
## Tinggi 1 0
akurasi <- sum(diag(conf_matrix)) / sum(conf_matrix)
akurasi
## [1] 0.9666667
Berdasarkan hasil pengujian model Decision Tree, diperoleh confusion matrix yang menunjukkan bahwa model mampu mengklasifikasikan mutu kedelai dengan sangat baik pada kelas Rendah, di mana seluruh data aktual Rendah berhasil diprediksi dengan benar. Namun, model belum mampu mengklasifikasikan kelas Tinggi dengan baik karena sebagian data Tinggi masih salah diklasifikasikan. Meskipun demikian, nilai akurasi sebesar 96,67% menunjukkan bahwa secara keseluruhan model memiliki tingkat ketepatan yang sangat tinggi dalam mengklasifikasikan mutu kedelai.