class balanced weight (Cost-sensitive learning)

2021. 12. 13. 16:50데이터 사이언스/데이터 불균형

Cost sensitive learning은 데이터 자체를 생성하진 않는다. 다만 머신러닝을 학습할 때 소수의 클래스에 대한 cost값에 가중치를 더 많이 주어 균형 잡힌 학습이 가능하게 하는 방법이다.

이것저것 다 사용해본 결과 어떤 때는 Cost-sensitvie learning이 더 효과가 좋았고, 어떨 때는 알고리즘을 이용한 오버 샘플링이 좋았다. 둘 다 사용해보고 상황에 맞는 결정을 해야 할 듯하다.

 

아래와 같이 랜덤 포레스트를 실행해서 가중치를 준 것과 안 준 것을 비교해보자.

 

크지는 않지만 가중치를 주었을 때 정확도가 더 높다!

 

 

랜덤 포레스트도 뿐만 아니라 xgboost에서는 scale_pos_weight 나 weight 같은 파라미터로 지정해 줄 수 있다.