Decision Tree Menggunakan RStudio terhadap data Curah Hujan di Australia part 1
Pada kesempatan kali ini saya akan merapihkan data besar dan menganilisis data dengan metode decision tree RStudio.
Dengan menggunakan data hujan di Australia yang didaptkan dari web kagle seperti berikut https://www.kaggle.com/jsphyg/weather-dataset-rattle-package. Data set ini terdapat 23 vaeiabel dan 145.462 baris dimana data tersebut diambil dari tanggal 24 Mei 20017 sampai 25 Juni 2017 . Data ini merupakan data memprediksi hujan pada hari berikutnya dengan melatih model klasifikasi pada variabel target RainTomorrow. Adapaun data set tersebut seperti berikut,
Langkah pertama masukan data hujan tersebut ke dalam R dengan perintah read.scv seperti berikut,
data_hujan = read.csv(“D://Ada Kuliah//BIMMEL//UAS//3//weatherAUS.csv”)
Berikutnya dapat ditampilkan data set tersebut dengan perintah View,
View(data_hujan)
Maka didapatkan data set seperti berikut,
Lalu kita melihat terlebih dahulu struktur data variabel-variabel data set hujan tesebut.
str(data_hujan)
Maka didapatkan output seperti berikut,
Kemudian memperbaiki data missing value dengan replace menggunakan perhitungan mean pada variabel numerik, dengan syntax berikut,
for(i in 1:ncol(rapih_datahujan)){
rapih_datahujan[is.na(rapih_datahujan[,i]), i] <- mean(rapih_datahujan[,i], na.rm = TRUE)
}View(rapih_datahujan)
Maka didapatkan tampilan data set berikut,
Dapat kita lihat pada variabel Rainfall dan Evaporation telah terganti isinya dari NA menjadi rata-rata dari variabel tersebut.
Selanjutnya memperbaiki data missing value dengan menghapus NA pada variabel kategorik.
rapih_datahujan_2 = rapih_datahujan
rapih_datahujan_2 = na.omit(rapih_datahujan)
View(rapih_datahujan_2)
Maka didapatkan data set seperti berikut,
Dapat dilihat jumlah baris data tersebut berkurang karena data pada variabel kategorik seperti variabel WindGustSpeed dimana isinya berupa NA.
Kemudian kita merubah tipe variabel character menjadi tipe factor kerena data bertipe factor tidak dapat diproses lebih jauh oleh program R, kita instal aktifkan terlebih dahulu packages dplr seperti berikut,
library(dplyr)
Lalu tulis syntax berikut,
rapih_datahujan_3 <- rapih_datahujan_2 %>%
mutate(across(where(is.character), as.factor))
Maka kita dapat mengecek struktur data kembali seperti berikut,
str(rapih_datahujan_3)
Maka didapatkan,
Dapat kita lihat pada variabel date dan location yang awalnya tipe character sudah berubah menjadi factor.
Maka selanjutnya kita dapat memulai analisis menggunakan metode decision tree.
Pertama kita merandom data dan membagi data set tersebut untuk analisisis menjadi data training (80%) dan data testing (20%) seperti berikut,
set.seed(1234)
random_data <- sample(2, nrow(rapih_datahujan_3), replace=TRUE, prob=
c(0.8, 0.2))
Kemudian lakukan pembagian untuk training data seperti berikut,
train_data <- rapih_datahujan_3[random_data==1,]
Laku lakukan pembagian untuk tetsting data seperti berikut,
test_data <- rapih_datahujan_3[random_data==2,]
Selanjutnya kita lakukan proses analisis discission tree, sebelum itu kita dapat menginstal dan mengaktifkan packages party seperti berikut,
library(party)
Lalu tulis syntax berikut,
hasil_tree <- ctree(RainTomorrow~MinTemp+MaxTemp+Rainfall+Evaporation+Sunshine+
WindGustDir+WindGustSpeed+WindDir9am+WindDir3pm+WindSpeed9am+
WindSpeed3pm+Humidity9am+Humidity3pm+Pressure9am+Pressure3pm+
Cloud9am+Cloud3pm+Temp9am+Temp3pm+RainToday,
data=train_data)
Berikutnya, kita membuat plot hasil dari descission tree tersebut
plot(hasil_tree)
Maka didapatkan output seperi berikut,
Dilihat pohon keputusan tetrhadap data set curah hujan, terlihat cabang-cabang tersebut saling bertumpukan karena variabel yang kita gunakan lumayan banyak sehingga hasil keputusan pun bercabang banyak.
Kemudian kita lihat beasarnya akurasi analsisis tersebut untuk data train dengan syntax berikut,
pred_train=table(predict(hasil_tree), train_data$RainTomorrow)
pred_train
Maka didapatkan,
Selanjutnya kita gunakan jumlah data yang berhasil dan tidak berhasil diprediksi tersebut untuk menghitung akurasi. Menghitung akuras dengan aplikasi microsoft excel dimana rumusnya jumlah data yang berhasil dipresiksi (73206 dan 11397) dibagi dengan jumlah data berhasil dan tidak berhasil diprediksi. Maka didapatkan hasil seperti berikut,
Diidapatkan akurasinya sebesar 85% dimana menujukan akurasi yang sangat baik.
Lalu kita lihat beasarnya akurasi analsisis tersebut untuk data testing dengan syntax berikut,
pred_test=table(predict(hasil_tree, newdata=test_data), test_data$RainTomorrow)
pred_test
Maka didapatkan,
Selanjutnya kita gunakan jumlah data yang berhasil dan tidak berhasil diprediksi tersebut untuk menghitung akurasi. Menghitung akuras dengan aplikasi microsoft excel dimana rumusnya jumlah data yang berhasil dipresiksi (18075 dan 2727) dibagi dengan jumlah data berhasil dan tidak berhasil diprediksi. Maka didapatkan hasil seperti berikut,
Diidapatkan akurasinya sebesar 85% dimana menujukan akurasi yang sangat baik.
Referensi :
https://medium.com/@986110101/decision-tree-2-4dd56891ad16