Machine Learning: Decision Tree Regression

Machine Learning: Decision Tree Regression

Sama dengan permasalahan regresi sebelumnya di bagian pembahasan regresi polinomial . Kali ini ingin menilai apakah calon pegawai kita jujur atau tidak saat memberikan informasi gajinya di perusahaan sebelumnya tempat ia bekerja.

Langsung saja kita bahas menggunakan bahasa Python dan R.

Untuk mengimpor datasetnya, silakan klik link ini .


Bahasa Python

 
# Mengimpor library
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# Mengimpor dataset
dataset = pd.read_csv('Posisi_gaji.csv')
X = dataset.iloc[:, 1:2].values
y = dataset.iloc[:, 2].values

# Membuat model regresi decision tree
from sklearn.tree import DecisionTreeRegressor
regressor = DecisionTreeRegressor(random_state = 0)
regressor.fit(X, y)

# Memprediksi hasil model
y_pred = regressor.predict([[6.5]])

# Visualisasi hasil regresi decision tree
X_grid = np.arange(min(X), max(X), 0.01)
X_grid = X_grid.reshape((len(X_grid), 1))
plt.scatter(X, y, color = 'red')
plt.plot(X_grid, regressor.predict(X_grid), color = 'blue')
plt.title('Sesuai atau tidak (Decision Tree Regression)')
plt.xlabel('Level Posisi')
plt.ylabel('Gaji')
plt.show()

Penjelasan:

  • Line 2-4 mengimpor library apa saja yang diperlukan.
  • Line 7 mengimpor dataset.
  • Line 8 mendefinisikan variabel independen X dengan melakukan slicing hanya pada kolom kedua (indeks python dimulai dari nol, dan indeks terakhir tidak dimasukkan). Kebetulan dalam contoh kasus unu variabel independennya hanya 1. Untuk variabel independen lebih dari 1 juga tidak masalah. Cukup definisikan X1, X2, dan seterusnya.
  • Line 9 mendefinisikan variabel dependen Y.
  • Line 12 mengimpor DecisionTreeRegressor dari library sklearn.tree.
  • Line 13 mendefinisikan objek regressor untuk model regresinya dengan random number generator adalah nol (sehingga nanti bisa diduplikasi dengan selalu mensetting random_state=0).
  • Line 14 membuat model regresi decision tree-nya.
  • Line 17 mendefinisikan objek y_pred untuk memprediksi hasil model regresinya. Kali ini kita coba memprediksinya untuk level pekerjaan 6.5. Setelah di run, kita bisa melihat y_pred nya dan hasilnya adalah 150.000 dollar/tahun. Prediksinya cukup baik (tidak meleset jauh jika bandingkan dengan dataset-nya). Bisa dibilang ia adalah calon pegawai yang jujur.
  • Line 20-27 adalah perintah untuk visualisasi hasil regresi decision tree. Hasilnya adalah sebagai berikut:

Grafik hasil regresi decision tree.

Bisa diperhatikan bahwa regresi decision tree adalah regresi yang bersifat non linear dan jelas grafiknya memang bukan garis lurus, melainkan seperti tangga yang berundak-undak.

Selain itu, regresi decision tree juga bersifat non-kontinu atau diskret, yang artinya satu titik di sumbu X bukan mewakili satu titik di sumbu Y. Melainkan, satu titik di sumbu Y diwakili oleh rentang interval di sumbu X. Mengapa demikian? Karena nilai di titik Y merupakaan hasil rataan antara beberapa titik sumbu X untuk masing-masing intervalnya.

Sehingga nilai X untuk rentang X>5 sampai X<7 adalah 15.000.

Bisa dipahami ya.

Untuk melanjutkan membaca, silakan klik tombol di bawah ini.

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 ?