Mulai sekarangMulai gratis

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

Lihat Kursus

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 dari track_data_to_model_tbl. Catatan: names() tidak akan memberikan hasil yang Anda inginkan.
    • Gunakan str_subset() untuk memfilter kolom.
    • Argumen pattern untuk fungsi tersebut harus fixed("timbre").
    • Simpan hasilnya ke feature_colnames.
  • Buat formula untuk model menggunakan reformulate().
    • Argumen termlabels (masukan formula) harus feature_colnames.
    • Argumen response (keluaran formula) harus "year".
    • Simpan hasilnya ke year_formula.
    • Menggunakan reformulate() dengan cara ini akan menggabungkan semua variabel dalam feature_colnames dengan tanda + untuk membentuk sisi kanan formula. Ini menghasilkan formula year ~ timbre1 + timbre2 + ... + timbre12, yang mendefinisikan hubungan antarvariabel yang akan dimasukkan ke dalam model.
  • Jalankan model gradient boosting.
    • Panggil ml_gradient_boosted_trees() dengan year_formula yang Anda buat sebagai satu-satunya argumen.
    • Simpan hasilnya ke gradient_boosted_trees_model.

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
  ___
Edit dan Jalankan Kode