모델의 성능 평가
모델을 설계하고 학습하는 이유: 목적을 달성하기 위해.
모델이 의도대로 학습되어 목적을 달성하기 합당한지 판단하기 위해 모델평가를 진행한다.
Metric : 데이터 셋에 대해 모델의 성능을 평가하는 지표
- Cost, Error - Cost function의 출력값. 모델과 데이터 셋 사이의 cost function을 계산한다.
- Accurary - 데이터 셋의 전체 샘플 중 모델이 정답을 맞춘 비율
- Precision and Recall - 이진 분류 모델의 Ture Posotive, False Positive, True Negative, False Negative 비율로 계산
- Precision - 모델이 positive라고 예측한 샘플 중 실제 positive의 비율(TP / (TP+FP)) : 다 찾지 못하더라도 예측한 Positive에 오차가 없어야 할 때
- Recall - 데이터셋의 전체 Positive 샘플 중 모델이 Positive라고 예측한 비율(TP / (TP+FN)) : 부정확 하더라도 모든 Positive를 걸러야 할 때
- Precision과 Recall의 트레이드 오프
Threshold(문턱값, 임계값)을 조정하여 모델의 결정경계를 이동 시킬 수 있다.
Threshold가 높으면 Precision이 올라가고 Recall이 내려간다.
Threshold가 낮으면 Precision이 내려가고 Recall이 올라간다. - F1 score - Precision과 Recall 점수를 동시에 고려해서 성능 평가를 할 경우 F1 score를 사용.
Precision과 Recall의 트레이드 오프가 일어나도 F1 score는 그대로다.
F1 score = (2 * Precision * Recall) / (Precision + Recall) : Precision과 Recall의 조화 평균
- train set/validation set/test set
- train set: 모델 학습에 직접적으로 사용
- validation set: 모델 학습 과정에서 만들어낸 많은 가설 집합중 가장 성능이 좋은 것을 찾기위해 사용
- test set: 모델의 최종 성능 측정을 위해 사용
각각의 데이터셋은 최대한 같은 데이터 분포를 가져야 한다. 전체 데이터셋중 편향된 분포를 사용할 경우 학습에 사용한 데이터 분포와 테스트하는 데이터 분포가 동떨어져 있어 제대로 평가할 수 없다.
최종 성능 평가
Cross Validation
- Holdout cross validation: train set/validation set/test set을 나누고 데이터셋을 고정한다. 최종 모델의 결정은 validation set만을 이용하며 최종 모델은 test set을 이용해 평가한다
- K-fold cross validation: train set을 K개의 ford로 나누고 각 fold를 한번씩 test set으로 이용하여 테스트하고 그 평균으로 모델을 평가한다. 데이터 셋이 작을 때 주로 이용.
Bias: 데이터의 모든 정보를 고려하지 않음으로 인해 지속적으로 잘못된 것을 학습하는 경향(Under Fitting)
Variance: 데이터의 에러나 노이즈까지 학습하여 살제로는 관계 없는 것까지 학습하는 경향(Over Fittng)
High Bias
- 적은 train setㅇ 대해 빠르게 성능이 수렴한다.
- 높은 예러
- 데이터를 추가해도 개선되지 않는다.
High Variance
- Validation cost와 Training cost의 차이가 크다
- 데이터를 추가하여 성능 개선 가능성 있음