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 mengalami overfitting pada data dan menunjukkan akurasi pengujian yang buruk.
Gambar berikut menunjukkan set data berisi derau dengan hubungan linear antara fitur x dan label y. Gambar 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 berisi derau.
Untuk membatasi overfitting pada pohon keputusan, terapkan salah satu atau kedua kriteria regulasi berikut saat melatih pohon keputusan:
- Menetapkan kedalaman maksimum: Mencegah pohon keputusan berkembang melebihi kedalaman maksimum, seperti 10.
- Tetapkan jumlah minimum contoh di node daun: Node daun dengan kurang dari jumlah contoh tertentu tidak akan dipertimbangkan untuk pemisahan.
Gambar berikut mengilustrasikan efek perbedaan jumlah minimum contoh per daun. Model ini menangkap lebih sedikit derau.
Gambar 13. Jumlah minimum contoh yang berbeda per daun.
Anda juga dapat melakukan regularisasi setelah pelatihan dengan menghapus (pemangkasan) cabang tertentu secara selektif, yaitu dengan mengonversi node non-daun tertentu menjadi daun. Solusi umum untuk memilih cabang yang akan dihapus adalah 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 ditingkatkan jika node hijau non-daun diubah menjadi daun; yaitu, memangkas node oranye.
Gambar 14. Memangkas kondisi dan turunannya 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 node daun.
- Terapkan kedalaman maksimum untuk membatasi pertumbuhan pohon keputusan.
- Pangkas pohon keputusan.
- Jumlah minimum contoh adalah 5 (
min_examples = 5
) - 10% set data pelatihan disimpan untuk validasi
(
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 agar dapat menggunakan penyesuaian hyperparameter dengan validasi silang. Misalnya, pada set data dengan contoh "n":
- Bagi contoh pelatihan menjadi p grup yang tidak tumpang-tindih. Contoh:
p=10
- Untuk semua kemungkinan nilai hyperparameter; misalnya, kedalaman maksimum
di {3,5,6,7,8,9}, contoh minimum di {5,8,10,20}.
- Evaluasi, pada setiap grup, kualitas hierarki keputusan yang dilatih pada grup p-1 lainnya.
- Hitung 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 telah membahas cara pohon keputusan membatasi overfitting. Meskipun metode ini, underfitting dan overfitting adalah kelemahan utama dari hierarki 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 beberapa contoh saja dapat sepenuhnya mengubah struktur—dan dengan demikian interpretasi—hierarki keputusan.
Karena cara pembuatan pohon keputusan, yang mempartisi contoh pelatihan, seseorang dapat menggunakan pohon keputusan untuk menafsirkan set data itu sendiri (bukan model). Setiap node daun mewakili sudut tertentu dari set data.
model.describe()
.
Anda juga dapat mengakses dan memetakan setiap hierarki dengan model.get_tree()
.
Lihat
tutorial pemeriksaan model YDF untuk mengetahui detail selengkapnya.
Namun, penafsiran tidak langsung juga bersifat informatif.