QA

머신러닝 분류 모델 성능 평가 지표

minzihun 2023. 3. 27. 04:37

 요즘 인턴하는 회사에서 신사업 외주 맡긴 건을 맡아서 성능 분석하고 있다. 합의하의 시나리오를 짜서 외주 모델을 검증하고 있는데 간만에 본 SPO님한테 한 요청이왔다. 나는 항상 분석을 해서 주마다 해당 개발팀장님에게 넘겨주었는데, 팀장님이 내가 준 자료를 그대로 들고가서 회의에 참가했다고 한다. 헌데 비지니스 그룹에선 이해하기 힘들다는 이야기였다. 그래서 SPO님이 먼저 해당 신사업 진행을 결정 할 수 있는 숫자를 요청했다. 그때 머신러닝 시간때 배운 평가 지표가 생각나서 작성해서 드렸다. 작성하면서, 한 번 기록해놓으면 나중에 찾아볼 때 좋을 것 같아 이렇게 글을 적는다.

 

Confusion Matrix Actual
1 0
Expected 1 True Positive False Positive
0 False Negative True Negative

 먼저, 위와 같은 Confusion Matrix를 구해놔야 평가지표를 쉽게 구할 수 있다.

  - True Positive : 모델이 예측한 값은 true인 데, 실제 데이터도 true인 경우 (예측 O)

  - False Positive : 모델이 예측한 값은 true인 데, 실제 데이터는 false인 경우

  - False Negative : 모델이 예측한 값은 false인 데, 실제 데이터는 true인 경우

  - True Negative : 모델이 예측한 값은 false인 데, 실제 데이터는 false인 경우 (예측 O)

 

: 모델이 전체 문제 중에서 정답을 맞춘 비율이다. 즉, 전체 예측한 것 들 중 정답을 맞힌 true의 비율이다. 실제 데이터에 negative가 많아서 positive를 맞췄는지 여부와는 상관없이 정확도가 올라 갈 가능성이 존재한다. 이를 Accuracy Paradox(정확도 역설)라고 한다. 이때 희박한 가능성으로 발생할 상황에 대해서는 recall 값을 보고 판단하면 된다.

 

정밀도 = Positive Predictive Value

: 예측한 것 중에 정답의 비율은? 모델이 positive라고 예측한 것들 중에서 실제로 정답이 positive인 비율이다. recall과 반대 개념으로 precision을 이용할 수 있다. 하지만 둘만으로 알고리즘 성능 표현이 부족해서 생긴 것이 F1 score이다.

 

재현율 = Sensitivity = True Positive rate

: 찾아야 할 것중에 실제로 찾은 비율은? 실제로 정답이 positive인 것들 중에서 모델이 positive라고 예측한 비율이다. Accuracy는 낮지만 recall 값만 높은 경우는 precision 값을 통해 알고리즘에 결함이 있음을 판단해야한다.

 

Precision과 Recall의 조화 평균

: 산술평균을 쓰지 않고, 조화 평균을 쓰는 이유는 recall과 precision 둘 중 하나가 0에 가깝게 낮을 때 지표에 그것이 잘 반영되도록 하기 위함이다.

'QA' 카테고리의 다른 글

API testing guidelines  (0) 2023.04.05
Smoke Testing vs Regression Testing  (0) 2023.04.03
Production Environments  (0) 2023.03.28
JMeter를 알아보자!  (0) 2023.02.07
[스압주의] QA 톺아보기 (+WEST program)  (0) 2022.12.31