[ML] 머신러닝 평가지표, Confusion Matrix/Accuracy/MSE..
모델 성능 평가란?
실제값과 모델이 예측한 값의 오차가 얼마나 작은지 평가하는 것
성능 평가는 실제값이 있어야 평가할 수 있어 지도학습에서 사용
머신러닝의 지도학습은
- 분류
- 회귀
로 나뉜다.
예측하려는 Target이 범주형 데이터이면 분류,
수치형 데이터라면 회귀 문제.
분류냐, 회귀냐에 따라 평가지표가 달라짐
분류, Classification
정확도(accuracy)
정확도는 모델의 예측이 얼마나 정확한지를 의미
계산 방법 : (예측 결과가 동일한 데이터 개수)/(전체 예측 데이터 개수)
- 라벨 불균형인 데이터에서는 사용하면 안됨
오차 행렬 (Confusion Matrix)
오차 행렬은 모델이 예측을 하면서 얼마나 헷갈리고 있는지를 보여주는 지표
- 주로 이진 분류에서 많이 사용
- 참고로 정확도는 (TN + TP) / (TN + FP + FN + TP)로 계산
True Positive는 긍정으로 예측을 했는데 실제로 긍정인 경우
False Positive는 긍정으로 예측했는데 실제로 부정인 경우
False Negative는 부정으로 예측했는데 실제로 긍정인 경우
True Negative는 부정으로 예측했는데 실제로 부정인 경우
정밀도(precision)
예측을 긍정으로 한 데이터 중 실제로 긍정인 비율
TP / (FP + TP)
재현율(recall)
실제로 긍정인 데이터 중 긍정으로 예측한 비율
TP / (FN + TP)
F1-Score
정밀도와 재현율 한 쪽에 치우치지 않고 둘 다 균형을 이루는 것을 나타낸 것
둘의 조화 평균으로 나타낼 수 있음
ROC-AUC
ROC는 FPR(False Positive Rate)가 변할 때 TPR(True Positive Rate)가 어떻게 변하는지를 나타내는 곡선
FPR이란 FP / (FP + TN)
TPR은 TP / (FN + TP)으로 재현율
분류 결정 임계값을 변경함으로써 FPR을 움직일 수 있음
FPR이 0이 되려면 임계값을 1로 설정 -> 그럼 긍정의 기준이 높으니 모두 부정으로 예측될 것
반대로 1이 되려면 임계값을 0으로 설정 -> 모두 긍정으로 예측
이렇게 임계값을 움직이면서 나오는 FPR과 TPR을 각각 x와 y 좌표로 두고 그린 곡선이 ROC
AUC는 ROC 곡선의 넓이를 말한다. AUC가 높을수록 즉, AUC가 왼쪽 위로 휘어질수록 좋은 성능이 나온다고 판단
회귀, Regression
MSE
평균 제곱 오차
RMSE
평균 제곱근 오차
- 작을 수록 좋은 모델
MAE
평균 절대 오차
실제 Target 값과 예측값 차의 절댓값 평균
R-Squared
예측 타깃값의 분산 / 실제 타깃값의 분산
- 다른 지표와 다르게 1에 가까울수록 모델 성능이 좋다
Reference
https://github.com/boost-devs/ai-tech-interview/blob/main/answers/2-machine-learning.md#1