Saya memiliki dataset yang sangat tidak seimbang. Saya mencoba mengikuti saran penyetelan dan menggunakan scale_pos_weight
tetapi tidak yakin bagaimana saya harus menyetelnya.
Saya dapat melihat bahwa RegLossObj.GetGradient
:
if (info.labels[i] == 1.0f) w *= param_.scale_pos_weight
jadi gradien sampel positif akan lebih berpengaruh. Namun, menurut makalah xgboost , statistik gradien selalu digunakan secara lokal = di dalam instance dari simpul tertentu di pohon tertentu:
- dalam konteks node, untuk mengevaluasi pengurangan kerugian dari kandidat split
- dalam konteks simpul daun, untuk mengoptimalkan bobot yang diberikan pada simpul itu
Jadi tidak ada cara untuk mengetahui terlebih dahulu apa yang akan baik scale_pos_weight
- itu adalah angka yang sangat berbeda untuk sebuah simpul yang berakhir dengan rasio 1: 100 antara contoh positif dan negatif, dan untuk sebuah simpul dengan rasio 1: 2.
Ada petunjuk?