Overfitting, regularisasi, dan penghentian awal

Tidak seperti random forest, gradient boosted trees dapat mengalami overfitting. Oleh karena itu, seperti halnya jaringan saraf, Anda dapat menerapkan regularisasi dan penghentian awal menggunakan set data validasi.

Misalnya, gambar berikut menunjukkan kurva kerugian dan akurasi untuk set pelatihan dan validasi saat melatih model GBT. Perhatikan perbedaan kurva yang menunjukkan tingkat overfitting yang tinggi.

Plot loss pelatihan dan loss validasi dibandingkan dengan jumlah
  pohon keputusan. Kerugian pelatihan menurun secara bertahap seiring meningkatnya jumlah
  pohon keputusan. Namun, kerugian validasi hanya menurun
  hingga sekitar 40 pohon keputusan. Dengan lebih dari 40 hierarki keputusan,
  kerugian validasi justru meningkat. Dengan 400 pohon keputusan, kesenjangan antara loss pelatihan dan loss validasi
  sangat besar.

Gambar 29. Kerugian vs. jumlah pohon keputusan.

 

Plot akurasi pelatihan dan akurasi validasi dibandingkan dengan jumlah
  pohon keputusan. Akurasi pelatihan meningkat secara bertahap seiring dengan meningkatnya jumlah
  pohon keputusan, mencapai puncak hampir 1,0 pada 400
  pohon keputusan. Akurasi validasi meningkat menjadi sekitar 0,86 pada 40
  pohon keputusan, lalu secara bertahap turun menjadi sekitar 0,83 pada 400 pohon
  keputusan.

Gambar 30. Akurasi vs. jumlah pohon keputusan.

 

Parameter regularisasi umum untuk gradient boosted trees meliputi:

  • Kedalaman maksimum hierarki.
  • Rasio penyusutan.
  • Rasio atribut yang diuji di setiap node.
  • Koefisien L1 dan L2 pada kerugian.

Perhatikan bahwa pohon keputusan umumnya tumbuh jauh lebih dangkal daripada model random forest. Secara default, pohon boosted gradien di TF-DF tumbuh hingga kedalaman 6. Karena hierarkinya dangkal, jumlah minimum contoh per daun memiliki sedikit dampak dan umumnya tidak disesuaikan.

Kebutuhan akan set data validasi menjadi masalah jika jumlah contoh pelatihan kecil. Oleh karena itu, biasanya Anda melatih gradient boosted trees di dalam loop validasi silang, atau menonaktifkan penghentian awal saat model diketahui tidak mengalami overfitting.

Contoh penggunaan

Di bab sebelumnya, kita telah melatih random forest pada set data kecil. Dalam contoh ini, kita hanya akan mengganti model random forest dengan model gradient boosted trees:

model = tfdf.keras.GradientBoostedTreesModel()

# Part of the training dataset will be used as validation (and removed
# from training).
model.fit(tf_train_dataset)

# The user provides the validation dataset.
model.fit(tf_train_dataset, validation_data=tf_valid_dataset)

# Disable early stopping and the validation dataset. All the examples are
# used for training.
model.fit(
   tf_train_dataset,
   validation_ratio=0.0,
   early_stopping="NONE")
# Note: When "validation_ratio=0", early stopping is automatically disabled,
# so early_stopping="NONE" is redundant here.

Penggunaan dan batasan

Pohon yang diperkuat gradien memiliki beberapa kelebihan dan kekurangan.

Kelebihan

  • Seperti pohon keputusan, model ini secara native mendukung fitur numerik dan kategoris, serta sering kali tidak memerlukan pra-pemrosesan fitur.
  • Gradient boosted trees memiliki hyperparameter default yang sering memberikan hasil yang bagus. Namun, menyesuaikan hyperparameter tersebut dapat meningkatkan kualitas model secara signifikan.
  • Model pohon yang didorong gradien umumnya kecil (dalam jumlah node dan memori) serta cepat dijalankan (sering kali hanya satu atau beberapa µs / contoh).

Kekurangan

  • Pohon keputusan harus dilatih secara berurutan, yang dapat memperlambat pelatihan secara signifikan. Namun, perlambatan pelatihan agak diimbangi dengan pohon keputusan yang lebih kecil.
  • Seperti hutan acak, gradient boosted trees tidak dapat mempelajari dan menggunakan kembali representasi internal. Setiap hierarki keputusan (dan setiap cabang dari setiap hierarki keputusan) harus mempelajari ulang pola set data. Di beberapa set data, terutama set data dengan data tidak terstruktur (misalnya, gambar, teks), hal ini menyebabkan hierarki boosted gradient menampilkan hasil yang lebih buruk daripada metode lainnya.