Klasifikasi Decision Tree dengan R
Halo sahabat ..
kali ini kita akan mencoba klasifikasi menggunakan desision tree.
Introduce:
Decision Tree adalah salah satu metode analisis keputusan yang cukup banyak digunakan. Decision tree merupakan salah satu metode klasifikasi pada Text Mining. Klasifikasi adalah proses menemukan kumpulan pola atau fungsi-fungsi yang mendeskripsikan dan memisahkan kelas data satu dengan lainnya, untuk dapat digunakan memprediksi data yang belum memiliki kelas data tertentu.
Decision tree adalah sebuah struktur pohon, dimana setiap node pohon merepresentasikan atribut yang telah diuji setiap cabang merupakan suatu pembagian hasil uji dan node daun (leaf) merepresentasikan kelompok kelas tertentu. Level node teratas dari sebuah decision tree adalah node akar (root) biasanya berupa atribut yang paling memiliki pengaruh terbesar pada suatu kelas tertentu. Pada proses mengklasifikasi data yang tidak diketahui. Struktur decision tree nilai atribut akan diuji dengan cara melacak jalur dari node akar (root) sampai node akhir (daun) dan kemudian akan diprediksi kelas yang dimiliki oleh suatu data baru tertentu.
Data:
Data yang digunakan adalah data readingSkills yang sudah tersedia pada R. data readingSkills merupakan kumpulan data yang memberikan gambaran hubungan antara keterampilan membaca dengan ukuran sepatu, umur dan score pada anak-anak sekolah.
Yuk langsung saja…
Langkah 1: Memanggil Dataset
langkah pertama silahkan load package party. Jika package belum terinstall, silahkan install dengan perintah install.packages(“party”).
# fit the model
# Load the party package. It will automatically load other
# dependent packages.
library(party)
print dataset readingSkills dengan perintah berikut.
# Print some records from data set readingSkills.
print(head(readingSkills))
untuk melihat data dan dimensi data dapat menggunakan perintah berikut.
View(readingSkills)
dim(readingSkills)
Langkah 2: membagi data training dan testing
pada kasus ini data training dibagi dengan perbandingan 80:20 yaitu:
→ data training=80%
→ data testing=20%
disini saya menggunakan set.seed sebanyak 123. Nilai set.seed menunjukan berapa kali data dilakukan pengacakan. banyaknya pengacakan bebas tergantung peneliti. Tapi, untuk pelajaran kali ini disarankan untuk menggunakan 123 agar hasil random yang didapatkan sama.
## Pembagian Data TRaining dan testtin
n <- round(nrow(readingSkills)*0.80);n
set.seed(123)
samp=sample(1:nrow(readingSkills),n)
data.train = readingSkills[samp,]
data.test = readingSkills[-samp,]
dim(data.train)
dim(data.test)
Tapi, untuk pelajaran kali ini disarankan untuk menggunakan 123 agar hasil random yang didapatkan sama.
Langkah 3: Klasifikasi dengan Decision Tree
langkah selanjutnya yaitu membangun model klasifikasi dengan decision tree menggunakan data training. Variabel naiveSpeaker digunakan sebagai dependen dan variabel age, shoeSize dan skor menjadi variabel Independen.
fit <- rpart(nativeSpeaker~., data = data.train, method = 'class')
summary(fit)
fit$variable.importance
barplot(fit$variable.importance)
Langkah 4: Membuat plot Decision Tree
langkah selanjutnya membuat plot decision tree dengan perintah berikut.
library(rattle)
fancyRpartPlot(fit)
berdasarkan pohon klasifikasi diatas, didapatkan 6 pohon keputusan. Cara membaca output pohon klasifikasi diatas yaitu siswa dengan score <0,35 maka dia bukan native speaker sebesar 84%. Siswa dengan score bukan<0,35 dan memiliki skor < 51 maka dia native speaker sebesar 10%, dst..
Langkah 5: Prediksi Data Testing
Selanjutnya memprediksi data testing untuk melihat akurasi.
# prediksi testing
prediksi = predict(fit, newdata = data.test, type = "class")
# Confusion matrix
table(prediksi, data.test$nativeSpeaker)
Selanjutnya memprediksi data testing untuk melihat akurasi.
# prediksi testing
prediksi = predict(fit, newdata = data.test, type = "class")
# Confusion matrix
bedasarakan hasil diatas nilai akurasi dapat dilihat dari nilai Accurcy didapatkan akurasi sebesar 0,875 (87,5%). Sedangkan untuk melihat kesalahan prediksi dapat melihat nilai Kappa.
Langkah 6: Variabel importantce
Variabel importantce adalah untuk membantu menentukan variabel mana yang paling penting. Variabel paling penting itu kemudian diletakkan di atas pohon kita.
fit$variable.importance
barplot(fit$variable.importance)
dari output diatas diketahui variabel paling penting yaitu score.
Akhirnya Klasifikasi menggunakan Decision Tree sudah terbentuk.
THX ❤