Pada tugas ini dilakukan pembangunan model Decision Tree menggunakan dataset cuaca dan angin untuk menentukan keputusan bermain atau tidak bermain. Analisis dilakukan menggunakan perhitungan entropy dan information gain.
library(rpart)
## Warning: package 'rpart' was built under R version 4.4.3
library(rpart.plot)
## Warning: package 'rpart.plot' was built under R version 4.4.3
# Membuat dataset
data <- data.frame(
Cuaca = c("Cerah","Cerah","Mendung","Hujan",
"Hujan","Mendung","Cerah","Hujan"),
Angin = c("Lemah","Kuat","Lemah","Lemah",
"Kuat","Kuat","Lemah","Lemah"),
Bermain = c("Ya","Tidak","Ya","Ya",
"Tidak","Ya","Ya","Ya")
)
data
## Cuaca Angin Bermain
## 1 Cerah Lemah Ya
## 2 Cerah Kuat Tidak
## 3 Mendung Lemah Ya
## 4 Hujan Lemah Ya
## 5 Hujan Kuat Tidak
## 6 Mendung Kuat Ya
## 7 Cerah Lemah Ya
## 8 Hujan Lemah Ya
data$Cuaca <- as.factor(data$Cuaca)
data$Angin <- as.factor(data$Angin)
data$Bermain <- as.factor(data$Bermain)
str(data)
## 'data.frame': 8 obs. of 3 variables:
## $ Cuaca : Factor w/ 3 levels "Cerah","Hujan",..: 1 1 3 2 2 3 1 2
## $ Angin : Factor w/ 2 levels "Kuat","Lemah": 2 1 2 2 1 1 2 2
## $ Bermain: Factor w/ 2 levels "Tidak","Ya": 2 1 2 2 1 2 2 2
# Model Decision Tree
model <- rpart(
Bermain ~ Cuaca + Angin,
data = data,
method = "class",
control = rpart.control(
cp = 0,
minsplit = 1,
minbucket = 1,
maxdepth = 5
)
)
# Tampilkan model
print(model)
## n= 8
##
## node), split, n, loss, yval, (yprob)
## * denotes terminal node
##
## 1) root 8 2 Ya (0.2500000 0.7500000)
## 2) Angin=Kuat 3 1 Tidak (0.6666667 0.3333333)
## 4) Cuaca=Cerah,Hujan 2 0 Tidak (1.0000000 0.0000000) *
## 5) Cuaca=Mendung 1 0 Ya (0.0000000 1.0000000) *
## 3) Angin=Lemah 5 0 Ya (0.0000000 1.0000000) *
rpart.plot(
model,
type = 2,
extra = 104,
fallen.leaves = TRUE
)
Berdasarkan hasil visualisasi Decision Tree menggunakan software R,
diperoleh bahwa atribut Angin menjadi root node atau akar pohon
keputusan karena memiliki nilai information gain terbesar. Hal ini
menunjukkan bahwa atribut Angin merupakan faktor paling berpengaruh
dalam menentukan keputusan bermain. Pada cabang pertama, jika kondisi
angin adalah Lemah, maka model langsung memprediksi hasil Bermain = Ya.
Sementara itu, jika kondisi angin adalah Kuat, maka proses keputusan
dilanjutkan dengan melihat atribut Cuaca. Pada kondisi cuaca Cerah atau
Hujan, model menghasilkan prediksi Bermain = Tidak, sedangkan pada
kondisi cuaca Mendung, model memprediksi Bermain = Ya.
Hasil prediksi untuk data baru dengan kondisi Cuaca = Hujan dan Angin = Kuat adalah Bermain = Tidak. Proses pengambilan keputusan dilakukan dengan mengikuti cabang pada pohon keputusan, dimulai dari root node Angin. Karena nilai Angin adalah Kuat, maka model melanjutkan pemeriksaan ke atribut Cuaca. Nilai Cuaca = Hujan termasuk pada cabang yang menghasilkan keputusan Tidak, sehingga diperoleh prediksi akhir bahwa aktivitas bermain tidak dilakukan.
Secara umum, hasil Decision Tree menggunakan software menunjukkan hasil yang sesuai dengan perhitungan manual, yaitu atribut Angin menjadi root node dan hasil prediksi data baru adalah Bermain = Tidak. Perbedaan struktur cabang yang muncul pada software dapat terjadi karena proses split tambahan dan parameter bawaan algoritma yang digunakan oleh software. # Kesimpulan
Berdasarkan hasil analisis Decision Tree, diperoleh bahwa atribut Angin menjadi root node karena memiliki nilai information gain terbesar dibandingkan atribut lainnya. Struktur pohon keputusan yang terbentuk dapat digambarkan sebagai berikut:
Angin
/ \
Lemah Kuat
| \
Ya Cuaca
/ \
Cerah,Hujan Mendung
| |
Tidak Ya
Struktur tersebut menunjukkan bahwa jika Angin = Lemah, maka hasil keputusan adalah Bermain = Ya. Namun, jika Angin = Kuat, maka keputusan dilanjutkan dengan melihat atribut Cuaca. Pada kondisi Cuaca = Cerah atau Hujan, hasil prediksi adalah Bermain = Tidak, sedangkan pada kondisi Cuaca = Mendung, hasil prediksi adalah Bermain = Ya.
Hasil prediksi untuk data baru dengan kondisi Cuaca = Hujan dan Angin = Kuat menunjukkan keputusan Bermain = Tidak. Selain itu, hasil perhitungan manual dan hasil menggunakan software memberikan hasil yang sama, sehingga menunjukkan bahwa proses perhitungan entropy dan information gain telah dilakukan dengan benar serta sesuai dengan pembentukan model Decision Tree pada software. # Prediksi Data Baru
Data baru yang akan diprediksi:
| Cuaca | Angin |
|---|---|
| Hujan | Kuat |
data_baru <- data.frame(
Cuaca = "Hujan",
Angin = "Kuat"
)
prediksi <- predict(
model,
data_baru,
type = "class"
)
prediksi
## 1
## Tidak
## Levels: Tidak Ya
Berdasarkan hasil perhitungan manual dan software R, diperoleh hasil bahwa atribut dengan information gain terbesar adalah Angin, sehingga atribut tersebut menjadi root node pada Decision Tree.
Hasil prediksi data baru dengan kondisi:
adalah:
\[ Bermain = Tidak \]
Hasil software dan perhitungan manual menunjukkan hasil yang sama. Hal ini karena dataset yang digunakan sederhana dan proses perhitungan entropy serta information gain pada software sesuai dengan perhitungan manual.
Jika terdapat perbedaan hasil pada kasus lain, kemungkinan penyebabnya adalah: pembulatan angka, parameter bawaan software, pruning otomatis, atau metode pemilihan split yang berbeda.
Berdasarkan hasil analisis Decision Tree, diperoleh bahwa atribut Angin menjadi root node karena memiliki nilai information gain terbesar dibandingkan atribut lainnya. Hasil prediksi untuk data baru dengan kondisi Cuaca = Hujan dan Angin = Kuat menunjukkan keputusan Bermain = Tidak. Selain itu, hasil perhitungan manual dan hasil menggunakan software memberikan hasil yang sama, sehingga menunjukkan bahwa proses perhitungan entropy dan information gain telah dilakukan dengan benar serta sesuai dengan pembentukan model Decision Tree pada software.