본문 바로가기
인공지능/머신러닝

Model Evaluation

by hihijh826 2024. 6. 9.
728x90
반응형
SMALL

 

📍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가 생길 가능성이 적음 

 

  1. 우선 Training Data  Test Data 를 나눈다.
  2. Training Data 을 N등분 한다. 이를 fold 라고 한다.
  3.  fold 를 한번 더 N등분한다.
  4. N-1 개를 Training Data , 1 개를 Test Data 로 사용한다.
  5. 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는 예측 값과 실제 값 간의 차이를 제곱하여 평균을 구함으로써 오류를 평가

 

e :  예측 값과 실제 값 간의 차이를 제곱

 

 

 

요약 :

요약하자면, 우리는 분류문제에서 무조건 정확도로만 모델의 성능이 좋고 나쁜지를 평가하는데에는 한계가 있습니다. 그래서 데이터마다의 클래스 분포, 상황에 따라서 다른 지표들과 함께 모델의 성능을 평가해야 합니다. 그 지표로 F1-Score와 ROC AUC를 통해 평가 척도를 검증하는 것.

 

 

728x90
반응형
LIST

'인공지능 > 머신러닝' 카테고리의 다른 글

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