데이터사이언스/Google Advanced Data Analytics

[머신러닝] 분류 모델의 평가 지표 개념 정리 | Accuracy, Precision, Recall, ROC 곡선, AUC, F1점수, F베타점수

누군가의 이야기 2023. 5. 31. 15:38
728x90

 

- 본 포스팅은 'Google Advanced Data Analytics Professional Certificate' 과정을 수강하며 요약/정리하기 위한 포스팅입니다.

 

R2, MSE(mean squared error), RMSE(root mean squared error), MAE(mean absolute error) 등의 평가지표는 연속형 변수의 예측 모델의 평가 지표로 쓰인다.

 

분류모델은 예측 모델과 평가 기준이 같을 수 없다.

 

 

 

예측 모델은 주로 예측값과 실제값의 잔차를 비교하여 평가한다.

 

 

 

로지스틱회귀와 같은 경우, 예측 가능한 값이 2개(0,1)이기 때문에 확률을 예측하고,

 

확률을 기반으로 예측값을 할당하기 때문에 잔차를 이용한 평가를 할 수 없다.

 

Confusion Matrix

사용하는 모델에 따라 적합한 평가지표가 있고,

 

Confusion Matrix에 기반한 분류모델에 적합한 평가지표를 알아보고자 한다.

 

 

1. Accuracy(정확도)

정확도는 정확하게 예측된 비율을 의미한다. 

정확도는 데이터에 클래스 불균형이 있을 때 사용하기에 적합하지 않은 경우가 많다.

 

모형이 매번 대부분의 클래스를 예측하여 높은 정확도를 가질 수 있기 때문이다.

 

이 경우 평가 지표는 좋으나 유용한 모형은 아닐 수 있다.

 

2. Precision(정밀도)

정밀도는 양성으로 예측한 것중 실제 양성인 것의 비율을 의미한다.

정밀도는 false positives을 방지하는 것이 중요한 경우에 사용하는 좋은 측정 기준이다. 

 

example)

if your model is designed to initially screen out ineligible loan applicants before a human review, then it’s best to err on the side of caution and not automatically disqualify people before a person can review the case more carefully.

 

3. Recall

Recall은 실제로 양성인 값들 중 올바르게 예측한 비율을 의미한다.

 

Recall은 가능한 한 많은 True 응답자를 식별하는 것이 중요할 때 사용하기 좋은 측정 기준이다.

 

example)

If your model is identifying poisonous mushrooms, it’s better to identify all of the true occurrences of poisonous mushrooms, even if that means making a few more false positive predictions.

 

4. ROC curves(Receiver operating characteristic)

 

ROC 곡선은 서로 다른 분류 임계값에서 분류기의 성능을 시각화한다.

 

이진 분류에서, 분류 임계값(classification threshold )은 양의 클래스와 음의 클래스를 구별하기 위한 cutoff이다.

 

scikit-learn을 포함한 대부분의 모델링 라이브러리에서 기본 확률 임계값은 0.5이지만,

(예: 표본의 예측 반응 확률이 µ 0.5인 경우 "긍정적"으로 표시됨)

 

0.5가 최적의 결정 임계값이 아닌 경우도 있기 때문에 주의해야 한다.

 

가장 적합한 임계값이 무엇인지 항상 먼저 알 수는 없으므로

 

ROC 곡선을 이용하여 전체 임계값 범위에서 모형이 얼마나 우수한지 확인하는 것이 타당한 방안이다.

 

곡선은 false positive의 비율에 대한 true positive의 비율의 그림으로 표시된다.

 

 

1. True Positive Rate(=Recall): 실제로 참인 값 중에 참으로 예측할 비율

2. False Positive Rate: 실제로 거짓인 값 중에 참으로 예측할 비율

 

 

ROC 곡선의 각 점에 대해 수평 및 수직 좌표는 false positive의 비율과 해당 임계값의 true positive의 비율을 나타낸다.

 

ROC 곡선

 

false positive 비율과 true positive 비율은 서로 다른 임계값에 걸쳐 함께 변경된다.

 

이상적인 모델의 곡선은 어떻게 생겼을까?

 

이상적인 모델은 모든 부정과 모든 긍정을 완벽하게 구분하고,

 

모든 실제 긍정 사례에 매우 높은 확률과 모든 실제 부정 사례에 매우 낮은 확률을 제공한다.

 

0.001의 바로 위 임계값에서 시작한다고 가정해보면,

이 경우 모든 실제 긍정이 포착될 가능성이 높고,

 

모형에 "negative"라는 레이블을 붙이려면 예측 확률이 0.001 미만이어야 하기 때문에 거짓 부정이 거의 없다.

참 양의 비율은 ≈ 1이고 거짓 양의 비율은 ≈ 0이다 (위 공식 참조).

-> 그래프에서 ROC 곡선이 그래프의 왼쪽 위 모서리를 많이 차지할수록 모형이 데이터를 더 잘 분류할 수 있다.

 

5. AUC

AUC는 ROC 곡선 아래의 2차원 영역(면적)을 측정한 것이다.

 

AUC는 가능한 모든 분류 임계값에 걸쳐 성능을 종합적으로 측정한다.

 

AUC를 해석하는 한 가지 방법은,

모형이 랜덤 양의 표본을 랜덤 음의 표본보다 더 높게 순위를 매길 확률로 간주하는 것이다.

 

AUC ranges in value from 0.0 to 1.0. In the following example.

AUC

 

6. F1 score

F1 점수는 정밀도와 recall을 하나의 표현식으로 결합하여 각각의 중요도를 동일하게 부여하는 측정값이다.

 

계산은 다음과 같다. (조화평균)

 

[0, 1] 범위를 갖고, 0이 최악, 1이 가장 좋은 수치이다.

 

The idea behind this metric is that it penalizes low values of either metric, which prevents one very strong factor—precision or recall—from “carrying” the other, when it is weaker.

 

F1점수는 절대 평균을 넘지 못한다. 정확도가 recall과 같은 경우에만 평균과 같아진다.

 

한 점수가 다른 점수와 차이가 날수록 F1 점수는 더 많은 패널티를 받는다.

(Note that you could swap precision and recall values in this experiment and the scores would be the same.) 

 

Plotting the means and F1 scores for all values of precision against all values of recall results in two planes.

 

While the coordinate plane of the mean is flat, the plane of the F1 score is pulled further downward the more one score diverges from the other. This penalizing effect makes F1 score a useful measurement of model performance.

 

7. F𝛽 score

정확도와 리콜을 하나의 측정 기준으로 모두 파악하고 싶지만, 하나가 다른 측정 기준보다 더 중요하다고 생각한다면 어떻게 해야할까? 

 

그럴 때 F𝛽 (F-beta) 점수를 사용한다.

 

𝛽은 Recall이 정밀도에 비해 몇 배나 더 중요한지를 나타내는 인자입니다.

 

F1 score의 경우, 𝛽 = 1이고, recall은 정밀도에 비해 1배 중요하다는 의미이다. (동일하게 중요하다는 의미)

 

그러나 F2 score에서 𝛽 = 2일 때, recall이 정밀도에 비해 2배 중요하다는 의미이다.

-> 정밀도가 2배 중요하다면, 𝛽 = 0.5가 된다.

 

 

참고자료

728x90