Machine Learning: Random Forest Regression

Machine Learning: Random Forest Regression

Bahasa R

# Mengimpor dataset
dataset = read.csv('Posisi_gaji.csv')
dataset = dataset[2:3]

# Membuat model random forest regression
install.packages('randomForest')
library(randomForest)
set.seed(1234)
regressor = randomForest(x = dataset[1],
                         y = dataset$Gaji,
                         ntree = 500)

# Memprediksi hasil model regresi random forest
y_pred = predict(regressor, data.frame(Level = 6.5))

# Visualisasi hasil random forest regression
# 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 (Random Forest Regression)') +
  xlab('Level') +
  ylab('Gaji')

Penjelasan:

  • Line 2 mengimpor datasetnya
  • Line 3 melakukan slicing untuk variabel X dan y. Kita hanya butuh kolom Level dan Gaji.
  • Line 6 menginstall package randomForest. Cukup dieksekusi maka ia akan menginstall package ini secara otomatis.
  • Line 7 menjalankan package randomForest yang baru saja diinstall di line 6.
  • Line 8 menentukan random number generator yaitu 1234. Angka ini bebas. Tujuannya adalah jika ingin mereplikasi hasilnya, cukup samakan angka seed nya.
  • Line 9 membuat model regressor sebagai wadah dari random forest regression. Tips: Untuk bisa melihat parameter apa saja yang diperlukan, cukup arahkan kurson pada randomForest kemudian ketik F1 pada keyboard. Maka akan tampak tampilan sebagai berikut di R:
Parameter random forest di R
  • Line 14 memprediksi variabel dependen y dengan nilai X=6.5 melalui model yang sudah dibuat di line 9. Hasil y_pred adalah 160.908 dollar per tahun. Masih baik, jika dibandingkan decision tree sebelumnya yaitu 250.000 dollar per tahun.
  • Line 17 menginstall package ggplot2. Jika ingin menginstallnya cukup hilangkan tanda pagar (#). Jika sudah terinstall, tidak perlu melakukan apa-apa.
  • Line 18 menjalankan package ggplot2.
  • Line 19-27 adalah perintah untuk visualisasi hasil modelnya. Jika dieksekusi maka tampilannya tampak sebagai berikut:
Hasil random forest regression di R

Bisa dilihat bahwa anak tangga random forest regression lebih banyak jika dibandingkan dengan hasil dari 1 decision tree pada pembahasan sebelumnya. Untuk ilustrasi perbandingan, berikut grafik dari model 1 decision tree sebelumnya:

Hasil model regresi decision tree pada contoh sebelumnya.

Jelas bahwa random forest regression lebih baik daripada decision tree regression karena memang random forest adalah hasil dari beberapa decision tree. Selain itu hasil prediksinya juga jauh lebih akurat, yaitu 160.908 dollar/tahun, dibandingkan dengan 1 decision tree yaitu 250.000 dollar/tahun.

Mengapa prediksi angkanya lebih akurat? Karena di dataset nilai gaji untuk level 6 adalah 150rb dan level 7 adalah 200rb, maka nilai median nya (untuk posisi 6.5) adalah 175rb.

Perlu diperhatikan bahwa di R bisa saja y_pred yang Anda dapatkan tidak sama dengan yang ada di pembahasan ini, walaupun menggunakan angka seed yang sama. Hal ini dikarenakan R selalu mengenerate bilangan random setiap sebuah script dieksekusi. Walau demikian, hasilnya tidak akan jauh dari yang ada di pembahasan ini.

Barangkali pembaca ada yang membandingkan, mengapa hasil antara Python dan R berbeda? Bisa saja berbeda, dikarenakan dua program ini memiliki parameter berbeda, dan kita juga menggunakan random number generator yang berbeda untuk dua bahasa ini. Di pembahasan R kita menggunakan jumlah pohon sebanyak 500, sementara di Python hanya 10 saja. Walau demikian, setidaknya kesimpulan yang didapat dari dua bahasa ini sama, yaitu hasil prediksi random forest lebih baik daripada decision tree.

Dengan demikian, bisa kita simpulkan bahwa untuk bisa mendapatkan hasil prediksi yang baik, kita bisa menggunakan random forest regression.

Semoga pembaca mendapatkan manfaat dari pembahasan teknik random forest regression kali ini, dan yang tidak kalah penting, semoga bisa mengaplikasikannya untuk permasalahan nyata yang dihadapi.

Pantau terus web saya, karena saya akan terus membahas teknik-teknik AI lain yang tidak kalah seru.

Terima kasih!

Bagikan artikel ini:

Pages: 1 2 3

Subscribe
Notify of
guest
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Muhammad Fikri Assegaf
Muhammad Fikri Assegaf
1 month ago

Terimkasih pak ilmunya, Semoga berkah dunia akhirat. aamiin