Confusion Matrix (오차행렬)
실제 참 | 실제 거짓 | |
예측 참 | True Positive | False Postive |
예측 거짓 | False Negative | True Negative |
Accuracy (정확도)
\[\frac{TP+TN}{TP+FP+TN+FN} \]
Precision (정밀도)
분류기가 참으로 분류한 결과(예측) 중에서 실제 참의 비율
'Precision'의 'P'를 따와서 positive이 분모라고 생각하면 쉽다.
\[\frac{TP}{TP+FP}
\]
<script type="text/javascript" src="https://www.hostmath.com/Math/MathJax.js?config=OK"></script>
Recall (재현율)
실제 참 중에서 분류기가 참으로 분류한 비율
실제 참인 데이터에서 분류가 제대로 된 비율이다.
'Recall' -> 'R'eal Positive이 분모에 들어간다.
\[\frac{TP}{TP+FN}
\]
<script type="text/javascript" src="https://www.hostmath.com/Math/MathJax.js?config=OK"></script>
F1 Score
Precision과 Recall이 불균형을 이룰때 보통 조화평균을 내기 위해 사용하는 지표. 가중치를 가진 조화평균이라고 할 수 있다.
우리가 일반적으로 계산하는 평균이란 것은 산술평균이다.조화평균은 주어진 수들 역수의 산술평균의 역수 값이다. \[H = \frac{1}{\frac{1}{a_{1}}+\frac{1}{a_{2}}+\cdot\cdot\cdot+\frac{1}{a_{n-1}}+\frac{1}{a_{n}}}
\]
<script type="text/javascript" src="https://www.hostmath.com/Math/MathJax.js?config=OK"></script>
즉, 두 수를 계산하는 경우는 이렇게 수식이 정리된다.\[H = \frac{2a_{1}a_{2}}{a_{1}+a_{2}}\]
<script type="text/javascript" src="https://www.hostmath.com/Math/MathJax.js?config=OK"></script>
\[H = \frac{2\cdot Precision\cdot Recall}{Precision+Recall}\]
<script type="text/javascript" src="https://www.hostmath.com/Math/MathJax.js?config=OK"></script>
보통 평균 속력을 구할 때 F score를 자주 사용하는데, Precision과 Recall 중 어느 것에 더 중요도를 두냐에 따라 가중치를 다르게 둔다.
두 지표를 모두 동일하게 가중치를 두면 F1 Score이다.(동일하게 가중치가 0.5가 되어 베타값은 1이다.) \[F_{1} = 2\cdot\frac{Precison\cdot Recall}{Precision+Recall}\]
<script type="text/javascript" src="https://www.hostmath.com/Math/MathJax.js?config=OK"></script>
Precision을 더 중요하게 보아서 가중치를 두면 F0.5 Score,Recall을 더 중요하게 보아 가중치를 두면 F2 Score이다.
예시를 통해 한 번 계산해보자.
참과 거짓 데이터가 굉장히 불균형한 데이터인 케이스입니다.
실제 참 | 실제 거짓 | |
예측 참 | True Positive = 15 | False Postive = 15 |
예측 거짓 | False Negative = 5 | True Negative = 65 |
Accuracy = \[\frac{15+65}{15+65+15+5}=0.8\]
<script type="text/javascript" src="https://www.hostmath.com/Math/MathJax.js?config=OK"></script>
Precision = \[\frac{15}{15+15}=0.5\]
<script type="text/javascript" src="https://www.hostmath.com/Math/MathJax.js?config=OK"></script>
Recall = \[\frac{15}{15+5}=0.75\]
<script type="text/javascript" src="https://www.hostmath.com/Math/MathJax.js?config=OK"></script>
F1 Score = \[2\cdot\frac{0.5\cdot 0.75}{0.5+0.75}=0.6\]
<script type="text/javascript" src="https://www.hostmath.com/Math/MathJax.js?config=OK"></script>
정확도는 0.8이지만 나머지 정밀도, 재현율, F1 Score는 그에 비해 훨씬 낮다는 것을 알 수 있다.
이렇게 불균형한 데이터에서는 Accuracy가 썩 좋은 지표가 아니라는 것을 알 수 있고,
다른 지표들을 함께 써야하는 이유를 알 수 있다.
'인공지능 AI' 카테고리의 다른 글
[통계학]Confidence Interval(신뢰구간)/t-value/p-value (0) | 2021.11.20 |
---|---|
[인공지능/AI]Few-shot Learning in NLP(자연어처리) (0) | 2021.07.25 |
[인공지능/AI/NLP/자연어처리]BERT Neural Network 언어모델 쉽고 간단한 설명 (0) | 2021.04.23 |
[인공지능/AI] Hyperparameter Tuning (Optimization) 하이퍼파라미터 튜닝 (최적화) (0) | 2021.04.13 |
[인공지능/AI] Cross Entropy 크로스 엔트로피 (0) | 2021.04.08 |