Saya menganalisis classifier yang dibuat menggunakan pohon keputusan. Ada parameter tuning yang disebut max_depth di pohon keputusan scikit. Apakah ini setara dengan pemangkasan pohon keputusan? Jika tidak, bagaimana saya bisa memangkas pohon keputusan menggunakan scikit?
dt_ap = tree.DecisionTreeClassifier(random_state=1, max_depth=13)
boosted_dt = AdaBoostClassifier(dt_ap, random_state=1)
boosted_dt.fit(X_train, Y_train)
Jawaban:
Meskipun mereka memiliki tujuan yang sama (yaitu menempatkan beberapa batasan pada model sehingga tidak tumbuh sangat kompleks dan pakaian),
max_depth
tidak setara dengan pemangkasan. Cara pemangkasan biasanya bekerja adalah dengan kembali melalui pohon dan mengganti cabang yang tidak membantu dengan simpul daun.Anda tidak dapat melalui scikit-learn (tanpa mengubah kode sumber).
Kutipan diambil dari dokumentasi Pohon Keputusan : Mekanisme seperti pemangkasan (saat ini tidak didukung)
Jika Anda ingin memangkas pohon Anda harus melakukannya sendiri:
Anda dapat membaca posting yang luar biasa ini yang merinci cara melakukannya.
sumber
Sekarang dengan versi baru 0.22.1, Anda bisa! Itu pemangkasan berdasarkan pemangkasan kompleksitas biaya minimal: subtree dengan kompleksitas biaya terbesar yang lebih kecil dari ccp_alpha akan dipilih.
https://scikit-learn.org/stable/auto_examples/tree/plot_cost_complexity_pruning.html
sumber