Tôi có một bộ dữ liệu rất mất cân bằng. Tôi đang cố gắng làm theo lời khuyên điều chỉnh và sử dụng scale_pos_weight
nhưng không chắc tôi nên điều chỉnh nó như thế nào.
Tôi có thể thấy điều RegLossObj.GetGradient
đó:
if (info.labels[i] == 1.0f) w *= param_.scale_pos_weight
do đó, một gradient của một mẫu dương tính sẽ có ảnh hưởng nhiều hơn. Tuy nhiên, theo bài báo xgboost , thống kê độ dốc luôn được sử dụng cục bộ = trong các trường hợp của một nút cụ thể trong một cây cụ thể:
- trong ngữ cảnh của một nút, để đánh giá mức giảm tổn thất của phần tách ứng viên
- trong ngữ cảnh của một nút lá, để tối ưu hóa trọng số cho nút đó
Vì vậy, không có cách nào để biết trước điều gì sẽ là tốt scale_pos_weight
- đó là một con số rất khác nhau cho một nút kết thúc với tỷ lệ 1: 100 giữa các trường hợp tích cực và tiêu cực và cho một nút có tỷ lệ 1: 2.
Có gợi ý nào không?