Memilih parameter kompleksitas dalam CART

16

Dalam rutin bagian () untuk membuat model CART, Anda menentukan parameter kompleksitas yang ingin Anda pangkas pohon Anda. Saya telah melihat dua rekomendasi berbeda untuk memilih parameter kompleksitas:

  1. Pilih parameter kompleksitas yang terkait dengan kemungkinan kesalahan tervalidasi silang minimum. Metode ini direkomendasikan oleh Quick-R dan HSAUR.

  2. Pilih parameter kompleksitas terbesar yang estimasi kesalahan lintas-validasinya masih dalam SE dari kesalahan kesalahan-validasi silang minimum yang mungkin. Ini adalah interpretasi saya terhadap dokumentasi paket, yang mengatakan: "Pilihan cp yang baik untuk pemangkasan seringkali merupakan nilai paling kiri dimana rerata terletak di bawah garis horizontal" dalam referensi pada plot ini .

Dua pilihan cp menghasilkan pohon yang sangat berbeda dalam dataset saya.

Tampaknya metode pertama akan selalu menghasilkan pohon yang lebih kompleks dan berpotensi overfitted. Apakah ada kelebihan, kekurangan, rekomendasi dalam literatur, dll. Saya harus mempertimbangkan ketika memutuskan metode mana yang akan digunakan? Saya dapat memberikan lebih banyak informasi tentang masalah pemodelan khusus saya jika itu akan berguna, tetapi saya mencoba untuk menjaga pertanyaan ini cukup luas agar relevan dengan orang lain.

setengah lulus
sumber
Apa yang dilambangkan garis horizontal dalam plot?
Bogdanovist
Saya percaya ini mewakili 1 SE di atas kesalahan silang yang divalidasi seminimal mungkin.
setengah lulus
Jika Anda memiliki cukup data, Anda dapat mencoba memisahkannya menjadi pelatihan dan mengetes kumpulan data, bahkan untuk pohon. Ini mungkin sangat berguna jika Anda terutama tertarik pada prediksi, karena set data uji akan memberikan perkiraan yang baik tentang itu. Pilihan lain adalah partypaket yang menggunakan tes signifikansi (biasanya bukan sesuatu yang saya sarankan, tetapi tampaknya relevan di sini). Namun, seperti biasa, tes terbaik adalah kegunaan dan akal; ini terutama benar jika Anda terutama tertarik pada penjelasan.
Peter Flom - Reinstate Monica
Saya minta maaf atas respons yang lambat. Untuk mengklarifikasi, saya berpikir bahwa, dengan menggunakan validasi silang untuk menghitung kesalahan pada ukuran pohon yang berbeda, saya sudah secara efektif membagi data berulang kali menjadi pelatihan dan set tes. Apakah melakukan pelatihan / split tes lagi akan berlebihan dalam kasus itu? Apakah saya salah paham dengan Anda?
setengah jalan
Membagi data dalam kereta / tes dan memvalidasi silang parameter cp menggunakan data kereta saja, akan mereproduksi tes prediksi realistis (di mana Anda tidak dapat menggunakan data masa depan untuk memperkirakan cp). Jadi CV pertama adalah untuk cp, kesalahan prediksi untuk model keseluruhan (termasuk estimasi cp).
Robert Kubrick

Jawaban:

6

Dalam praktiknya saya telah melihat kedua pendekatan yang diambil, dan saya pikir bahwa secara umum hasil Anda tidak akan diharapkan jauh berbeda.

Yang sedang berkata, Hastie et al merekomendasikan aturan "kesalahan satu standar" dalam Elemen Pembelajaran Statistik , dan saya cenderung mempercayai penilaian mereka (Bagian 7.10, hal. 244 dalam versi saya). Kutipan yang relevan adalah:

Seringkali aturan "kesalahan satu standar" digunakan dengan validasi silang, di mana kami memilih model yang paling keliru yang kesalahannya tidak lebih dari satu kesalahan standar di atas kesalahan model terbaik. "

Intuisi Anda mengapa seseorang akan mengikuti aturan kesalahan satu standar adalah benar - Anda akan melakukannya untuk menghindari memilih model yang sesuai dengan data.

Tchotchke
sumber
1

Pertama-tama Anda harus mulai dengan menggunakan argumen minsplit=0dan cp=0(parameter kompleksitas) kemudian menggunakan fungsi plotcp(T.max)dan printcp(T.max)memilih nilai yang cpsesuai dengan kesalahan relatif minimum dan memangkas pohon dengan fungsiprune.rpart(T.max, cp=....)

Ini akan memberi Anda pohon klasifikasi yang optimal karena mereka cenderung terlalu optimis.

Ayman Hijazy
sumber