1. Data
data <- data.frame(
No = 1:8,
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## No Cuaca Angin Bermain
## 1 1 Cerah Lemah Ya
## 2 2 Cerah Kuat Tidak
## 3 3 Mendung Lemah Ya
## 4 4 Hujan Lemah Ya
## 5 5 Hujan Kuat Tidak
## 6 6 Mendung Kuat Ya
## 7 7 Cerah Lemah Ya
## 8 8 Hujan Lemah Ya
2. Membuat Model Decision Tree
library(rpart)
library(rpart.plot)
dt_model <- rpart(Bermain ~ Cuaca + Angin,
data = data,
method = "class",
parms = list(split = "information"))
summary(dt_model)## Call:
## rpart(formula = Bermain ~ Cuaca + Angin, data = data, method = "class",
## parms = list(split = "information"))
## n= 8
##
## CP nsplit rel error xerror xstd
## 1 0.01 0 1 0 0
##
## Node number 1: 8 observations
## predicted class=Ya expected loss=0.25 P(node) =1
## class counts: 2 6
## probabilities: 0.250 0.750
3. Visualisasi Pohon Keputusan
4. Prediksi Data Baru
Data yang akan diprediksi:
- Cuaca = Hujan
- Angin = Kuat
data_baru <- data.frame(
Cuaca = factor("Hujan", levels = levels(factor(data$Cuaca))),
Angin = factor("Kuat", levels = levels(factor(data$Angin)))
)
prediksi <- predict(dt_model, data_baru, type = "class")
prob_prediksi <- predict(dt_model, data_baru, type = "prob")
prediksi## [1] Ya
## Levels: Tidak Ya
## Tidak Ya
## [1,] 0.25 0.75
5. Perbandingan dengan Perhitungan Manual
Hasil perhitungan manual menunjukkan bahwa:
- Entropy total = 0.8113
- Gain(Cuaca) = 0.1225
- Gain(Angin) = 0.4669
- Root node = Angin
- Prediksi untuk (Cuaca = Hujan, Angin = Kuat) adalah Tidak
Hasil dari software seharusnya sama, yaitu Tidak.
6. Kesimpulan
Hasil manual dan hasil software umumnya sama karena keduanya menggunakan prinsip pemilihan atribut berdasarkan informasi gain.
Jika ada perbedaan kecil, kemungkinan penyebabnya adalah:
- pembulatan angka saat menghitung entropy dan gain,
- aturan pemotongan pohon pada software,
- perbedaan detail implementasi algoritma pada paket yang digunakan.
Namun, untuk data sederhana ini, hasil akhir prediksi tetap sama.