2017-11-02 5 views
1

무작위 포리스트 및 지원 벡터 머신에 대해 84 %의 정확도를 제공하지만 13 %의 매우 낮은 auc 만 제공하는 모델을 구축했습니다. 나는 이것을 파이썬으로 만들고 있는데, 나는 기계 학습과 데이터 과학에 익숙하지 않다.왜 모델은 84 %의 높은 정확도를 제공하지만 매우 낮은 AUC 13 %를 제공합니까?

데이터 세트에서 0과 1 개의 라벨을 예측 중입니다. 내 전체 데이터 세트에 30744의 레코드가 있습니다. 레이블 1 - 6930 레이블 0 - 23814

괜찮 으면 조언 해주세요. 모델이 지나치게 적합합니까? auc 개선에 대한 제안을 감사하게 생각하십니까?

답변

3

귀하의 데이터 집합이 언밸런스이며 문제가 될 수 있습니다.

이러한 경우 정확도가 최상의 척도가 아니며 AUC가 교육이 향상 될 수 있음을 나타냅니다. 라고해도 괜찮습니다. ... 더 많은 알 고리를 시도해 보셨습니까? 이 데이터 세트에서 다른 (더 나은) 결과를 들었습니까?

실제로, 내일 일식이 있을지 여부를 예측하는 모델을 상상해보십시오. not-so-random 숲은 단순히 "아니오"라고 말함으로써 매우 높은 정확성을 가질 수 있습니다. 그러나, 전혀 진정한 긍정은 없을 것입니다!

직접적이고 간단한 테스트는 레이블 0과 레이블 1의 동일한 수의 예제를 사용하여 데이터 세트에서 하위 샘플을 선택하는 것입니다. 그러면 정확도가 더 관련있는 측정 항목이됩니다 (현재 84보다 낮을 것입니다). %). 또한 클래스가 균형을 이룰 때까지 일부 Label 1 예제 (결국 작은 임의의 섭동으로)를 복제 할 수 있습니다. 그런데 train/val/test에 대한 데이터 집합의 개별 부분을 유지하고 교차 유효성 검사도 고려해야합니다.

마지막으로 불균형 데이터 세트, 특히 ROSE 및 SMOTE 기술을 다루고 리샘플링을 전반적으로 다루는 것이 좋습니다. 이 유용 할 수 있습니다 :

0

아니, 모델이 잘되지 않습니다. 데이터 세트에서 약 88 %의 레코드가 "레이블 0"에 속하므로 모델 바이어스가 "레이블 0"이됩니다. 따라서 AUC가 낮더라도 대부분의 데이터가 "레이블 0"에 속하기 때문에 84 %의 정확도를 나타냅니다. "Label 0"에 속하는 레코드를 언더 샘플링하거나 "Label 1"에 속한 오버 샘플 레코드는 모델을보다 정확하게 만들 수 있습니다.

는 도움이되기를 바랍니다.