📍Model Evaluation이란
모델 평가(Model Evaluation)는 학습된 모델이 얼마나 잘 작동하는지 평가하는 과정
목적 : 모델을 구축하는 과정은 Training Data 를 통한 Fitting 이후 Test Data(Unseen Data) 를 통한 Generalize 을 거친다. 다시 말해, 학습 데이터로 모델을 만들고 이 모델을 테스트하는 과정을 거친다. 테스트 데이터를 더욱 잘 설명하는 모델이 좋은 모델이다. 이를 판단하는 기준은 Error 이다. 실제 값과 예측 값과의 차이를 의미하기 떄문이다. 따라서 Error 가 더 작은 Fit 한 모델을 만들어야 한다
📍과적합 및 과소적합
fit : 모델이 학습 데이터셋에 얼마나 잘 맞는지를 나타내는 척도입니다. 즉, 학습 과정에서 모델이 데이터의 패턴, 구조, 상관관계 등을 얼마나 잘 학습했는지를 의미
과적합 (Overfitting): 모델이 훈련 데이터에 너무 맞춰져 테스트 데이터에 대한 일반화 성능이 떨어지는 경우
과소적합 (Underfitting): 모델이 훈련 데이터와 테스트 데이터 모두에 대해 성능이 좋지 않은 경우.
-> 모델의 복잡도(capacity)가 올라갈수록 Training Error 는 0에 수렴함
📍Evaluation Method
☑️Data Partition
Data 를 Training Data , Validation Data , Test Data 로 분류
1) 훈련 세트 (Training Set): 모델을 학습시키는 데 사용
2) 검증 세트 (Validation Set): 모델의 하이퍼파라미터 튜닝에 사용
3) 테스트 세트 (Test Set): 최종 모델의 성능을 평가하기 위해 사용
->
일반적으로 학습, 검증, 테스트 데이터 셋을 나누는 비율은 정해져 있지는 않지만 ( 데이터 양 적으면 학습/테스트만)
rain dataset vs validation dataset(test)
9:1 , 8:2,7:3, 7:1:2
☑️교차 검증 k-fold Cross Validation
- 데이터를 여러 개의 폴드로 나누어 각 폴드를 번갈아가며 검증 세트로 사용하고 나머지를 훈련 세트로 사용하는 방법입니다
- bias가 생길 가능성이 적음
- 우선 Training Data 와 Test Data 를 나눈다.
- Training Data 을 N등분 한다. 이를 fold 라고 한다.
- 각 fold 를 한번 더 N등분한다.
- N-1 개를 Training Data , 1 개를 Test Data 로 사용한다.
- k-fold 연산 결과 각 fold 는 N-1 번의 Training data , 1 번의 Validation Data 로 사용된다.
☑️Moving Windows
📍Performance Measurement (성능측정 지표)
☑️분류 문제 (Classification)
☑️혼동 행렬 (Confusion Matrix)
분류 문제에서 모델의 성능을 시각적으로 평가할 수 있는 도구
True Positive (TP) : 실제로 P인데, P로 분류된 경우입니다
True Negative (TN) : 실제로 P인데, N으로 분류한 경우
False Positive (FP) : 실제로는 음성인데 양성으로 잘못 분류한 경우 (positive가 아니다)
False Negative (FN): 실제로는 양성인데 음성으로 잘못 분류한 경우 (negative가 아니다)
☑️평가척도
(1) 정확도 (Accuracy): 전체 예측 중에서 맞게 예측한 비율.
- Accuracy = 1 – misclassification rate (오분류율: 라벨과 예측이 다름)
- Accuracy만으로는 성능 평가가 충분하지 않을 수 있음 -> missclassification cost는 달라질 수 있음
(2) Recall(재현율): 실제 Positive 중에서 Positive 으로 예측한 비율 : TP/(TP+FN) -> precision, recall 상반관계
(3) Precision(정밀도) : Positive으로 예측 한 것 중 실제 Positive 비율 : TP/(TP+FP)
(4) Sensitive(민감도) : 실제 Positive 중 Positive으로 예측한 비율
(5)Specificity(특이도) : 실제 Negative 중 Negative으로 예측한 비율
(6) F1 Score ( F1점수) : 정밀도와 재현율의 조화 평균
📍ROC Curve + AUC
☑️ ROC Curve : 모델의 효율성을 민감도(sensitivity), 특이도(specificity)를 이용해 그래프로 나타낸 것
- ROC의 커브가 직각에 가까울수록 좋은 모델
☑️ AUC : ROC 커브와 x축이 이루고 있는 면적의 넓이
- x축 FDR(False Positive Rate)은 틀린 것을 맞았다고 잘못 예측한 수치이고, y축 TPR(True Positive Rate)은 맞은 것을 맞았다고 잘 예측한 수치를 나타냄. 이 커브 곡선으로부터 최적의 threshold를 찾을수도 있음.
- 0과 1 사이의 값을 가지며, 값이 클수록 모델의 성능이 좋음을 의미
AUC = 1 -> 모든 임계값에서 완벽하게 분류되는 완벽한 모델
AUC = 0.5 -> 무작위 분류와 동일한 성능으로 유용하지 않는 모델
AUC < 0.5 -> 모델이 오히려 잘못된 분류를 하고 있음
☑️Threshold (임계값)
- 모델의 예측 결과를 이진화(0 또는 1)하는 데 사용되는 기준 값
- 모델은 각 클래스에 속할 확률을 출력하며, 이 확률이 임계값보다 크면 해당 클래스로 예측하고, 그렇지 않으면 다른 클래스로 예측
- ROC 곡선 또는 PR 곡선을 사용하여 임계값 조정가능
- 대부분의 모델 threshold : 0.5
- threshold > 0.5 : 임계값이 0.5를 넘을때 positive
- threshold < 0.5 : 임계값이 0.5 보다 작을 때negative
- threshold 낮춤 : positive 이라고 예측하는 횟수 증가, FP높아짐 , FN 낮아짐 , precision 낮아짐, recall 증가
📍회귀 문제 (Regression)
평균 제곱 오차(Mean Squared Error, MSE)
- 모델의 예측 값과 실제 값 사이의 차이를 평가하는 데 사용되는 대표적인 손실 함수
- MSE는 예측 값과 실제 값 간의 차이를 제곱하여 평균을 구함으로써 오류를 평가
요약 :
요약하자면, 우리는 분류문제에서 무조건 정확도로만 모델의 성능이 좋고 나쁜지를 평가하는데에는 한계가 있습니다. 그래서 데이터마다의 클래스 분포, 상황에 따라서 다른 지표들과 함께 모델의 성능을 평가해야 합니다. 그 지표로 F1-Score와 ROC AUC를 통해 평가 척도를 검증하는 것.
'인공지능 > 머신러닝' 카테고리의 다른 글
Word Embedding( 단어 임베딩) (0) | 2024.06.15 |
---|---|
Text analysis (0) | 2024.06.14 |
딥 뉴럴 네트워크(Deep Neural Network, DNN) (0) | 2024.06.12 |
KNN 알고리즘 (0) | 2024.06.12 |