1. 머신러닝 모델의 '평가'
- 학습이 완료된 모델이 예측한 값과 실제값이 얼마나 일치하는지를 계산하여 모델의 성능을 판단.
- 이 때 사용하는 데이터는 학습 이전에 미리 분할해 두었던 테스트 셋임.
- 머신러닝의 기법(분류 모델이냐? 회귀 모델이냐? 군집 모델이냐?)에 따라 평가 지표는 달라짐.
2. 분류 모델의 평가 방법
- 분류 모델의 성능을 평가하기 위한 가장 기본적인 방법은 정확도(Accuracy)임.
- 정확도 이외에 재현율, 정밀도, F1 점수 등이 있고, 데이터와 모델이 어디에 사용되느냐에 따라 성능 지표를 제대로 설정해야함.
- 무작정 정확도가 높다고 좋은 모델이 아님.
- 각 성능 지표를 이해하기 위해서 가장 기본이 되는 혼동행렬에 대한 이해가 필요함.
3. 혼동행렬(Confusion Matrix)
- 혼동행렬은 기계가 문제를 푸는 과정에서 얼마나 헷갈려하고 있는지, 혼란(confuse)스러워하고 있는지 정도를 알려줌.
- 객관식 문제를 풀 때, 답이 1번인 것도 같고, 2번인 것 같기도 하고.. 헷갈리는 것 처럼 모델도 혼란스러워하면서 답을 도출함.
- 실제 긍정인 값을 어떤 비율로 긍정으로 맞추고 있는지, 부정으로 틀리고 있는지를 행렬(matrix) 형태로 나타내고 그 값을 확인해보면, 학습 모델의 정확도 뿐만 아니라 전체적인 학습 상태를 확인하는데 유용함.
- 혼동행렬은 분류 알고리즘의 성능을 나타내기 위해 예측값과 실제값이 일치하는지 여부를 행렬로 분류한 표로 나타내기 때문에 ‘오분류표’라고 부르기도 함.
3-1) 혼동행렬의 지표 설명
구분 | 분류값 | 설명 |
예측이 정확한 경우 | True Positive (TP) | 실제로 긍정인데 예측도 긍정으로 함 |
True Negative (TN) | 실제로 부정인데 예측도 부정으로 함 | |
예측이 틀린 경우 | False Positive (FP) | 실제로 부정인데 예측을 긍정으로 함 |
False Negative (FN) | 실제로 부정인데 예측을 긍정으로 함 |
혼동행렬의 각 지표를 이용하여 수식을 생성하여 분류 모델을 다양한 방법으로 평가할 수 있음.
4. 정확도(Accuracy)
- 정확도란 전체 테스트 셋 중 긍정을 긍정으로 예측한 경우와 부정을 부정이라고 예측한 경우가 얼마나 되는지 비율을 계산한 값으로, 얼마만큼 정답을 맞추었는지를 확인할 수 있는 지표임.
- 혼동행렬에서 표현할 수 있는 전체 경우의 수(TP+TN+FP+FN) 중에 정답을 맞춘 경우의 수(TP+TN) 의 비율을 계산
- 일반적으로 분류 모델을 정확도를 사용하여 평가를 진행.
- 학습에 사용한 데이터가 불균형하거나 데이터의 성격에 따라 특이도(Specificity), 재현율(Recall) 등의 다른 지표를 사용하는 것이 효과적일 때도 있음.
5. 재현율(Recall), 민감도(Sensitivity)
- 재현율이란 긍정인 값을 긍정으로 예측한 비율, TPR(True Positive Rate).
재현율(Recall) = 민감도(Sensitivity) = TP / (TP+FN)
- 재현율을 체크해야하는 경우는 데이터 셋이 한쪽으로 쏠려있는데, 거짓 긍정(False positive) 케이스를 낮추는게 중요한 경우임
- 예를 들어서 암 판단 케이스가 있음.
- 암 판단 케이스에서 오답을 내는 사례는 두 가지 케이스임.
- 암인데 정상이라고 하거나, 정상인데 암이라고 하거나...
- 이중에서 더 X되는 케이스는 암인데 정상이라고 하는 케이스임.
- 이런 분야에서는 전체 케이스에 대한 정답률을 보기 보다는 암을 진짜 암이라고 예측한 정답률을 보는 것이 더 중요함.
악성 종양과 양성 종양을 분류하는 문제는 데이터의 중요도 측면 뿐만 아니라 데이터의 분포 측면에서도 정확도가 아닌 다른 지표를 사용할 필요가 있습니다. 실제로 데이터를 보면 양성 종양의 데이터가 악성 종양의 데이터보다 훨씬 더 많이 포함되어 있습니다. 다음 사례와 같이 100개의 데이터 중에 실제로 악성 종양인 데이터는 7%만 존재하는 상황에서 모델의 정확도를 확인해보면 95%로 꽤 좋은 성능의 모델인 것으로 판단됩니다. 실제 악성 종양 7개중 3개만 악성 종양으로 판단할 수 있다면 재현율 값은 50%도 못 미치는 성능을 보이기 때문에, 모델의 성능 개선이 필요하다는 것을 판단할 수 있습니다.
6. 정밀도(Precision)
- 스팸메일 필터링 모델은 암 예측 모델과는 상황이 다름.
- 스팸메일 필터링 시스템의 실패는 스팸 메일을 정상 메일로 판단하는 케이스거나 정상 메일을 스팸함에다가 꽂아넣는 케이스임.
- 이 중 더 끔찍한 것은 정상 메일을 스팸함에 꽂아버려서 중요한 메일을 놓쳐버리게 되는 상황임.
- 이 경우에는 예측의 정확성을 판단하는데 더 중요함.
- 즉 정밀도는 긍정으로 예측한 것 중 실제로 정답(스팸메일)을 얼마나 맞췄는지 보는 지표임
정밀도(Precision) = TP/ (TP+FP)
7. F1 Score
- 머신러닝 모델을 돌리다보면 평가 지표 수치에 매몰되어 점수 높이기에만 집중하게 되기도 함.
- 그러다보면 모델이 이상하게 변하게 되는데, 정밀도와 재현율은 상호 영향을 미치는 지표이기 때문에 균형있게 보는 시각이 필요함.
- 이 두 지표를 균형있게 확인하기 위해서 두 값의 조화평균을 계산한 F1 Score를 함께 사용하는 것이 바람직함
F1 Score(F1) = 2×1/{(1/precision)+(1/recall)}=2×(precision∙recall)/(precision+recall)
'머신러닝' 카테고리의 다른 글
[머신러닝] 분류 알고리즘 한 페이지 정리(로지스틱회귀, SVM, KNN, 결정트리, 앙상블) (0) | 2021.11.30 |
---|---|
[머신러닝] - 문제 정의하기, 지도학습, 비지도학습이란? (1) | 2021.01.26 |
머신러닝이란? - 머신러닝 절차, 머신러닝 프로세스 이해하기 (0) | 2020.10.19 |