Processing math: 100%

AI&ML/Machine Learning

[ML] 03. Evaluation

lallala 2024. 1. 12. 16:17

1. 성능평가척도

0) Confusion Matrix

1) 정확도 Accuracy 

→ 올바르게 예측한 케이스의 비율

Accuracy=TN+TPALL

2) 정밀도 Precision

→ 양성 예측 중 실제 양성 비율

Precision=TPTP+FP

3) 재현율 Recall

실제 양성 중 예측을 맞춘 비율

민감도(Sensitivity), True Positivie Rate(TPR)

Recall(=Sensitivity)=TPTP+FN

 

4) 특이도 Specificity

→ 실제 음성 중 예측을 맞춘 비율

True Negative Rate(TNR)

Specificity=TNTN+FP

 

※) 성능 척도 간의 Trade-off

Precision vs, Recall(Sensitivity)
Sensitivity(Recall) vs. Specificity

 

5) F1-Score

Precision과 Recall의 조화평균

F1=2precisionrecallprecision+recall

6) AUC

Sensitivity(Recall) vs. Specificity

Specificity가 얼마나 감소하면 Sensitivity가 100%가 되는지를 보는 척도 (* sencitivity가 100%인게 더 의미있음)

임계치 조절하여 Specificity 감소(*임계치: 양성과 음성으로 판별하기 위해 예측값을 구분하기 위한 값, 기본값:0.5)

ROC Curve(AUC는 ROC아래 면적 의미)

x축: 1-specificity (specificitiy가 손해본 정도)

y축: sensitivity


2. 오버피팅

→ 주어진 데이터에만 너무 특화되어 새로운 데이터에 대해 성능이 떨어지는 현상

학습데이터 성능은 좋은데 평가데이터 성능 안좋음

Low Bias, High Variance

Low Bias: 학습데이터에 대해서 예측값과 정답값의 차이가 작음

High Variance: 입력값에 따라 예측값이 크게 달라짐(데이터마다 예측이 크게 바뀜)

 

vs. 언더피팅 High Bias, Low Variance

학습데이터 성능과 평가데이터 성능 모두 안좋음

 

Bias 와 Variance는 Trade-off 관계


3. 성능 평가 방법

1) 별도의 테스트 데이터로 성능 측정!

학습데이터 + 테스트데이터

2) 검증데이터에 대해 평가해보며 학습하고, 테스트 데이터로 성능 최종평가!

학습데이터 + 검증데이터 + 테스트데이터

최적화 된 하이퍼파라미터 찾기

한가지 조합에만 특화될 수 있어 → Cross-Validation

학습데이터와 검증 데이터로 나누는 것을 여러번 수행, 각 조합 별 성능 평가를 평균하여 평가하는 방법

   ㄱ. LOOCV(Leave-One-Out Cross Validation): 샘플하나씩 돌아가면서 검증데이터로 사용, 데이터 n개 →n번 실행

   ㄴ. K-fold Cross Validation: k그룹으로 나누고 한 그룹씩 돌아가면서 ~~, k는 보통 5나10

   ㄷ. K-Holdout Cross Validation: k번 성능 평가하되 무작위로 검증데이터 만들어 사용 (중복, 제외될 수 있음)

3) 데이터 너무 없으면 전체데이터에 대해 교차 검증 수행 (검증데이터, 테스트데이터 나눌 여유 없어서)

 

+ 딥러닝은 이미 데이터가 많아서 Cross Validation 안하는 경우 많음

'AI&ML > Machine Learning' 카테고리의 다른 글

[ML] 05. Support Vector Machine(SVM)  (0) 2024.01.12
[ML] 04. Decision Tree  (1) 2024.01.12
[ML] 02. Text Data  (0) 2024.01.12
[ML] 01. Naïve Bayes (나이브베이즈)  (0) 2024.01.07
[ML] 00. Overview  (0) 2024.01.06