희귀 한 이벤트 예측 모델을위한 오버 샘플링을 사용한 자루


13

다음이 설명되어 있는지, 그리고 어느 것이 든 불균형 목표 변수를 가진 예측 모델을 배우는 타당한 방법처럼 들리는 지 아는 사람이 있습니까?

데이터 마이닝의 CRM 응용 프로그램에서 종종 긍정적 이벤트 (성공)가 대다수 (음수 클래스)에 비해 매우 드문 모델을 찾습니다. 예를 들어, 0.1 %만이 긍정적 인 관심 대상 (예 : 고객이 구매 한) 인 500,000 개의 인스턴스가있을 수 있습니다. 따라서 예측 모델을 작성하기위한 한 가지 방법은 모든 양의 클래스 인스턴스와 음의 클래스 인스턴스의 샘플 만 유지하여 양수 대 음수 클래스의 비율이 1에 가까워 지도록 데이터를 샘플링하는 것입니다 (25 %) -75 % 양성에서 음성으로). 오버 샘플링, 언더 샘플링, SMOTE 등은 문헌의 모든 방법입니다.

내가 궁금한 것은 위의 기본 샘플링 전략을 결합하지만 네거티브 클래스의 가방과 결합하는 것입니다.

  • 모든 긍정적 클래스 인스턴스 유지 (예 : 1,000)
  • 균형 잡힌 표본 (예 : 1,000)을 만들기 위해 음의 분류 사례를 표본 추출합니다.
  • 모델 맞추기
  • 반복

전에이 일을하는 사람 있어요? bagging이없는 것처럼 보이는 문제는 500,000 개가있을 때 네거티브 클래스의 인스턴스 1,000 개만 샘플링한다는 것은 예측 변수 공간이 희박하고 가능한 예측 변수 값 / 패턴의 표현이 없을 수 있다는 것입니다. 자루에 넣는 것이 도움이 될 것 같습니다.

나는 샘플 중 하나에 예측 변수에 대한 모든 값이 없을 때 rpart를 보았고 아무 것도 깨지지 않습니다 (그러한 예측 변수 값으로 인스턴스를 예측할 때 깨지지 않습니다).

library(rpart)
tree<-rpart(skips ~ PadType,data=solder[solder$PadType !='D6',], method="anova")
predict(tree,newdata=subset(solder,PadType =='D6'))

이견있는 사람?

업데이트 : 실제 데이터 세트 (마케팅 다이렉트 메일 응답 데이터)를 가져 와서 무작위로 교육 및 유효성 검사로 나누었습니다. 618 개의 예측 변수와 1 개의 이진 목표가 있습니다 (매우 드물게).

Training:
Total Cases: 167,923
Cases with Y=1: 521

Validation:
Total Cases: 141,755
Cases with Y=1: 410

나는 훈련 세트에서 모든 긍정적 인 예 (521)와 균형 잡힌 샘플에 대해 동일한 크기의 부정적인 예의 무작위 샘플을 가져 왔습니다. 나는 rpart 트리에 맞습니다.

models[[length(models)+1]]<-rpart(Y~.,data=trainSample,method="class")

이 과정을 100 번 반복했습니다. 그런 다음이 100 가지 모델 각각에 대한 검증 샘플의 경우 Y = 1의 확률을 예측했습니다. 최종 추정치에 대한 확률을 100으로 평균했습니다. 검증 세트에 대한 확률을 결정하고 각 decile에서 Y = 1 (모델의 순위 지정 능력을 추정하는 전통적인 방법) 인 경우의 백분율을 계산했습니다.

Result$decile<-as.numeric(cut(Result[,"Score"],breaks=10,labels=1:10)) 

성능은 다음과 같습니다. 여기에 이미지 설명을 입력하십시오

이것이 자루에 넣지 않은 것과 비교하여 어떻게되는지 확인하기 위해 첫 번째 샘플만으로 유효성 검사 샘플을 예측했습니다 (모든 긍정적 인 경우와 동일한 크기의 임의 샘플). 명백하게, 표본 추출 된 데이터가 너무 적거나 과적 합되어 홀드 아웃 검증 표본에 효과적이지 않았습니다.

드문 경우와 큰 n과 p가있을 때 배깅 루틴의 효능 제안.

여기에 이미지 설명을 입력하십시오

답변:


7

각 백에 동일한 긍정적 인 클래스 예제를 포함하는 것을 제외하고는 S ^ 3Bagging : 서브 샘플링 및 배깅을 사용한 빠른 분류기 유도 방법에 설명 된대로 S ^ 3Bagging 입니다. (저는이 논문을 심층적으로 검토하지 않았으며, 그냥 감추었습니다.)

서브 샘플링이 배깅보다 부스팅과 결합되는 것을 훨씬 자주 보았지만 이론적으로는 잘못된 것이 없습니다.

이것은 귀하의 질문을 정확하게 해결할 수는 없지만 불균형 데이터를 처리하는 다양한 방법에 대한 훌륭한 논문은 불균형 데이터에서 학습 입니다. 비용에 민감한 학습이 귀하의 경우에 더 적합 할 수도 있습니다. 의사 결정 포리스트를 사용하고 있으므로 섹션 3.2.3 비용에 민감한 의사 결정 트리가 도움이 될 것입니다. 그것은,

의사 결정 트리와 관련하여 비용에 민감한 피팅은 세 가지 형태를 취할 수 있습니다. 첫째, 비용에 민감한 조정이 의사 결정 임계 값에 적용될 수 있습니다. 둘째, 각 노드에서 분할 기준에 대해 비용에 민감한 고려가 이루어질 수있다. 마지막으로, 비용에 민감한 가지 치기 계획을 트리에 적용 할 수 있습니다.

의사 결정 임계 값에 대한 비용에 민감한 조정은 기본적으로 ROC 또는 Precision-Recall Curve 성능을 기반으로 의사 결정 임계 값을 선택하는 것을 의미합니다. 특히 PRC 성능은 불균형 데이터에 강력합니다.

비용에 민감한 분할 기준은 불균형 데이터를 처리하기 위해 불순물 기능을 변경하는 것입니다. 위에서 언급 한 논문은

[63]에서 Gini, Entropy 및 DKM의 세 가지 특정 불순물 함수는 정확도 / 오류율 기준과 비교하여 비용 비 감도가 개선 된 것으로 나타났습니다. 더욱이, 이러한 실험적 실험은 또한 DKM 기능을 사용하는 것이 일반적으로 더 작은 가지 치지 않은 결정 트리를 생성하여 Gini 및 Entropy에 필적하는 정확도를 제공하는 것을 보여줍니다. 이러한 경험적 결과의 결론을 설명하는 상세한 이론적 근거는 나중에 [49]에서 정해졌으며, 이는 임의의 침 기준 선택에 대한 의사 결정 트리 성장의 영향을 일반화합니다.

가지 치기에 관해서는

그러나, 불균형 데이터가 존재하는 경우, 가지 치기 절차는 소수 개념을 설명하는 잎을 제거하는 경향이 있습니다. 불균형 데이터에서 유도 된 가지 치기 트리가 성능을 방해 할 수 있지만 정리되지 않은 트리를 사용하면 성능이 향상되지 않는 것으로 나타났습니다 [23]. 결과적으로, 각 노드에서 클래스 확률 추정치를 개선하여보다 대표적인 의사 결정 트리 구조를 개발하여 가지 치기가 긍정적 인 효과로 적용될 수 있도록주의를 기울였습니다. 일부 대표 작품으로는 확률 추정의 라플라스 평활화 방법과 라플라스 정리 기술 [49]이 있습니다.

[23] N. Japkowicz와 S. Stephen,“계급 불균형 문제 : 체계적인 연구”, 지능형 데이터 분석, vol. 6 번 5, pp. 429-449, 2002.

C. Elkan,“비용에 민감한 학습의 기초”Proc. 국제 공동 회의 인공 지능, 973-978, 2001 년.

[63] C. Drummond와 RC Holte,“의사 결정 트리 분할 기준의 비용 (In) 민감도의 폭등,”Proc. 국제 회의 머신 러닝, pp. 239-246, 2000.


0

이것은 매우 흥미 롭습니다. 최근에 드문 이벤트에 대한 유효성 검사가 잘 수행되는 반면, 가장 낮은 예측 범위 (예 : 0.0-0.1)에서 비 이벤트에 대한 유효성 검사가 월별로 불안정하게 수행되는 유사한 상황의 프로젝트가 있습니다. 앞에서 언급했듯이 비 이벤트가 많기 때문에 다양한 변수 조합을 포괄 할 수있는 충분한 샘플이있을 수 있도록 더 많은 샘플을 학습 세트에 포함시키는 것이 좋습니다.

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