2017-04-14 7 views
2

매우 불균형 한 데이터 세트 (1:10 000의 비율)에서 ScikitLearn의 임의의 포리스트를 적용하려고합니다. class_weigth = 'balanced'매개 변수를 사용할 수 있습니다. 나는 그것이 언더 샘플링과 동일하다는 것을 읽었습니다.ScikitLearn 랜덤 포리스트의 Undersampling vs class_weight

그러나이 방법은 샘플에 가중치를 적용하는 것으로 보이며 실제 샘플 수는 변경하지 않습니다.

랜덤 포리스트의 각 트리는 무작위로 그려진 훈련 세트의 하위 샘플을 기반으로하기 때문에 각 하위 샘플에서 소수 클래스가 충분히 대표적 (또는 전혀 표현되지 않음)합니다. 사실입니까? 이것은 매우 편향된 나무로 이어질 것입니다.

따라서 제 질문은 class_weight = "balanced"매개 변수가 극도로 불균형적인 데이터 세트에서 합리적으로 편향된 Random Forest 모델을 구축 할 수 있는지 또는 각 트리에서 또는 교육을 구축 할 때 대다수 클래스를 언더 샘플링 할 방법을 찾아야합니까? 세트?

+2

많은 표현이없는 클래스를 갖는 것은 그 자체로 위험합니다. 소수 민족 계급의 대표자가되기위한 충분한 예를 원한다. 그렇다고해서 과반수를 언더 샘플링 할 때 이점이 있다는 것을 의미하지는 않습니다. –

답변

0

당신은 + -10000 개의 샘플로 다수 클래스를 나눌 수 있고 각 샘플과 소수점 클래스의 같은 포인트를 사용하여 같은 모델을 훈련시킬 수 있다고 생각합니다.

+0

대단히 감사합니다! 나는 비슷한 생각을 염두에두고 있었지만, 어디에도 적용되지 않은 것을 보지 못했습니다. 나는 숲의 각 트리마다 대다수 클래스의 다른 샘플 (소수점 클래스의 동일한 포인트)을 사용할 생각이었습니다. –