Tidak seperti hutan acak, pohon dengan peningkatan gradien dapat mengalami overfit. Oleh karena itu, untuk jaringan neural, Anda dapat menerapkan regulerisasi dan penghentian awal menggunakan set data validasi.
Misalnya, gambar berikut menunjukkan kurva akurasi dan kerugian untuk set pelatihan dan validasi saat melatih model GBT. Perhatikan seberapa berbeda kurva tersebut, yang menunjukkan tingkat overfit yang tinggi.
Gambar 29. Kalah vs. jumlah pohon keputusan.
Gambar 30. Akurasi vs. jumlah pohon keputusan.
Parameter regulerisasi umum untuk pohon yang diperkuat gradien mencakup:
- Kedalaman maksimum hierarki.
- Tingkat penyusutan.
- Rasio atribut yang diuji di setiap node.
- Koefisien L1 dan L2 pada kerugian.
Perhatikan bahwa pohon keputusan biasanya tumbuh jauh lebih dangkal daripada model hutan acak. Secara default, pohon pohon yang ditingkatkan gradien di TF-DF tumbuh hingga kedalaman 6. Karena pohonnya 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, melatih kereta api gradien yang ditingkatkan di dalam loop validasi silang adalah hal yang umum, atau untuk menonaktifkan penghentian awal saat model diketahui tidak akan melakukan overfit.
Contoh penggunaan
Di bab sebelumnya, kita telah melatih hutan acak pada set data kecil. Dalam contoh ini, kita cukup mengganti model hutan acak dengan model pohon bersudut gradien:
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 mendorong gradien memiliki beberapa pro dan kontra.
Kelebihan
- Seperti pohon keputusan, pohon ini secara native mendukung fitur numerik dan kategoris, dan sering kali tidak memerlukan pra-pemrosesan fitur.
- Pohon yang ditingkatkan gradien memiliki hyperparameter default yang sering memberikan hasil yang bagus. Meskipun demikian, menyesuaikan hyperparameter tersebut dapat meningkatkan model secara signifikan.
- Model pohon dengan peningkatan gradien umumnya kecil (dalam jumlah node dan dalam memori) dan cepat dijalankan (sering kali hanya berupa satu atau beberapa μs / contoh).
Kekurangan
- Pohon keputusan harus dilatih secara berurutan, yang dapat memperlambat pelatihan secara signifikan. Namun, pelambatan pelatihan agak diimbangi dengan pohon keputusan yang lebih kecil.
- Seperti hutan acak, pohon dengan peningkatan gradien tidak dapat mempelajari dan menggunakan kembali representasi internal. Setiap pohon keputusan (dan setiap cabang setiap pohon keputusan) harus mempelajari kembali pola set data. Dalam beberapa set data, terutama set data dengan data tidak terstruktur (misalnya, gambar, teks), hal ini menyebabkan pohon yang diperkuat gradien menampilkan hasil yang lebih buruk dibandingkan metode lainnya.