본문 바로가기
대학공부/기계학습

Evaluation

by 진진리 2023. 10. 11.
728x90

available data가 전체 domain은 잘 표현하는지, 모델의 성능을 어떻게 평가?

그 외의 신뢰성, 공정성, 윤리성, 안전성의 문제가 존재

원인은 데이터 or 최적화 알고리즘에서 초래됨

 

  • test data set을 가지고 평가하고자 하는 성능을 "Generalization(일반화)"하는 방법
    • 다양한 모델 사용, 특정 모델의 parameter 값에 따라, feature에 따라...
  • 모델의 정확성을 위한 training / test / validation set의 적절한 비율
    • dig data set: 60% / 20% / 20%
    • middle size data set(충분한 양): training 60%, test 40%
    • dataset의 크기가 작을 경우?
      • training set으로 test: generalization 성능 x, overfit 될 가능성이 큼
      • 1) Holdout: available dataset의 일부를 holdout하고 hold된 것으로 test
        • + Stratification: dataset을 나눌 때 균형적으로
      • 2) Repeated holdout: holdout을 random하게 반복, variation이 큼
      • 3) K-fold Cross-validation(CV): repeated holdout을 systemic하게 test sets가 겹치는 것을 피함
        • variation을 줄이기 위해 평균 값으로 모델의 성능을 추정
        • 3-1) stratified cv: variation을 더 줄임
        • 3-2) repeated cv: even better
        • 3-3) leave-one-out cv: 샘플의 수만큼 모델을 만들고 각각에서 사용하지 않은 하나의 샘플들을 모아 test set 생성
    • Bootstrap (= 0.632 bootstrap)
      • n개의 데이터에서 n개를 with replacement로 뽑는 것을 n번 반복
      • n개 중 하나가 뽑히지 않을 확률 e^(-1) = 0.368
      • 뽑힌 것으로 training하면 training set 63.2%, testing 36.8%

 

 

  • Test 성능 평가 지표(Confusion matrix)

  • Accuracy: (TP+TN)/ALL. 전체 samples 중에서 예측이 맞은 것의 개수
    • traing, testing dataset이 balanced해야 의미가 있음.
    • accuracy만으로는 정확한 평가가 불가능하므로 confusion matrix 사용.
  • Precision: TP/(TP+FP). positive라고 판정한 것 중 실제로 positive한 것
  • Recall (=Sensitivity): TP/(TP+FN). 실제로 positive인 것 중 positive라고 판정한 것 <-> Specificity: TN/(FP+TN)
    • precision과 recall은 positive만 고려
  • F-score (=F-measure): precision과 recall의 조화 평균. 두 값의 차이가 많이 날 때 큰 쪽을 더 완화시킴.
    • 0<=f<=1, F = 2 * (precision * recall) / (precision + recall)
    • accuracy와 f-score가 비슷하면 balanced data
    • F-beta measure: 가중치 beta를 precision에 부여
      • F_beta = 1 / (beta * (1/precision) + (1-beta) * (1/recall))

 

 

  • actual predictor vs random predictor
    • 모델의 성능이 random으로 예측한 것 (=baseline)보다 성능이 더 좋아야 함
    • D: 예측이 맞은 것의 개수일 때
    • Kappa statistic = (D_obserbed - D_random) / (total - D_random)
    •  관찰자간의 측정 범주값에 대한 일치도 측정하는 방법

 

 

  • ROC curve
    • 퍼셉트론, MLP 등과 같은 binary classifier는 threshold에 따라 성능, confusion matrix가 바뀜
    • 모델을 어떻게 평가? threshold에 따른 variation을 specificity와 sensitivity 측면으로 고려
    • x축: 1-specificity, y축: sensitivity로 하는 그래프를 ROC curve, 그 밑의 면적을 AUC라고 함
    • AUC = 0.9: positive와 negative를 잘 구별함. 낮을 수록 좋지 못한 모델

 

 

'대학공부 > 기계학습' 카테고리의 다른 글

Deep NN  (0) 2023.10.11
Feature selection, SVM, 앙상블  (0) 2023.10.11
Classification(2)  (0) 2023.10.10
Classification(1)  (0) 2023.10.10
기계학습(ML)이란?  (0) 2023.10.10