불균형 데이터에 대한 의사 결정 트리 교육


43

데이터 마이닝을 처음 사용하고 있으며 불균형이 심한 데이터 세트에 대해 의사 결정 트리를 훈련하려고합니다. 그러나 예측 정확도가 좋지 않습니다.

데이터는 코스를 공부하는 학생들로 구성되며 클래스 변수는 취소됨 또는 현재의 두 값을 갖는 코스 상태입니다.

  • 나이
  • 민족
  • 성별
  • 코스
    ...
  • 코스 상태

데이터 세트에는 Withdrawn보다 Current 인 인스턴스가 더 많습니다. 철회 된 인스턴스는 전체 인스턴스의 2 % 만 차지합니다.

미래에 사람이 철회 할 확률을 예측할 수있는 모델을 만들고 싶습니다. 그러나 훈련 데이터를 기준으로 모델을 테스트 할 때 모델의 정확도는 끔찍합니다.

데이터가 하나 또는 두 개의 클래스로 지배되는 의사 결정 트리와 비슷한 문제가 있습니다.

이 문제를 해결하고보다 정확한 분류기를 구축하기 위해 어떤 접근법을 사용할 수 있습니까?


4
고려해야 할 한 가지 유형은 다른 유형의 잘못된 분류에 대한 페널티 용어를 변경하는 것입니다. 어떤 소프트웨어를 사용하고 있는지는 말하지 않지만 모든 훌륭한 트리 소프트웨어에는이를 수행하는 방법이 포함되어야한다고 생각합니다.
Peter Flom-Monica Monica 복원

답변:


61

이것은 의사 결정 트리뿐만 아니라 사실상 모든 분류 알고리즘에서 분류에 흥미롭고 매우 빈번한 문제입니다.

경험적으로 알 수 있듯이 두 클래스 중 다른 수의 대표로 구성된 트레이닝 세트는 대다수 클래스에 편향된 분류기를 생성 할 수 있습니다. 유사하게 불균형 인 테스트 세트에 적용될 때이 분류기는 낙관적 정확도 추정치를 산출합니다. 극단적 인 경우 분류기는 모든 단일 테스트 사례를 다수 클래스에 할당하여 다수 클래스에 속하는 테스트 사례 비율과 동일한 정확도를 달성 할 수 있습니다. 이것은 이진 분류에서 잘 알려진 현상이며 자연스럽게 다중 클래스 설정으로 확장됩니다.

불균형 데이터 세트로 인해 성능 추정이 비정상적으로 증가 할 수 있기 때문에 이것은 중요한 문제입니다. 결과적으로 알고리즘이 우연히 수행 한 것의 중요성에 대한 잘못된 결론으로 ​​이어질 수 있습니다.

이 주제에 대한 기계 학습 문헌은 본질적으로 세 가지 솔루션 전략을 개발했습니다.

  1. 큰 클래스 를 언더 샘플링 하거나 작은 클래스 를 오버 샘플링 하여 처음부터 편향이 발생하지 않도록 훈련 세트의 균형을 복원 할 수 있습니다 .

  2. 또는 이전 응답에서 언급 한대로 오 분류 비용을 다시 수정하여 편견을 방지 할 수 있습니다.

  3. 추가적인 안전 장치는 정확도를 소위 균형 정확도 로 대체하는 것 입니다. 클래스 별 정확도의 산술 평균, 로 정의됩니다.ϕ:=12(π++π),π+π

정확도 대 균형 정확도

위의 방법 중 두 가지 이상을 함께 고려하는 것이 좋습니다. 예를 들어, 분류자가 대다수 클래스에 유리한 편향을 얻지 못하도록 소수 클래스를 오버 샘플링 할 수 있습니다. 그런 다음 분류기의 성능을 평가할 때 정확도를 균형 정확도로 대체 할 수 있습니다. 두 가지 접근법은 상호 보완 적입니다. 함께 적용하면 원래 문제를 예방하고 그에 따른 잘못된 결론을 피할 수 있습니다.

이에 대한 후속 조치를 원할 경우 문헌에 대한 추가 참고 자료를 게시하게되어 기쁩니다.


3
Broder-자세한 정보에 감사드립니다. 정말 도움이되었습니다! 처음에 SQL Server에서 데이터 마이닝 기능을 사용하려고 시도했지만 R을 사용하도록 전환 한 조언에 따라 SMOTE 알고리즘을 사용하여 데이터 세트의 균형을 조정하고 의사 결정 트리와 SVM을 모두 사용했습니다. DT는 81 %의 균형 잡힌 정확도를 제공하며 SVM을 사용하면 더욱 향상됩니다. 한 가지 질문-rebalancd 데이터를 포함하는 데이터 세트에 대해 모델을 테스트해야합니까? 아니면 원본과 같은 데이터에 대해 테스트해야합니까?
chrisb

2
듣기 좋네요. 질문과 관련하여 : 테스트 데이터의 균형을 맞추고 싶지 않습니다 . 오버 샘플링의 경우 일부 예제를 두 번 테스트하거나 (언더 샘플링의 경우) 테스트에서 일부 예제를 생략하므로 성능 평가에 치명적일 수 있습니다. 요약하면, 훈련 세트의 균형을 맞추고 (각 교차 검증 폴드 내에서 별도로) 수정되지 않은 (잠재적으로 불균형 한) 테스트 데이터를 테스트하려고합니다.
Kay Brodersen

감사합니다 Broder. 그렇게하면 사물에 다른 그림이 그려집니다. 균형 잡힌 정확도는 약 56 %로 떨어집니다. 최고의 모델에서 감도는 17 %로 떨어집니다 (더 나은 예측을 얻는 데 필요한 클래스에 해당). 오버 샘플링 된 클래스가 해당 클래스이므로 해당 예제가 여러 번 계산되기 때문에 이것이 의미가 있다고 생각합니다. 이것이 차이가 있는지 확인하기 위해 훈련 데이터 세트의 균형을 조정하려고 시도합니다.
chrisb

이제 다양한 비율의 균형 잡힌 데이터로 테스트 한 결과, 최고의 균형 정확도는 60 %의 Ada Boost입니다. "좋은"것이 무엇인지 결정하기 위해 고심하고 있습니다. 저의 주요 목표는 코스에서 탈퇴 할 수있는 학생들을 예측하는 것입니다. Withdraw가 나의 긍정적 인 수업으로, 나는 나의 진정한 긍정적 인 수를 최대화하려고 노력했습니다 (즉, 민감도를 높이십시오). 데이터를 재조정하면 허위 네거티브 수를 해칠 수 있습니다. 60 %는 나에게 무작위보다 훨씬 나아 보이지는 않지만이 경우 "좋은"항목에 대한 기준은 없습니다.
chrisb

2
@ chrisb, 이것은 약간 (!) 늦은 의견입니다. 탄젠트에서 Cox 비례 위험 회귀 ( cran.r-project.org/doc/contrib/Fox-Companion/… )를 시도 하여 학생들의 생존을 모델링 할 수 있습니다. 다운 샘플링이나 오버 샘플링이 필요하지 않을 수 있습니다.
Zhubarb

8

다음 네 가지 아이디어가이 문제를 해결하는 데 도움이 될 수 있습니다.

  1. 적절한 성능 측정을 선택한 다음 모델의 하이퍼 파라미터 (예 : 정규화)를 미세 조정하여 교차 검증 데이터 세트에서 만족스러운 결과를 얻고 일단 만족하면 테스트 데이터 세트에서 모델을 테스트하십시오. 이를 위해 15 %의 데이터를 교차 검증에 사용하고 15 %를 최종 테스트에 사용하십시오. Andrews Ng가 옹호하는 머신 러닝에서 확립 된 측정은 로 정의 된 F1 통계입니다.2PrecisionRecallPrecision+Recall

  2. 의사 결정 트리에서 'prior'매개 변수를 사용하여 데이터 세트에서 클래스의 이전 빈도를 알고리즘에 알리십시오 (예 : 1,000,0000 데이터 세트에 1,000 개의 양수가있는 경우 prior = c(0.001, 0.999)(R)).

  3. 희귀 양성 사례의 오 분류에 대한 알고리즘을 심각하게 처벌하기 위해 사용하는 분류 함수에서 'weights'인수를 사용하십시오.

  4. rpartR ( 예 : R)과 같은 일부 분류 알고리즘에서 'cost'인수를 사용하여 진 양성 및 진 음성의 오 분류에 대한 상대 비용을 정의하십시오. 희귀 클래스의 오 분류에 대해 자연스럽게 높은 비용을 설정해야합니다.

오버 샘플링은 데이터 세트에 의존적 관찰을 도입하고 통계 및 머신 러닝 모두에서 이루어진 독립성에 대한 가정을 위반하므로 오버 샘플링을 선호하지 않습니다.


2

나는 최근 주제에 대한 답변을 주었다 .

우리가하는 일은 다른 비율의 샘플을 선택하는 것입니다. 전술 한 예에서, "예"의 경우 1000 개, 예를 들어 "아니오"의 경우 9000 개일 수있다. 이 접근법은보다 안정적인 모델을 제공합니다. 그러나 실제 샘플 (100 만 행의 샘플)에서 테스트해야합니다.

보다 안정적인 접근 방법을 제공 할뿐만 아니라 리프트와 관련된 조치에 관한 한 일반적으로 모델이 더 좋습니다.

"통계 오버 샘플링"으로 검색 할 수 있으며 첫 번째 결과는 꽤 좋습니다 : http://www.statssa.gov.za/isi2009/ScientificProgramme/IPMS/1621.pdf


1

@Kay의 답변에 추가 첫 번째 솔루션 전략 : SMOTE (Synthetic Minority Oversampling )은 일반적으로 두 경험 사이의 타협을 유발한다고 생각하기 때문에 내 경험에서 샘플링보다 적게 또는 초과하는 것보다 낫습니다. 다변량 예측 변수 공간에 표시된 데이터 점을 사용하여 소수 클래스의 합성 샘플을 작성하고 해당 공간의 인접한 점 사이에 중간 점을 사용하여 새로운 합성 점을 작성하므로 두 클래스 크기의 균형을 맞 춥니 다. (중간 점을 모름, 알고리즘의 세부 사항은 여기

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