Bahasa R
# Mengimpor dataset dataset = read.csv('Posisi_gaji.csv') dataset = dataset[2:3] # Membuat model regresi decision tree install.packages('rpart') library(rpart) regressor = rpart(formula = Gaji ~ ., data = dataset, control = rpart.control(minsplit = 1)) # Memprediksi hasil model decision tree y_pred = predict(regressor, data.frame(Level = 6.5)) # Visualisasi hasil model decision tree # install.packages('ggplot2') library(ggplot2) x_grid = seq(min(dataset$Level), max(dataset$Level), 0.01) ggplot() + geom_point(aes(x = dataset$Level, y = dataset$Gaji), colour = 'red') + geom_line(aes(x = x_grid, y = predict(regressor, newdata = data.frame(Level = x_grid))), colour = 'blue') + ggtitle('Sesuai atau Tidak (Decision Tree Regression)') + xlab('Level') + ylab('Gaji')
Penjelasan:
- Line 2 mengimpor datasetnya.
- Line 3 melakukan slicing datasetnya. Kita hanya memerlukan kolom level (kolom ke-2) dan gaji saja (kolom ke-3).
- Line 6 menginstall package rpart. Package ini adalah library untuk membuat model decision tree di R.
- Line 7 mengimpor library rpart. Setelah diinstall di line 6, maka kita impor (dipakai) di sini.
- Line 8 membuat model regresinya dengan mendefinisikan objek regressor. Untuk bisa mengerti parameter apa saja yang diperlukan, cukup arahkan kursor pada rpart kemudian ketik di keyboard F1, maka akan muncul tampilan sebagai berikut:
Pada line 8 kita tambahkan parameter control = rpart.control(minsplit = 1).
- Line 13 adalah memprediksi model regresi decision tree nya untuk level 6.5. Jika kita run, maka hasilnya adalah 250.000 dollar/tahun. Mengapa berbeda dengan python? Dalam hal ini, sepertinya library decision tree antara R dan Python memiliki parameter yang berbeda, sehingga hasilnya juga berbeda. Bisa dibilang, regresi decision tree pada python sedikit lebih akurat.
- ine 16 menginstall library ggplot2 dengan menghilangkan tanda pagarnya.
- Line 17 mengimpor library ggplot2.
- Line 18-26 adalah perintah visualisasi model regresi decision tree nya. Jika dieksekusi maka hasilnya tampak sebagai berikut:
Kali ini hasil visualisasinya berbeda antara R dan Python. Mengapa hal ini terjadi? Ada beberapa penjelasan logisnya:
- Parameter library decision tree antara python dan R berbeda.
- Parameter estetika grafis antara python dan R berbeda.
Secara visual bisa dikatakan bahwa untuk penggunaan decision tree regression saya lebih menyukai python. Namun bukan berarti R kurang akurat dalam memprediksi variabel dependen dengan menggunakan decision tree. Bisa jadi untuk dataset (kasus lain) bisa saja R lebih akurat.
Demikian pembahasan regresi non linear dan non kontinu dengan menggunakan decision tree.
Semoga bermanfaat.
Halo Pak, jika melihat model DecisionTreeRegressor didalam source diatas, atribut mana yang menunjukan pengaturan jumlah keputusan(kelompok) yang akan digunakan? seperti konsep yang dijelaskan di slide pertama, Terima Kasih
Algoritma DecisionTreeRegressor di sklearn atau rpart di R secara otomatis melakukan fitting untuk regresi menggunakan decision tree.
Hasilnya bisa dilihat di grafik bahwa nilai y dihasilkan oleh rentang nilai X tertentu (dijelaskan juga di artikel).
Semoga menjawab.
Terima kasih Pak atas jawaban nya, berarti dengan model DecisionTreeRegressor secara otomatis sudah menentukan sendiri jumlah kelompok keputusan yang disesuaikan dengan jumlah dan bobot dari variabel independen nya ?
Iya betul
terima kasih…
Terimakasih sharing knowladge nya mas.. BTW ada lowongan kerja untuk AI gx mas ?