머신러닝 평가 



크게 보았을 때,

머신러닝의 과정 : 데이터 가공 / 변환 -> 모델 학습 / 예측 -> 평가




머신러닝 모델은 회귀와 분류로 나뉘어지는데, 



회귀는 주로 실제 값과 예측 값의 오차 평균값에 기반하여 평가가 이루어진다. 

분류는 우리가 직관적으로 알 수 있는 정확도(맞은 예측의 수 / 전체 예측의 수)로 평가하기도 하지만, 
정확도보다는 다른 평가 지표를 사용하는 경우가 더 많다. 

 


분류의 성능 평가 지표에는 



- 정확도(Accuracy)
- 오차행렬(Confusion Matrix)
- 정밀도(Precision) 
- 재현율(Recall)
- F1 스코어
- ROC AUC





분류에는 2개의 결괏값을 가지는 이진분류와 다수의 결괏값을 가지는 멀티분류가 있는데, 
위의 여섯가지 성능 측정 지표는 이진 분류에 더 중요하게 사용되는 지표이다. 


 

 

 

정확도

 



정확도는 우리가 직관적으로 이해할 수 있고, 머신러닝 뿐만 아니라 실생활에서 가장 많이 사용하는 평가 지표이므로,
설명은 간략하게 하고, 어떤 경우에 머신러닝에서 정확도가 지표로 사용되는 것이 부적절한지에 대해서 알아볼 것이다 .

 

일단 정확도는 위에서 언급한 것 처럼 (맞은 예측의 수 / 전체 예측의 수)로 나타낼 수 있다. 
하지만,  데이터의 결괏값이 매우 불균형한 경우들에 머신러닝을 적용하는 경우에 정확도는 해당 모델의 성능을 평가하는데 부적절하다. 


ex > 
거래 내역을 통해서 금융 사기를 예측해야 하는 경우, 일반 거래보다, 금융 사기 예측의 사례수가 
현저하게 적을 것이다. 만약에 알고리즘이 금융사기, 일반 거래 2개로 분류해야 하는 경우, 전부 일반 거래로 예측을 한다면, 정확도는 매우 높을 것이다. 하지만, 이 알고리즘은 문제를 해결하는데(금융 사기 예측)에는 전혀 도움이 되지 않는다. 

 



정확도가 나타낼 수 없는 성능의 지표를 나타내기 위해서 정밀도(Precision)와 재현율(Recall)이 등장했고, 
이를 정확하게 이해하기 위해서는 오차 행렬(Confusion Matrix)를 알아야 한다. 

 

 

 

오차행렬

 



오차 행렬은 TN, FP, FN, TP를 통해서 모델의 예측과 해당 예측이 맞았는지를 분류하여 평가한다. 

 



앞글자에 있는 T와 F는 True와 False를 의미하며, 해당 예측(뒷 글자)가 맞았는지 틀렸는지를 표현한다. 

뒷글자의 N과 P는 Negative와 Positive를 의미하며, 모델이 예측한 값을 표현한다.



따라서,


TN = TrueNegative(옳은 부정) : 모델이 Negative라고 예측했으며, 해당 예측이 맞은 것 

FP = FalsePositive(틀린 긍정)   : 모델이 Positive라고 예측했으며, 해당 예측이 틀린 것

FN = FalseNegative(틀린 부정) : 모델이 Negative라고 예측했으며, 해당 예측이 틀린 것 


TP = TruePositive(옳은 긍정)   : 모델이 Positive라고 예측했으며, 해당 예측이 맞은 것

 

이미지 출처 : https://rueki.tistory.com/66

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기