머신러닝 모형의 성능 평가 방법은 모형의 특징과 비즈니스 문제에 따라 달라질 수 있다. 특히, 지도학습 모형의 경우 크게 분류 모형을 위한 평가 지표와 수치 예측 모형을 위한 평가 지표로 구분해서 사용해야 한다.
1) 분류 모형 평가 지표
지도학습 모형에서 분류 목적의 머신러닝 모형은 오차 행렬 (Confusion Matrix)을 기반으로 정확도, 정밀도, 재현율, F1 스코어 등의 지표를 계산하여 성능을 평가할 수 있다. 오차 행렬이란 아래와 같이 실제 결과와 분류 모형이 예측한 결과를 축으로 하여 정분류/오분류의 현황을 표로 나타낸 것이다.
예측 결과 | |||
양성 (True) | 음성 (False) | ||
실제 결과 | 양성 (True) | 참 양성 (True Positive, TP) |
거짓 음성 (False Negative, FN) |
음성 (False) | 거짓 양성 (False Positive, FP) |
참 음성 (True Negative, TN) |
[표 1] 오차 행렬
- 참 양성 (True Positive, TP): 실제 양성을 양성이라고 분류한 경우
- 참 음성 (True Negative, TN): 실제 음성을 음성이라고 분류한 경우
- 거짓 양성 (False Positive, FP): 실제 음성을 양성이라고 분류한 경우
- 거짓 음성 (False Negative, FN): 실제 양성을 음성이라고 분류한 경우
이러한 4가지 분류 결과값을 바탕으로 정확도, 정밀도, 재현율, F1 스코어 등을 계산할 수 있다.
정확도
정확도 (Accuracy)란 모형이 전체 데이터를 얼마나 정확하게 분류하는가를 나타내는 평가지표로서 다음과 같이 정의할 수 있다.
즉, 정확도는 전체에서 양성과 음성에 대해 정확하게 분류된 비율의 합이므로 모형의 성능을 직관적으로 판단할 수 있는 지표이다. 분류 문제에서는 무작위로 분류했을 때의 성능을 최저 성능이라고 할 수 있으므로 2개의 클래스를 분류하는 이진 분류 문제에서는 무작위 추출의 정확도가 50%가 될 것이다. 따라서, 이진 분류의 경우 머신러닝 모형의 정확도가 최소 50% 이상이어야 유의미한 모형이라고 할 수 있다.
예측 결과 | |||
양성 (True) | 음성 (False) | ||
실제 결과 | 양성 (True) | 10 | 10 |
음성 (False) | 20 | 60 |
[표 2] 고객이탈 예측 오차 행렬 예시
이 오차 행렬표를 기반으로 정확도를 계산하면 다음과 같다.
이 모형의 정확도는 70%라고 할 수 있으며, 무작위로 이탈을 예측할 경우의 기대 성능 50%보다 높기 때문에 유의미한 분류 모형이라고 할 수 있다.
정밀도와 재현율
정확도가 70%인 모형을 실제 이탈예측 문제에 적용하는 것이 바람직할까? 보통 이탈예측 이진 분류 문제에서 관심을 두는 부분은 이탈할 고객을 예측하는 데 있으므로 음성 (False)에 대한 분류 정확도보다는 양성 (True)에 대한 순수한 분류 정확도가 더 중요할 것이다. 따라서, 양성과 음성을 모두 포함한 정확도보다는 문제에서 관심을 갖는 양성 혹은 음성에 초점을 맞춘 모형 평가 지표가 필요하다. 이를 위해 정밀도 (Precision)와 재현율 (Recall)이라는 평가 지표를 고려해야 한다.
정밀도는 모형이 양성(혹은 음성)으로 예측한 것 중 실제 양성(혹은 음성)이 얼마나 되는지를 판단하는 지표이다. 즉, 분류 모형이 이탈고객으로 분류한 고객 중 실제로 이탈한 고객의 비율이다. 상기 예시에서 양성에 대한 정밀도를 측정하면,
즉, 33% 밖에 되지 않는다. 따라서 이 모형은 양성과 음성을 모두 고려했을 때 정확도가 70%로 우수한 분류성능을 나타내지만, 정작 이탈고객을 찾는데는 2/3가 분류 실패로 나타나기 때문에 정밀도 측면에서 그리 우수한 모형이라고 할 수 없다.
한편, 재현율은 실제 양성(혹은 음성) 데이터 중에서 모형이 양성(혹은 음성)으로 분류한 비율을 나타내는 지표이며, 민감도 (Sensitivity)라고 표현하기도 한다. 상기 예시에서 재현율은,
즉, 재현율은 50%로서 이 모형은 실제 이탈고객 중 50%를 사전에 예측할 수 있다고 해석할 수 있다.
정밀도와 재현율은 모형의 실질적인 성능을 평가하는 주요 지표이지만, 두 지표 간에는 어느 정도 상충관계 (Trade-Off Relationship)가 존재한다. 즉, 정밀도가 높아지면 재현율은 낮아지고, 반대로 재현율이 높아지면 정밀도는 낮아지는 패턴을 보인다. 다양한 모형을 개발하여 가급적 두 지표가 모두 높은 모형을 선택해야 하는 것은 당연하지만, 비즈니스 문제와 목적에 따라 그 중요도는 달라진다. 오분류가 야기하는 비용(위험)과 정분류를 통해 창출되는 이익(효과)을 비교하여 무엇이 더 큰지 판단하는 것이 도움이 될 수 있다.
F1 스코어
F1 스코어 (F1-Score)는 정밀도와 재현율이 갖는 상충관계를 고려하여 두 가지 지표를 모두 반영한 모형성능 평가지표로서 다음과 같이 정의할 수 있다.
즉, F1 스코어는 정밀도와 재현율을 조화 평균한 값으로서, 재현율과 정밀도가 균형을 이룰 때 F1 스코어가 높아진다. 따라서 F1 스코어가 높다는 것은 재현율과 정밀도가 고르게 높다는 의미로 해석할 수 있다. 이 공식을 이용하여 상기 사례의 F1 스코어를 계산해보면 0.4가 나온다.
앞서 설명한 바와 같이 정밀도와 재현율은 상충관계에 있고, 비즈니스 문제와 목적에 따라 그 중요도가 달라질 수 있으므로 모형의 평가 기준은 상황에 따라 달라질 수 있다. 즉, 정밀도와 재현율에 대한 중요도를 달리하여 가중치를 조정함으로써 F1 스코어를 계산할 수 있다. 가중치가 적용되는 F1 스코어의 공식은 다음과 같다.
여기에서 가 0<β<1 이면 는 0.5보다 큰 값을 갖게 되어 정밀도에 더 큰 가중치를 부여하게 되고, β>1 이면 는 0.5보다 작은 값을 갖게 되어 재현율에 더 큰 가중치를 부여하게 된다. 그리고 β=1 일 때, 값은 0.5가 되므로 정밀도와 재현율에 부여하는 가중치가 같게 된다. 따라서, 상기 예제에 대해 값이 각각 0.5와 2일 때 계산되는 F1 스코어는 다음과 같다.
ROC 곡선
앞서 설명한 모형평가 지표 외에도 ROC 곡선 (Receiver Operating Characteristic Curve)과 같은 시각적인 그래프를 통해 모형의 성능을 평가할 수 있다. ROC 곡선은 모형의 분류 임계값 (Classification Thresholds)에 따라 참 양성 비율 (True Positive Rate)과 거짓 양성 비율 (False Positive Rate)이 어떻게 변하는지를 2차원적으로 보여주는 그래프이다.
[그림 1] ROC 곡선
분류를 위한 머신러닝 모형은 대개 양성일 확률을 0~1까지의 값으로 표현해주고, 특정 경계값 (Cut-Off) 이상일 경우 양성이라고 판단한다. 분류 임계값이 높을수록 거짓 양성 비율에 비해 참 양성 비율이 높아지고, 분류 임계값이 낮아질수록 거짓 양성 비율의 증가율이 높아지므로 상기와 같은 곡선 모형을 띄게 된다. 따라서 ROC 곡선을 보면 어느 수준에서 최적의 분류 임계값을 결정할 수 있을지 판단할 수 있게 된다.
위 그림에서 원점(0,0)과 점(1,1)을 연결하는 대각선은 무작위로 분류했을 경우의 참 양성 비율과 거짓 양성 비율 간의 비율선이므로 모형 성능을 판단하는 최소 기준선이라고 할 수 있다. 따라서 모형의 ROC 곡선이 기준선보다 위쪽으로 볼록하게 형성될 때 해당 모형이 유의하다고 할 수 있다. 여기에서 ROC 곡선 아래의 면적을 AUC (Area Under The Curve)라고 하는데, 기준선의 AUC는 0.5이기 때문에 모형의 ROC 곡선의 AUC 값은 최소 0.5 이상이어야 하고, 1에 가까운 값을 가질 때 우수한 성능을 가진 모형이라고 판단한다.
2) 수치 예측 모형 성능 평가
분류 모형의 성능은 대부분 올바른 분류와 잘못된 분류에 대한 경우의 수를 기준으로 일종의 비율값을 추출해서 평가했다. 그러나 수치 예측 모형의 경우는 분류 빈도를 측정할 수 없으므로 주로 예측된 수치값에 대한 오차를 계산하여 성능을 평가한다. 이러한 오차 기반의 성능 평가 지표로는 평균제곱오차 (Mean Squared Error, MSE)나 평균제곱근오차 (Root Mean Squared Error, RMSE), 그리고 결정계수 (Coefficient of Determination, R^2)가 있다.
평균 제곱 오차와 평균 제곱근 오차
수치 예측 모형의 성능을 평가하는 평균제곱오차(이하 MSE)는 오차의 제곱에 평균을 취한 값이고, 평균제곱근오차(이하 RMSE)는 MSE의 제곱근 값이다. 따라서, 이들은 모두 모형의 예측 오차 수준을 의미하므로 값이 작을수록 추정의 정확성이 높다고 해석할 수 있다.
위 식에서 y는 데이터의 실제값이고, y^은 모형의 예측값이다. MSE는 모형의 예측값과 데이터의 실제값 사이의 평균적 차이를 나타내는데, 종종 이 값이 너무 커서 연산 속도가 느려지는 것을 방지하거나 해석의 용이함을 위해 MSE에 제곱근을 씌운 RMSE를 사용하기도 한다.
결정계수
상기 MSE와 RMSE는 수치 예측 모형의 성능을 잘 표현해주지만, 예측하는 수치의 측정 단위에 영향을 받기 때문에 해당 수치의 척도를 잘 알고 있지 못하면 그 값이 어느 정도의 오차 수준을 나타내는지 직관적으로 이해하기 어려울 때가 있다. 결정계수(이하 R^2)는 이러한 MSE와 RMSE의 단점을 보완할 수 있도록 수치의 측정 단위와 상관없이 0에서 1 사이의 값을 가질 수 있는 모형의 성능 평가지표이다.
위 식에서 y는 데이터의 실제값이고, y^은 모형의 예측값, y-는 실제값의 평균이다. 즉, 일반적인 통계분석에서 모형의 설명력을 의미하는 R^2와 동일한 것으로 생각해도 된다. 수치 예측 모형의 성능을 평가하는 R^2는 단순히 평균값을 출력하는 무작위 예측 모형에 비해 성능이 얼마나 더 우수한지를 나타낸다. 모형이 예측한 값은 오차를 포함하므로 실제값과 예측값의 차이가 크지 않을수록 분자가 0에 가까워지면서 R^2는 1에 가까워진다. 따라서 R^2가 1에 가까울수록 성능이 좋은 모형이라고 판단할 수 있다.
This post was written based on what I read and studied the book below.
http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9791195511747
댓글