Overfitting dan pemangkasan

Dengan menggunakan algoritma yang dijelaskan di atas, kita dapat melatih pohon keputusan yang akan mengklasifikasikan contoh pelatihan dengan sempurna, dengan asumsi contoh tersebut dapat dipisahkan. Namun, jika set data berisi derau, hierarki ini akan disesuaikan dengan data dan menampilkan akurasi pengujian yang buruk.

Gambar berikut menunjukkan set data berisi noise dengan hubungan linear antara fitur x dan label y. Gambar ini juga menunjukkan pohon keputusan yang dilatih pada set data ini tanpa jenis regularisasi apa pun. Model ini memprediksi semua contoh pelatihan dengan benar (prediksi model cocok dengan contoh pelatihan). Namun, pada set data baru yang berisi pola linear yang sama dan instance derau yang berbeda, model akan berperforma buruk.

Kemiringan umum adalah +1, tetapi karena set data sangat berisik, setiap titik data terkadang jauh dari garis yang paling sesuai.

Gambar 12. Set data yang berisik.

 

Untuk membatasi overfitting pohon keputusan, terapkan salah satu atau kedua kriteria regularisasi berikut saat melatih pohon keputusan:

  • Tetapkan kedalaman maksimum: Mencegah pohon keputusan tumbuh melampaui kedalaman maksimum, seperti 10.
  • Tetapkan jumlah minimum contoh di daun: Daun yang memiliki contoh kurang dari jumlah tertentu tidak akan dipertimbangkan untuk pemisahan.

Gambar berikut mengilustrasikan efek dari perbedaan jumlah minimum contoh per daun. Model ini menangkap lebih sedikit noise.

Tiga plot, masing-masing menunjukkan efek dari nilai yang berbeda untuk jumlah minimum
contoh per daun. Nilai yang berbeda adalah 2, 5, dan
10.

Gambar 13. Jumlah minimum contoh yang berbeda per daun.

Anda juga dapat melakukan regularisasi setelah pelatihan dengan menghapus (memangkas) cabang tertentu secara selektif, yaitu dengan mengubah node non-daun tertentu menjadi daun. Solusi umum untuk memilih cabang yang akan dihapus adalah dengan menggunakan set data validasi. Artinya, jika menghapus cabang meningkatkan kualitas model pada set data validasi, cabang tersebut akan dihapus.

Gambar berikut mengilustrasikan ide ini. Di sini, kita menguji apakah akurasi validasi pohon keputusan akan meningkat jika node hijau non-daun diubah menjadi daun; yaitu, memotong node oranye.

Dua pohon keputusan. Satu pohon keputusan berisi 9 node, dan yang lainnya
telah dipangkas kembali menjadi hanya 6 node dengan mengubah salah satu kondisi menjadi
leaf.

Gambar 14. Memangkas kondisi dan turunannya hingga menjadi daun.

 

Gambar berikut mengilustrasikan efek penggunaan 20% set data sebagai validasi untuk memangkas pohon keputusan:

Plot yang menunjukkan model overfited tidak rapi terhadap model ideal garis lurus

Gambar 15. Menggunakan 20% set data untuk memangkas pohon keputusan.

 

Perhatikan bahwa penggunaan set data validasi akan mengurangi jumlah contoh yang tersedia untuk pelatihan awal pohon keputusan.

Banyak kreator model menerapkan beberapa kriteria. Misalnya, Anda dapat melakukan semua hal berikut:

  • Terapkan jumlah minimum contoh per daun.
  • Terapkan kedalaman maksimum untuk membatasi pertumbuhan pohon keputusan.
  • Memangkas pohon keputusan.
Kode YDF
Di YDF, algoritma pembelajaran sudah dikonfigurasi sebelumnya dengan nilai default untuk semua hyperparameter pemangkasan. Misalnya, berikut adalah nilai default untuk dua hyperparameter sebagai pruning:
  • Jumlah minimum contoh adalah 5 (min_examples = 5)
  • 10% set data pelatihan dipertahankan untuk divalidasi (validation_ratio = 0.1).
Anda dapat menonaktifkan pruning menggunakan set data validasi dengan menetapkan validation_ratio=0.0.

Kriteria tersebut memperkenalkan hyperparameter baru yang perlu disesuaikan (misalnya, kedalaman pohon maksimum), sering kali dengan penyesuaian hyperparameter otomatis. Pohon keputusan umumnya cukup cepat untuk dilatih untuk menggunakan penyesuaian hyperparameter dengan validasi silang. Misalnya, pada {i>dataset<i} dengan contoh "n":

  • Bagi contoh pelatihan menjadi grup p yang tidak tumpang-tindih. Contoh: p=10
  • Untuk semua kemungkinan nilai hyperparameter; misalnya, kedalaman maksimum dalam {3,5,6,7,8,9}, contoh minimum dalam {5,8,10,20}.
    • Mengevaluasi, pada setiap grup, kualitas pohon keputusan yang dilatih pada grup p-1 lainnya.
    • Rata-rata evaluasi di seluruh grup.
  • Pilih nilai hyperparameter dengan evaluasi rata-rata terbaik.
  • Latih pohon keputusan akhir menggunakan semua contoh "n" dengan hyperparameter yang dipilih.

Di bagian ini kita membahas cara pohon keputusan membatasi overfitting. Terlepas dari metode-metode ini, underfitting dan overfitting adalah kelemahan utama dari pohon keputusan. Hutan keputusan memperkenalkan metode baru untuk membatasi overfitting, yang akan kita lihat nanti.

Penafsiran pohon keputusan langsung

Pohon keputusan mudah ditafsirkan. Meskipun demikian, mengubah bahkan beberapa contoh saja dapat sepenuhnya mengubah struktur—dan juga penafsiran—pohon keputusan.

Karena cara pohon keputusan dibangun, mempartisi contoh pelatihan, seseorang dapat menggunakan pohon keputusan untuk menafsirkan set data itu sendiri (bukan model). Setiap daun mewakili sudut tertentu dari {i>dataset<i}.

Kode YDF
Di YDF, Anda dapat melihat hierarki dengan fungsi model.describe(). Anda juga dapat mengakses dan memetakan setiap hierarki dengan model.get_tree(). Lihat tutorial inspeksi model YDF untuk detail selengkapnya.

Namun, interpretasi tidak langsung juga bersifat informatif.