범주 형 변수로 오버 샘플링


9

약 4000 명의 고객과 두 그룹으로 나뉘어 진 약 4000 명의 고객과 데이터 세트의 균형을 맞추기 위해 오버 샘플링과 언더 샘플링의 조합을 수행하고 싶습니다. 그룹 중 하나의 비율은 약 15 %입니다.

SMOTE ( http://www.inside-r.org/packages/cran/DMwR/docs/SMOTE )와 ROSE ( http://cran.r-project.org/web/packages/ROSE/를 살펴 보았습니다 . ROSE.pdf ), 그러나 둘 다 기존 관측 값 (예 : kNN)을 사용하여 새로운 합성 샘플을 만듭니다.

그러나 고객과 관련된 많은 속성이 범주 적이므로 이것이 올바른 방법이라고 생각하지 않습니다. 예를 들어 Region_A 및 Region_B와 같은 많은 변수는 상호 배타적이지만 kNN을 사용하면 새로운 관측치가 Region_A와 Region_B에 모두 배치 될 수 있습니다. 이것이 문제라는 데 동의하십니까?

이 경우-기존 관측 값을 복제하여 R에서 어떻게 오버 샘플링을 수행합니까? 아니면 이것이 잘못된 방법입니까?


관측치가 4000 개인 경우 왜 서브 샘플링이 필요합니까?
kjetil b halvorsen

거의 동일한 클래스 점유율을 갖도록 데이터 세트의 균형을 맞추고 싶습니다. 데이터를 그대로 사용하면 모델은 모든 관측 값을 대다수 클래스로 간단히 예측합니다.
pir

답변:


8

ROSE 및 SMOTE는 범주 형 변수를 처리하도록 설계되었으므로 범주 형 변수가 이진 형식으로 표현되지 않는 한 일반적으로 상호 배타적 인 범주 형 기능이 할당 된 합성 관측 값에 대해 걱정할 필요가 없습니다. 이러한 경우 항상 요인으로 재구성 할 수 있습니다.

두 지역 예제에서는 "A"와 "B"의 두 수준으로 새 지역 변수를 만듭니다. 레코드는 원래 열을 참조하여 적절한 값을 갖습니다.

이제 새로운 합성 관측치가 여러 관련이 있거나 관련이없는 여러 변수 (예 : syntheticObservation.isPig = 1 및 syntheticObservation.hasWings = 1)에 분산되어 있기 때문에 충돌하는 카테고리를 생성 할 수있는 상황에 처한 경우 언제든지 추가 데이터를 제거 할 수 있습니다 이러한 수차를 청소하기 위해 모델 추정을 수행하기 전에.

또한 데이터 집합에 약 600 개의 이벤트 관측 값이 있으므로 대다수 클래스 를 언더 샘플링 하여 도출 된 합성 관측 값을 사용할 경우의 잠재적 이점을 고려할 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.