Overfitting, regularisasi, dan penghentian awal

Tidak seperti hutan acak, pohon yang ditingkatkan gradien dapat kelebihan beban. Oleh karena itu, seperti untuk jaringan neural, Anda dapat menerapkan regularisasi dan penghentian awal validasi.

Misalnya, gambar berikut menunjukkan kurva kerugian dan akurasi untuk pelatihan dan set validasi saat melatih model GBT. Perhatikan bagaimana kurva divergen adalah, yang menunjukkan tingkat {i>overfitting<i} yang tinggi.

Plot kerugian pelatihan dan kerugian validasi versus jumlah
  pohon keputusan (decision tree). Kerugian pelatihan secara bertahap menurun seiring jumlahnya
  pohon keputusan meningkat. Namun, kerugian validasi hanya menurun
  hingga sekitar 40 pohon keputusan. Dengan lebih dari 40 pohon keputusan,
  kerugian validasi sebenarnya meningkat. Dengan 400 pohon keputusan,
  kesenjangan antara kerugian pelatihan dan kerugian validasi adalah
  sangatlah besar.

Gambar 29. Kerugian vs jumlah pohon keputusan.

 

Banyaknya akurasi pelatihan dan akurasi validasi versus jumlah
  pohon keputusan (decision tree). Akurasi pelatihan meningkat
secara bertahap seiring jumlahnya
  pohon keputusan meningkat, mencapai puncak hampir 1,0 pada 400
  pohon keputusan (decision tree). Akurasi validasi meningkat menjadi sekitar 0,86 pada 40
  pohon keputusan, kemudian secara bertahap turun menjadi sekitar 0,83 pada 400
  pohon.

Gambar 30. Akurasi vs. jumlah pohon keputusan.

 

Parameter regularisasi umum untuk pohon yang ditingkatkan gradien meliputi:

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

Perhatikan bahwa pohon keputusan umumnya tumbuh jauh lebih dangkal daripada hutan acak jaringan. Secara default, pohon yang ditingkatkan gradien pada TF-DF ditanam ke kedalaman 6. Karena pohon-pohon itu dangkal, jumlah minimum contoh per daun memiliki sedikit dampak dan umumnya tidak disesuaikan.

Kebutuhan akan {i>dataset<i} validasi menjadi masalah ketika jumlah pelatihan contohnya kecil. Oleh karena itu, biasa saja melatih pohon yang ditingkatkan gradien di dalam loop validasi silang, atau menonaktifkan penghentian awal saat model diketahui untuk tidak terlalu pas.

Contoh penggunaan

Di bab sebelumnya, kita melatih {i>forest<i} acak pada {i>dataset<i} kecil. Di sini misalnya, kita akan mengganti model forest acak dengan peningkatan gradien model pohon:

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 didukung gradien memiliki beberapa kelebihan dan kekurangan.

Kelebihan

  • Seperti pohon keputusan (decision tree), pohon ini secara asli mendukung fitur dan biasanya tidak memerlukan pra-pemrosesan fitur.
  • Pohon yang didukung gradien memiliki hyperparameter default yang sering kali memberikan hasil hasil pengujian tersebut. Meskipun demikian, menyesuaikan hyperparameter tersebut dapat memperbaiki model.
  • Model pohon yang didukung gradien umumnya berukuran kecil (dalam jumlah simpul dan memori) dan cepat untuk 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 oleh pohon keputusan menjadi lebih kecil.
  • Seperti hutan acak, pohon yang ditingkatkan gradien tidak dapat mempelajari dan menggunakan kembali dan representasi. Setiap pohon keputusan (dan setiap cabang dari setiap pohon keputusan) harus mempelajari kembali pola set data. Dalam beberapa {i>dataset<i}, terutama {i>dataset<i} dengan data tidak terstruktur (misalnya, gambar, teks), ini menyebabkan gradien meningkat pohon untuk menunjukkan hasil yang lebih buruk daripada metode lain.