Gradient boosted trees: pemodelan
Gradient boosting adalah teknik untuk meningkatkan kinerja model lain. Gagasannya adalah Anda menjalankan model yang lemah tetapi mudah dihitung terlebih dahulu. Lalu Anda mengganti nilai respons dengan residual dari model tersebut, dan menyesuaikan model lain. Dengan "menambahkan" model prediksi respons awal dan model prediksi residual yang baru, Anda memperoleh model yang lebih akurat. Proses ini dapat diulangi berkali-kali: jalankan model baru untuk memprediksi residual dari model sebelumnya, lalu tambahkan hasilnya. Pada setiap iterasi, model menjadi semakin kuat.
Sebagai contoh yang lebih konkret, sparklyr menggunakan gradient boosted trees, yaitu gradient boosting dengan pohon keputusan sebagai model yang lemah namun mudah dihitung. Teknik ini dapat digunakan untuk masalah klasifikasi (ketika variabel respons bersifat kategorikal) maupun regresi (ketika variabel respons bersifat kontinu). Dalam kasus regresi, seperti yang akan Anda gunakan di sini, ukuran seberapa buruk suatu titik terpasang adalah residual.
Pohon keputusan dibahas lebih mendalam dalam kursus Supervised Learning in R: Classification, dan Supervised Learning in R: Regression. Kursus kedua juga membahas gradient boosting.
Untuk menjalankan model gradient boosted trees di sparklyr, panggil ml_gradient_boosted_trees(). Penggunaan fungsi ini telah dibahas pada latihan pertama di bab ini.
Latihan ini merupakan bagian dari kursus
Pengantar Spark dengan sparklyr di R
Instruksi latihan
Sambungan Spark telah dibuat untuk Anda sebagai spark_conn. Sebuah tibble yang terhubung dengan gabungan metadata trek/timbre yang sudah difilter dan disimpan di Spark telah didefinisikan sebelumnya sebagai track_data_to_model_tbl.
- Dapatkan kolom yang mengandung string
"timbre"untuk digunakan sebagai fitur.- Gunakan
colnames()untuk mengambil nama kolom daritrack_data_to_model_tbl. Catatan:names()tidak akan memberikan hasil yang Anda inginkan. - Gunakan
str_subset()untuk memfilter kolom. - Argumen
patternuntuk fungsi tersebut harusfixed("timbre"). - Simpan hasilnya ke
feature_colnames.
- Gunakan
- Buat
formulauntuk model menggunakanreformulate().- Argumen
termlabels(masukan formula) harusfeature_colnames. - Argumen
response(keluaran formula) harus"year". - Simpan hasilnya ke
year_formula. - Menggunakan
reformulate()dengan cara ini akan menggabungkan semua variabel dalamfeature_colnamesdengan tanda+untuk membentuk sisi kananformula. Ini menghasilkan formulayear ~ timbre1 + timbre2 + ... + timbre12, yang mendefinisikan hubungan antarvariabel yang akan dimasukkan ke dalam model.
- Argumen
- Jalankan model gradient boosting.
- Panggil
ml_gradient_boosted_trees()denganyear_formulayang Anda buat sebagai satu-satunya argumen. - Simpan hasilnya ke
gradient_boosted_trees_model.
- Panggil
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# track_data_to_model_tbl has been pre-defined
track_data_to_model_tbl
feature_colnames <- track_data_to_model_tbl %>%
# Get the column names
___ %>%
# Limit to the timbre columns
___(___(___))
feature_colnames
# Create the formula for the model
year_formula <- ___
gradient_boosted_trees_model <- track_data_to_model_tbl %>%
# Run the gradient boosted trees model
___