매우 불균형 한 데이터 집합이 있습니다. 튜닝 조언 을 따르고 사용 scale_pos_weight
하려고하지만 어떻게 튜닝 해야하는지 잘 모르겠습니다.
나는 그것을 볼 수 있습니다 RegLossObj.GetGradient
:
if (info.labels[i] == 1.0f) w *= param_.scale_pos_weight
양성 샘플의 기울기가 더 영향을 미칩니다. 그러나 xgboost paper 에 따르면 그라디언트 통계는 항상 특정 트리의 특정 노드 인스턴스 내에서 로컬로 사용 됩니다 .
- 노드의 컨텍스트 내에서 후보 분할의 손실 감소를 평가
- 리프 노드의 컨텍스트 내에서 해당 노드에 주어진 가중치를 최적화
따라서 좋은 점을 미리 알 수있는 방법이 없습니다 scale_pos_weight
. 긍정적 인 인스턴스와 부정적인 인스턴스 사이의 비율이 1 : 100 인 노드와 1 : 2 비율의 노드의 경우에는 매우 다릅니다.
힌트가 있습니까?