[ML]성능 평가

Seok-Hyun Lee·2020년 8월 7일
1

AI

목록 보기
3/3

평가의 중요도

머신러닝은 간단히 말해서 주어진 학습 데이터의 피처와 레이블을 학습하여 새로운 미지의 데이터를 정확히 예측할 수 있도록 하는 기법이라 볼 수 있다.

그리고 이러한 예측 성능에 대한 평가는 머신러닝 알고리즘 모델 또는 데이터 전처리의 개선 필요성에 대한 지표가 되어준다.

그래서 우리가 머신러닝을 공부하면서 꼭 알아야하는 것이 성능 평가이다.

분류 성능 평가

머신러닝에는 크게 지도 학습과 비지도 학습이 있다.
우리가 우선 알아볼 성능 평가는 지도 학습에 속하는 분류에 대한 평가이다.
분류는 주어진 레이블(정답값)을 통해 새롭게 주어지는 데이터에 대한 정답을 예측한다.

평가 지표

정확도(Accuracy)

위의 분류에 대한 정의를 통해 가장 먼저 떠오르는 평가는 무엇일까?
아마 대부분의 사람들이 생각하는 것은 아래와 같을 것이다.

결과가 정확(Accuracy)한가?

정확하다는 것은 예측한 데이터가 얼마나 실제와 일치하였는가를 의미한다.

정확도(Accuracy) = 예측 결과 동일 데이터 수/ 전체 예측 데이터 수

즉, 위와 같이 단지 예측의 성공에만 초점을 맞춘다. 이는 이진 분류에서 문제점을 들어낸다. 특히나, 옳고 그름의 판단 문제에서 옳은 것에 대한 예측을 기대하지만, 답이 아닌 것에 초점이 맞추어진 학습 및 예측이 결과로 나타나도 정확도는 높다고 볼 수 있다. 하지만 이는 절대 유용한 모델이라 볼 수 없다. 즉, 성능이 제로에 가깝다. 이러한 현상은 불균형한 레이블 분포에서 심화된다.

정밀도(Precision)과 재현율(Recall)

이러한 정확도(Accuracy)의 단점을 보완하기 위해 우리는 다른 두 가지의 지표를 알아야 한다. 바로, 정밀도(Precision)과 재현율(Recall)이다.

  • 정밀도(Precision)는 긍정(Positive)적 예측 중 실제 정답으로 맞출 확률이다.
  • 재현율(Recall)은 실제 데이터 속 정답을 의미하는 예측 중 실제로 정답을 맞출 확률이다.

오차 행렬(Confusion Matrix)

위와 같은 정의에 대한 이해와는 별개로 실제로 예측된 결과를 보고 정밀도와 재현율을 파악하기는 쉽지 않다. 그래서 이를 쉽게 파악하기 위해 오차 행렬(Confusion Matrix)을 활용한다.

여기서 눈여결 볼 점은, 예측한 값과 실제 데이터 간의 상관관계를 표현한 것이다.

이 관계를 통해 우리는 쉽게 정밀도와 재현율을 표현할 수 있다.

  • 정밀도(Precision) : TP / ( TP + FP)
  • 재현율(Recall) : TP / ( TP + FN)

참고로, 정확도(Accuracy)의 문제를 오차 행렬을 통한 극단적인 예로 실제 데이터에 긍정적인 정답이 없으면 TN / ( FP + TN ) 이 되고 이는 정확도의 높음과는 별개로 유효하지 못한 모델이 된다.

정밀도와 재현율의 상대성

정밀도와 재현율은 주로 사용되는 업무가 상이하다.

  • 정밀도실제 음성인 데이터 예측을 양성으로 잘못 판단하면 안되는 경우에 중요하다. ex) 스팸 메일
  • 재현율실제 양성인 데이터 예측을 부정적으로 잘못 판단하면 안되는 경우에 중요하다. ex) 암 진단, 금융사기 판별

이러한 정밀도와 재현율의 상호 보완성Precision Recall Tradeoff라 말한다.

임계값

분류를 결정하는 임계값이 낮아질수록 Positive로 예측할 확률이 높아지며 이로 인해 재현율(Recall)이 높아진다.
이와 반대로, 임계값이 높아지면 Positive로 예측할 확률이 줄어들고 정밀도(Precision)이 올라간다.
이는 위의 그래프에서도 확인할 수 있지만 정밀도(Precision)과 재현율(Recall)은 임계값에 대해 상반된 결과를 보여준다.

다음편

다음에는 이 정밀도와 재현율을 활용한 F1 Score 부터 시작해서 ROC곡선과 AUC 등의 방법을 알아볼 것이다.

profile
Arch-ITech

0개의 댓글