Machine Learning: Decision Tree Regression

Machine Learning: Decision Tree Regression

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:

Parameter yang diperlukan untuk membuat model regression tree di R.

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:
Hasil model regresi decision tree.

Kali ini hasil visualisasinya berbeda antara R dan Python. Mengapa hal ini terjadi? Ada beberapa penjelasan logisnya:

  1. Parameter library decision tree antara python dan R berbeda.
  2. 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.

Bagikan artikel ini:

Pages: 1 2 3

Subscribe
Notify of
guest
4 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Rocky Gultom
Rocky Gultom
6 months ago

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

Rocky Gultom
Rocky Gultom
Reply to  MB Herlambang
6 months ago

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 ?