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 |