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.
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.
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.
Gambar 14. Memangkas kondisi dan turunannya hingga menjadi daun.
Gambar berikut mengilustrasikan efek penggunaan 20% set data sebagai validasi untuk memangkas pohon keputusan:
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.
- Jumlah minimum contoh adalah 5 (
min_examples = 5
) - 10% set data pelatihan dipertahankan untuk divalidasi (
validation_ratio = 0.1
).
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}.
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.