관리 메뉴

너와 나의 스토리

[Data Mining] Ch4. Classification: Basic concepts, Decision trees, and Model evaluation (3) 본문

Data Analysis/Data Mining

[Data Mining] Ch4. Classification: Basic concepts, Decision trees, and Model evaluation (3)

노는게제일좋아! 2020. 4. 15. 19:50
반응형

Model 평가: 어떻게 performance를 신뢰성 있게 추정할 것인가? 

  • 모델의 performance는 알고리즘 외에도 여러 요소에 의해 결정된다.
    • 클래스들에 속하는 데이터들의 분포
    • 잘못 분류한 것에 대한 비용 -> 케이스마다 다름
    • 트레이닝 or 테스트 데이터 셋의 크기(비율)

 

Learning Curve

 

  • 샘플 사이즈가 클수록 정확도가 높아짐
  • Learning curve를 보면서 어느 정도의 샘플 사이즈가 적절한지 판단 가능

 

 

 

 

 

 

 

 

 

추정 방법

  • Holdout
    • 우리가 가지고 있는 데이터의 2/3를 트레이닝 데이터로, 1/3을 테스트 데이터로 사용하는 방법
  • Random subsampling
    • holdout을 반복하는 방법
  • Cross validation
    • 데이터를 k개의 서브셋으로 파티션 -> 각 서브셋에 여러 개의 데이터가 존재
    • k-fold: k-1개의 셋을 가지고 트레이닝하고 나머지 한 개로 테스트함 ex) {1,2,3,4} {5}
    • 즉, k가지 경우의 수가 있음 
    • leave-one-out: k=n   
      • 가지고 있는 데이터가 극히 작을 때 사용
      • 각 서브셋에 한 개의 데이터만 존재
  • Stratified sampling(계층적 샘플링)
    • 랜덤 샘플링의 경우, 밀도가 낮은 곳에서는 적게, 밀도가 높은 곳에서는 많이 뽑히게 된다.
      • 이 경우, 지역마다의 대표성에 문제가 생길 수 있다.
    • oversampling vs undersampling
      • 밀도가 높은 곳에서는 적게 뽑고(undersampling), 밀도가 낮은 곳에서는 많이 뽑는다(oversampling)
      • 지역적인 특징 반영 가능
  • Bootstrap
    • sampling with replacement
      • 샘플링하고 그 데이터를 다시 모집단에 넣음. 다음에 또 같은 값을 뽑을 수도 있게 됨.

 

 

 

모델 비교 방법

ROC (Receiver Operating Characteristic): 이진 분류 시스템의 성능 평가 기법

  • noisy 신호를 분석하여 시그널 탐지하는 이론
  • positive hits(TP)와 false alarms(FP) 사이의 trade-off를 특징 지음
  • 각 분류기의 performance를 ROC curve의 점으로써 나타냄
    • 알고리즘의 threshold 변화, 샘플 분포, cost matrix는 점들의 위치를 바꾼다.

 

ROC Curve

  • 1차원 데이터 셋은 2개의 클래스를 포함한다 (positive and negative)
  • x>t에 위치한 모든 점을 positive로 분류
    • t 이후 빨간 선 부분: TP
    • t 이후 파란선 부분: FP

 

  • 오른쪽 그래프에서 가장 이상적인 그래프는, 오른쪽 그림에서 빨간 선 같은 모양
  • 가장 안 좋은 그래프는, 오른쪽 그림에서 파란 선같은 모양

 

 

 

 

 

ROC 사용해서 모델 비교 

 

 

  • 선 아래 면적으로 비교
  • M1과 M2는 아래 면적이 비슷해서 비교하기 힘들다.

 

 

 

 

 

 

 

 

 

 


How to construct an ROC curve

  • x축: FP 비율 = $\frac{FP}{FP+TN}$
  • y축: = $\frac{TP}{TP+FN}$
  • TRUE: 정답, 제대로 분류했다.
  • Positive /  Negative: positive 또는 negative로 분류했다.
    • TP: positive라고 분류했으며 맞다!

  • 예, Threshold가 0.95라면, 이 값을 포함한 오른쪽 범위는 모두 positive로 분류, 왼쪽은 모두 negative로 분류
    • 그렇다면 실제 class가 -(negative)인 것들은 TN가 됨. (정답이 negative인데 negative로 골랐으니까) -> 5개
    • 반대로 실제 class가 +(positive)인 것들은 FP가 됨 => 0개
  • X축: FPR = $\frac{\sum{False Positive}}{\sum{정답이 false인 개수}}$
  • Y축: TPR = $\frac{\sum{True Positive}}{\sum{정답이 true인 개수}}$
  • 예,
    • Threshold가 0.25일 때,
      • FPR = 5/5 =1, FPR = 5/5 =1  -> (FPR,TPR)=(1,1)
    • Threshold가 0.43일 때,
      • FPR = 4/4 =1, TPR = 5/6 = 0.83 (FPR,TPR)=(1,0.83)

 

 

 

 

 

 

반응형
Comments