문서 최신화를 위해서 변경된 부분 또는 수정할 부분이 발견되면 발견자가 꼭! 수정해주시기 바랍니다. !!!
모델 성능 평가
Evaluation
모델 성능 평가 지표
이진 분류
평가 기준
이진 분류에서 성능 지표로 잘 활용되는 오차행렬 사용
평가 지표
입력 값
P : 전체 참인 수
N : 전체 거짓인 수
TP (True Positive) : 참을 참이라고 한 횟수
TN (True Negative) : 거짓을 거짓이라고 한 횟수
FN (False Negative) : 참을 거짓이라고 한 횟수
FP (False Positive) : 거짓을 참이라고 한 횟수
계산식
Accuracy : 정확도, 제대로 분류된 데이터의 비율
Error Rate : 오류율, 잘못 분류한 데이터의 비율
Precision : 정밀도, 예측한 정답 중 실제 정답인 것
모델 관점
sensitivity : 재현율, 실제 정답 중 예측에 성공한 것
데이터 관점
참인 정답이 적을 때 유효
specificity : 거짓 항목에서의 정확도
F1-Score : Precision과 Recall의 조화평균,
recall과 precision의 조화 평균
Geometric Mean : 균형 정확도
참에 대한 정확도와, 거짓에 대한 정확도를 따로 분류해 기하 평균을 구함
다항 분류
평가 기준
True Positive
True Negative for A
True Negative for D
False Positive for A
False Positive for B
False Negative for A
Accuracy (정확도)
True positive / total dataset
In balanced data
In imbalanced data
Accuracy works well on balanced data
Precision
각 클래스별 Precision의 평균
Recall
각 클래스별 Recall의 평균
F1 Score
이진 분류와 다항 분류에서의 평가
위와 같은 다항 분류 모델이 있다고 했을 때 A를 Positive로, 나머지를 Negative로 본다면 사실상 다항 분류도 이항 분류처럼 계산할 수 있고 실제로 각 항목에 대한 지수를 계산할 때 해당 항목을 제외한 나머지를 Negative로 보고 계산을 한 뒤 모든 항목에 대한 지수를 더해 행목 수로 나눔으로 써 평균치를 구한다.
반대로 위와 같은 이항 분류 모델이 있다고 했을 때 A와 B를 Positive와 Negative가 아닌 각각의 항목으로 보고 항목이 두 개인 다항 분류 모델로 판단한다면 평가 지표 프로젝트를 진행함에 있어서 이항 분류 모델 평가 지표와 다항 분류 모델 평가 지표를 나눠서 구현할 필요가 없다고 생각했다.
그러나 모든 항목에 대해서 계산하는 Accuracy 에서는 같은 값이 나왔으나, 하나의 항목을 Positive로 보고 지수를 계산하는 이항 분류 평가와 달리 다항 분류 평가에서는 각 항목에 대한 지수를 계산한 뒤 평균을 내기 때문에 두 값이 달라진다.
Binary classification
Accuracy 0.9230769230769231
Precision 0.9
Specificity 0.9375
Sensitivity 0.9
F1 score 0.8999999999999999
Multinomial classification
Accuracy 0.9230769230769231
Precision 0.91875
Specificity 0.91875
Sensitivity 0.91875
F1 score 0.9185586535436918
값에 불균형이 있어도 정확한 평가를 하기 위해 도입된 해당 지수들은 전체 값으로 계산하는 것이 아니라, 기준이 되는 값에 따라서 계산을 하기 때문에 불균형한 데이터로 인해 이러한 결과가 나온 것으로 보인다.
실제로 위와 같이 균일한 결과가 나온다면 이에 대한 측정 결과가 동일하게 나온다.
Binary classification
Accuracy 0.9
Precision 0.9
Specificity 0.9
Sensitivity 0.9
F1 score 0.8999999999999999
Multinomial classification
Accuracy 0.9
Precision 0.9
Specificity 0.9
Sensitivity 0.8999999999999999
F1 score 0.9
따라서 지금 당장은 이항 분류와 다항 분류를 다른 관점에서 보고 구현을 진행 하였으며 이후 자문을 구해 수정할 예정이다.