이진분류(binary classification)는 클래스가 0일지, 혹은 1일지를 맞추는 문제로, 실제 클래스와 예측 클래스의 조합에 따라 이진분류 모델의 성능을 정량화할 수 있습니다. 그 조합을 표로 나타낸 것을 혼동 행렬, 오차 행렬 또는 정오분류표(confusion matrix)이라고 하는데요. 아래와 같이 각 조합에 따라 실제 양성, 실제 음성, 거짓 양성, 거짓 음성으로 분류할 수 있습니다.
예측 클래스 | |||
Positive | Negative | ||
실제 클래스 | Positive | TP (True Positive) |
FN (False Negative) |
Negative | FP (False Positive) |
TN (True Negative) |
- TP(True Positive)
- 모델이 positive라고 예측했는데, 실제로도 positive여서 옳은(true) 결정인 경우
- TN(True Negative)
- 모델이 negative라고 예측했는데, 실제로도 negative여서 옳은(true) 결정인 경우
- FP(False Positive)
- 모델이 positive라고 예측했는데, 실제로는 negative여서 옳지 않은(false) 결정인 경우
- FN(False Negative)
- 모델이 negative라고 예측했는데, 실제로는 positive여서 옳지 않은(false) 결정인 경우
이진분류 평가방법
위 표로부터 전체 자료 수를 N이라고 할 때 정확도, 재현율, 정밀도는 아래와 같이 정의합니다.
- 정확도(Accuracy): 전체에서 정확하게 예측한 비율
$$ \frac{TP+TN}{N} $$
- 재현율(Recall): 실제로 positive인 클래스 중 positive라고 제대로 예측한 비율
$$ \frac{TP}{TP+FN} $$
- 정밀도(Precision): positive라고 예측한 클래스 중 실제로 positive인 비율
$$ \frac{TP}{TP+FP} $$
- F1 Score: 정밀도와 재현율의 조화평균으로, 클래스의 불균형이 심할 때(imbalanced data) 사용하는 지표
$$ (\frac{{1 \over Precision}+{1 \over Recall}}{2})^{-1} = \frac{2Precision * Recall}{Precision + Recall} $$
'繩鋸木斷水滴石穿 > AI | 머신러닝' 카테고리의 다른 글
[AutoML] pycaret 패키지를 이용한 분류모델 학습 (2) create_model, tune_model, predict_model, finalize_model (0) | 2022.04.24 |
---|---|
[AutoML] pycaret 패키지를 이용한 분류모델 학습 (1) setup, add_metrics, compare_models (0) | 2022.03.27 |
배치 학습(오프라인 학습)과 온라인 학습 비교 (0) | 2022.03.15 |
[추천시스템] 4) 협업필터링 - 이웃기반 협업필터링 (0) | 2021.10.16 |
[추천시스템] 3) 컨텐츠 기반 필터링(Contents-based Filtering) (0) | 2021.09.11 |