Artificial Intelligence For Learning The Basics
Plot by Kirill Eremenko & Hadelin de Ponteves on Udemy
Decision Tree Regression adalah teknik regresi yang menggunakan decision tree untuk memodelkan hubungan linear maupun non-linear antara variabel independen dengan variabel dependen untuk memprediksi data baru dari variabel continue (berkelanjutan).
Cara Decision Tree Regression memprediksi data baru adalah dengan cara membagi data variabel independen dengan variabel dependen menjadi beberapa bagian (subset) berdasarkan kemiripan datanya (homogen).
Decision Tree Regression dapat membuat model Machine Learning yang lebih akurat karena memakai teknik decision tree. Algoritma decision tree ini dibedakan berdasarkan interval dari suatu angka, interval ini nantinya akan membagi data menjadi beberapa subset yang disebut sebagai leaf (daun).
Proses Terbentuknya Decision Tree Dalam Decision Tree Regression
1. Pemilihan Features
Langkah pertama dalam membuat decision tree yaitu dengan memilih features (variabel independen) yang penting atau informatif dengan variabel dependennya untuk memisahkan data kedalam suatu subset.
Pemisahan subset ini biasanya dilakukan dengan cara menggunakan Mean Squared Error (MSE) atau bisa dilakukan dengan metrik pemisahan lainnya sesuai denggan algoritma yang digunakan.
2. Pemisahan Node
Setelah memilih features, selanjutnya algoritma Decision Tree Regression akan memilih threshold atau node yang optimal untuk memisahkan data ke dalam subset. Subset ini nantinya akan membantu Decision Tree meminimalkan kesalahan prediksi dalam modelnya.
3. Pemisahan Rekursif
Pemisahan rekursif ini merupakan pengulangan dari langkah pemisahan node dengan mempertimbangkan kriteria yang dibutuhkan untuk memisahkan node ke dalam subset sampai pembentukan subset berhenti dan tidak terbentuk lagi subset yang baru.
4. Mengatur Pemberhentian Subset
Memberhentikan pemisahan subset dilakukan dengan cara mengatur kriteria berhenti seperti jumlah sampel minimum di setiap leaf, kedalaman maksimum pohon dan kriteria – kriteria lainnya yang mendukung pemberhentian subset.
Penting untuk melakukan pemberhentian subset supaya decision tree tidak terlalu dalam dan menghindari terjadinya overfitting. Ketika overfitting, model Decision Tree Regression akan kurang mampu untuk memprediksi data baru dengan akurat.
5. Pruning
Pruning adalah proses pemangkasan leaf (daun) dari subset yang tidak memiliki dampak signifikan terhadap performa model Decision Tree Regression. Pruning dilakukan untuk menghindari overfitting yang bisa terjadi pada model Decision Tree Regression.
6. Prediksi
Setelah semua langkah – langkah diatas dilakukan, decision tree mendapatkan beberapa subset yang optimal dan kemudian setiap subset akan mendapatkan nilainya masing – masing dengan cara menghitung nilai rata – rata dari setiap subset yang telah dibentuk.
Setelah nilai dari setiap subset ditentukan, kemudian algoritma akan mencari nilai subset yang sesuai dengan data baru yang akan diprediksi. Algoritma ini akan mencari nilai yang sesuai dengan data baru yang dimasukkan untuk diprediksi dimulai dari akar sampai daun (leaf) dari decision tree.
7. Evaluasi Model
Evaluasi model sangat diperlukan untuk membuat model machine learning yang akurat, sesuai dan dapat dipercaya. Evaluasi model ini dapat dilakukan dengan cara melatih kembali data baru kedalam model Decision Tree Regression untuk tetap membuat model yang selalu update dan dapat dipercaya.
Pastikan model Decision Tree Regression ini melatih data yang sesuai dengan kriteria dan bentuk data dari model Decision Tree Regression. Lakukan tuning hyperparameter untuk membuat model Decision Tree Regression menjadi model yang lebih akurat dalam memprediksi data baru.
Rumus – Rumus Dalam Decision Tree Regression
1. Mean Squared Error (MSE)
Mean Squared Error adalah salah satu metrik yang digunakan untuk mengukur kesalahan prediksi, biasanya digunakan untuk meminimalisir kesalahan prediksi dalam regresi. Seperti mengukur seberapa dekat model prediksi dengan data aktualnya (asli). Berikut adalah rumus dari Mean Squared Error (MSE) :
MSE = 1/2 . SUM(X1 – X2)^2
Keterangan:
X1 = nilai asli/aktual
X2 = nilai prediksi
2. Variance Reduction
Variance Reduction merupakan penurunan atau pemangkasan variansi untuk membuat variansi dari model Machine Learning memiliki variansi yang optimal sehingga model bisa mengetahui hubungan yang penting antara variabel independen dengan variabel dependennya.
Dalam Decision Tree Regression, variance reduction dilakukan untuk mendapatkan features (variabel independen) yang penting atau informatif dalam memisahkan data pada setiap node dan mendapatkan subset yang diperlukan.
Semakin besar penurunan variansi sampai mendapatkan variansi yang optimal, maka semakin baik pula features (variabel independen) dalam model Decision Tree Regression dalam memisahkan data untuk mengetahui hubungan yang kuat antara variabel independen dengan variabel dependen.
Dari penurunan variansi ini, kita juga bisa mendapatkan features yang penting atau informatif bagi model Decision Tree Regression untuk memprediksi data baru. Dengan penurunan variansi ini, kita bisa membuat model Decision Tree Regression yang lebih akurat. Berikut merupakan rumus dari variance reduction:
Variance Reduction = Var(Y) − Var(Y|X)
Keterangan:
Var(Y) = variansi dari variabel dependen sebelum pemisahan
Var(Y|X) = variansi dari variabel dependen setelah pemisahan berdasarkan feature X (variabel independen)
3. Coefficient of Determination(R^2)
Coefficient of Determination atau bisa kita sebut juga sebagai R Squared adalah metrik yang digunakan untuk mengevaluasi seberapa cocok model Machine Learning dalam regresi dengan data aslinya. Dalam kasus ini kita ingin mencari R squared dari model Decision Tree Regression.
Nilai R squared yang memiliki nilai mendekati angka 1 merupakan nilai R squared yang baik dan itu menandakan kecocokan yang baik antara model dengan data observasionalnya.
Sebaliknya, Nilai R squared yang mendekati angka 0 merupakan nilai R squared yang buruk dan itu menandakan model yang tidak cocok dengan data observasionalnya. Berikut adalah rumus dari R squared:
SSres = SUM(X1 – X2)^2
SStot = SUM(X1 – Xavg)^2
R^2 = 1 – SSres / SStot
Adj R^2 = 1 – (1 – R^2) . n-1/n-k-1
Keterangan :
SSres = residual sum of squares (jumlah residual kuadrat)
SStot = total sum of squares (jumlah total kuadrat)
Xavg = nilai rata-rata dataset aktual
n = jumlah variabel independen
k = ukuran sampel
Note:
– SSres dan SStot adalah Ordinary Least Square Method
– Adjusted R squared (Adj R^2) dipakai untuk menangani variabel independen tambahan. Ini dilakukan supaya penambahan variabel independen memiliki pengaruh terhadap perubahan nilai R squared.
Dengan adanya penambahan variabel independen, SSres bisa bertambah kecil atau nilainya tetap sama sementara SStot tidak berubah sama sekali. Adanya penambahan variabel independen bisa membuat SSres menjadi 0 dan itu akan memperburuk nilai R squared.
Maka dari itu kita membutuhkan Adj R^2 untuk menyesuaikan rumus R^2 biasa supaya R squared bisa mendapatkan nilai yang seharusnya lebih tinggi ketika variabel independen ditrambahkan.
Kode Python Untuk Membangun Model Decision Tree Regression
– Impor Library
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
– Impor Dataset
dataset = pd.read_csv(‘Position_Salaries.csv’)
X = dataset.iloc[:, 1:-1].values
y = dataset.iloc[:, -1].values
– Training Semua Data Kedalam Model Decision Tree Regression
from sklearn.tree import DecisionTreeRegressor
regressor = DecisionTreeRegressor(random_state = 0)
regressor.fit(X, y)
– Visualisasi Plot Decision Tree Regression
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(‘Truth or Bluff (Decision Tree Regression)’)
plt.xlabel(‘Position level’)
plt.ylabel(‘Salary’)
plt.show()
Plot by Kirill Eremenko & Hadelin de Ponteves on Udemy
Dari visualisasi plot Decision Tree Regression diatas, maka bisa didapat decision tree seperti dibawah ini :
Dari decision tree diatas, apabila data baru masuk kedalam salah satu kriteria dari X diatas, maka nilainya akan dimasukkan kedalam kotak yang menandakan “Yes”.
Misalnya, apabila data baru yang dimasukkan adalah level 4,8 maka nilai prediksi dari data baru tersebut akan dimasukkan kedalam level 5 yang dimana nilainya akan menjadi 5. Dengan begitu nilai variabel dependennya akan berada pada level 5.
– Memprediksi Data Baru
regressor.predict([[6.5]])
Note:
Jika Anda compile model prediksi diatas maka akan didapatkan nilai 150000 yang dimana itu adalah nilai aktual dari level 6. Disini kita ingin memprediksi nilai dari level 6.5 tetapi level ini malah memasukkan nilai asli dari level 6 yaitu 150000.
Nilai dari level yang ingin kita prediksi yaitu 6.5 sama dengan nilai dari level 6, ini menandakan model prediksi yang kurang akurat. Setidaknya nilai prediksi dari level 6.5 lebih besar daripada nilai aktual dari level 6.
Setelah Anda mengetahui Poin penting yang diperlukan seperti mengetahui proses terbentuknya Decision Tree Regression, rumus yang dibutuhkan dan kode untuk membuat model Decision Tree Regression, Anda bisa membuat model Decision Tree Regression yang lebih akurat, sesuai dan dapat dipercaya.
Bagi anda yang ingin memberikan komentar pada website ini, silahkan tulis komentar Anda dengan mengisi nama dan alamat email Anda. Anda dapat membaca blog kami sebelumnya mengenai 8 tips trading saham yang bisa memberikan Anda keuntungan yang besar dan blog kami selanjutnya mengenai langkah jitu jual beli saham.
[…] Anda dengan mengisi nama dan alamat email Anda. Anda dapat membaca blog kami sebelumnya mengenai poin penting dalam membangun model Decision Tree Regression. Nantikan konten blog kami selanjutnya yang ga kalah […]
[…] Bagi anda yang ingin memberikan komentar pada website ini, silahkan tulis komentar Anda dengan mengisi nama dan alamat email Anda. Anda dapat membaca blog kami sebelumnya mengenai Support Vector Regression dan blog kami selanjutnya mengenai poin sukses dalam membangun model Decision Tree Regression. […]