Latar Belakang:
di xgboost yang iterasi mencoba untuk menyesuaikan pohon atas segala contoh yang meminimalkan tujuan berikut:f t n
di mana adalah urutan pertama dan kedua, di atas estimasi terbaik kami sebelumnya (dari iterasi ):y t - 1
dan adalah fungsi kerugian kita.
Pertanyaannya (akhirnya):
Ketika membangun dan mempertimbangkan fitur spesifik dalam pemisahan tertentu, mereka menggunakan heuristik berikut untuk menilai hanya beberapa kandidat yang terpecah: Mereka mengurutkan semua contoh dengan mereka , melewati daftar yang diurutkan dan menjumlahkan turunan kedua . Mereka menganggap kandidat yang terbelah hanya ketika jumlah berubah lebih dari . Mengapa demikian??? k x k h i ϵ
Penjelasan yang mereka berikan membuat saya terhindar:
Mereka mengklaim kita dapat menulis ulang persamaan sebelumnya seperti ini:
dan saya gagal mengikuti aljabar - dapatkah Anda menunjukkan mengapa itu sama?
Dan kemudian mereka mengklaim bahwa "ini persis kerugian kuadrat tertimbang dengan label dan bobot " - pernyataan yang saya setujui, tapi saya tidak mengerti bagaimana kaitannya dengan algoritma calon split yang mereka gunakan ...h i
Terima kasih dan maaf jika ini terlalu lama untuk forum ini.
Hanya menambahkan bagian aljabar ke jawaban @Winks:
Persamaan kedua harus memiliki tanda terbalik, seperti pada:
Istilah terakhir memang konstan: ingat bahwa dan ditentukan oleh iterasi sebelumnya, jadi mereka konstan ketika mencoba untuk mengatur .gi hi ft
Jadi, sekarang kita dapat mengklaim "ini persis kerugian kuadrat tertimbang dengan label dan bobot "−gi/hi hi
Penghargaan untuk Yaron dan Avi dari tim saya karena menjelaskan hal ini kepada saya.
sumber
Jika hanya ada satu sampel, dan Anda mengoptimalkan pada iterasi , mudah untuk melihat bahwa nilainya akan menjadi , menjelaskanw t−th w∗=−gi/hi (ft−−(gi/hi))2
Sekarang Anda memiliki seluruh kumpulan data. Dalam kasus di mana fungsi kerugian memiliki turunan kedua yang identik, akan menjadi bukan . Saya menulisnya dengan cara ini karena dalam kasus itu, tidak akan relevan dengan perbedaan antara sampel, karena tidak ada perbedaan. Namun, pada kenyataannya, ketika menjaga tidak berubah, berfluktuasi dengan distribusi .w∗ −avg(gi)/const −sigma(gi)/sigma(hi) w∗ hi gi w∗ i w ∗ hi
Saya pikir itu menjelaskan mengapa ia bekerja karena tertimbang oleh .hi
sumber