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.
Gambar 29. Kerugian vs. jumlah 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.