Penjelasan tentang min_child_weight dalam algoritma xgboost

23

The definisi parameter min_child_weight di xgboost diberikan sebagai:

jumlah minimum contoh berat badan (goni) yang dibutuhkan pada anak. Jika langkah partisi pohon menghasilkan simpul daun dengan jumlah bobot contoh kurang dari min_child_weight, maka proses pembangunan akan berhenti mempartisi lebih lanjut. Dalam mode regresi linier, ini hanya sesuai dengan jumlah minimum instance yang diperlukan di setiap node. Semakin besar, algoritma akan semakin konservatif.

Saya telah membaca beberapa hal di xgboost termasuk kertas asli (lihat rumus 8 dan yang baru setelah persamaan 9), pertanyaan ini dan banyak hal yang berkaitan dengan xgboost yang muncul di beberapa halaman pertama pencarian google. ;)

Pada dasarnya saya masih tidak senang mengapa kita memaksakan batasan jumlah hessian? Saya hanya berpikir pada menit dari kertas asli adalah bahwa hal itu berkaitan dengan bagian tertimbang kuantil sketsa (dan reformulasi sebagai persamaan 3 hilangnya kuadrat tertimbang) yang memiliki hsaya sebagai 'bobot' dari setiap contoh.

Pertanyaan selanjutnya berkaitan dengan mengapa itu hanya jumlah contoh dalam mode regresi linier? Saya kira ini terkait dengan turunan kedua dari persamaan jumlah kuadrat?

maw501
sumber

Jawaban:

42

Untuk regresi, kehilangan setiap titik dalam suatu simpul adalah

12(ysaya-ysaya^)2

Turunan kedua dari ungkapan ini sehubungan dengan adalah 1ysaya^1 . Jadi, ketika Anda menjumlahkan turunan kedua atas semua titik dalam simpul, Anda mendapatkan jumlah titik dalam simpul tersebut. Di sini, min_child_weight berarti sesuatu seperti "berhenti mencoba untuk membagi setelah ukuran sampel Anda dalam sebuah simpul berjalan di bawah ambang batas yang diberikan".

Untuk regresi logistik biner, goni untuk setiap titik dalam sebuah simpul akan berisi istilah seperti

σ(ysaya^)(1-σ(ysaya^))

σysaya^σ(ysaya^) akan mendekati 1, jadi semua istilah hessian akan mendekati 0. Logika yang sama berlaku jika semua contoh pelatihan dalam simpul adalah 0. Di sini, min_child_weight berarti sesuatu seperti "berhenti berusaha untuk membelah begitu Anda mencapai tingkat kemurnian tertentu dalam sebuah simpul dan model Anda bisa cocok".

Goni adalah hal yang waras untuk digunakan untuk regularisasi dan membatasi kedalaman pohon. Untuk regresi, mudah untuk melihat bagaimana Anda bisa berpakaian jika Anda selalu membagi ke node dengan, katakanlah, hanya 1 observasi. Demikian pula, untuk klasifikasi, mudah untuk melihat bagaimana Anda bisa berpakaian jika Anda bersikeras membelah sampai setiap node murni.

hahdawg
sumber
Terima kasih atas balasannya, saya tidak dapat memperbaiki Anda karena reputasi yang rendah.
maw501
1
Hai @ maw501: Tidak masalah, saya bisa. Jawaban bagus Hahdawg!
Catbuilts
Jadi dalam kasus data yang sangat tidak seimbang, berapa kisaran yang Anda usulkan untuk min_child_weight?
Mahdi Baghbanzadeh
Ketika dalam dataset tidak seimbang, haruskah min_child_weight menyertakan bobot juga? Terima kasih! @hahdawg
HanaKaze