일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- bayesian
- 빅데이터
- 알고리즘
- uncertainty
- 파이썬
- 백준
- 불확실성
- YarinGal
- 코딩테스트
- DATA
- selenium
- 우분투
- 베이지안
- dropout
- 논문리뷰
- 텍스트분석
- 텍스트마이닝
- Graph
- 크롤링
- VAE
- pytorch
- pandas
- Crawling
- 강화학습
- PYTHON
- R
- AI
- 리눅스
- GNN
- 데이터분석
- Today
- Total
끄적거림
혼동행렬(Confusion Matrix)와 ROC, PR - curve 설명 본문
위의 표는 혼동행렬(Confusion Matrix)이라 불리는 도수 분포표라고 보면 된다.(분류된 빈도를 가지고 나타낸 도표)
위의 상황은 Binary Classification의 경우이며, 클래스가 더 많아진다면 그 이상도 가능하다.
흔히 Binary Classification을 진행하면 softmax나 logistic function을 사용해서 0~1 사이의 값(확률값이라 부르고 싶진 않다.)으로 결과가 떨어지는데,
threshold(default = 0.5)를 기준으로 분류를 하여 얻을 수 있는 대표적인 지표는 아래와 같다.
- Accuracy(정확도) : ( TP + TN ) / ( P + N )
- Precision(정밀도) : TP / ( TP + FP )
- Recall(재현도, Sensitive) : TP / ( TP + FN )
- Specificity(특이도) : TN / ( TN + FP )
정확도(Accuracy)는 전체 분류 중에서 정답을 얼마나 잘 맞췄는지이고,
정밀도(Precision)는 실제 양성 중에서 양성이라고 판단한 경우를 나타낸 정도이고,
재현도(Recall)는 양성이라 예측 분류한 것 중에 실제 양성이라 판단한 경우를 나타낸 정도이다.
특이도(Specificity)는 실제 음성 중에서 음성이라 판단한 경우이다.(정밀도와 반대)
이런 기준으로 아래와 같은 curve들을 만들 수 있다.
ROC-curve는 세로가 TPR, 가로가 FPR로 주어져 있다.
여기서 TPR은 sensitivity(특이도) 혹은 recall(복원도)를 나타내며, FPR은 1-specificity(특이도)를 나타내며,
각 x,y축들은 threshold의 변화를 기준으로 서로 다른 값들을 가지게 되는데 그를 표현한 것이 바로 위의 ROC-curve이다.
학부시절 배운 ROC-curve의 용도는 크게 두 가지였다.
모델이 얼마나 괜찮은지를 판단하기 위해서 y=x라는 base model과 비교 했을 때 얼마나 차이가 있는지로 확인할 수 있었고, 이를 보다 정량적으로 확인하기 위해 AUC 지수라는 척도를 사용했다.
또한, Binary Classification Task였다면, 최적의 분류 threshold를 찾을 수 있게 도와주기도 하였다.
반면에, PR-curve는 세로가 precision, 가로가 recall로 되어 있고, 이 역시 threshold값을 기준으로 구성된 그림이다.
PR-curve도 모델의 성능이 좋은지를 AUC로 판단하기도 한다.
또한 Base Model과의 성능 비교도 가능한데, ROC와 다른 점이 있다면, y=-x,가 아니라, P/(P+N)을 사용한다는 것이다.
가로와 세로축이 서로 trade-off관계에 있어서 우리는 또하나의 지표로써 F1-score를 생각해 볼 수 있다.
F1 score는 precision과 recall을 조화평균 낸 지표이다.
조화평균이란 관측치들에 대해 역수를 취한 뒤 산술평균을 적용한 후 다시 역수를 취해주는 지표이다.
여담으로 이렇게 역수의 평균의 역수를 취하는 일은 왜 할까?
바로 outlier의 가중치를 줄여주기 위함이다.
하나의 예로 1, 10000 두 숫자가 있다고 가정해보자.
그냥 산술 평균은 (1 + 10000)/2 = 5000.5 로 계산될 것이다.
반면에, 조화평균은 2/(1/1 + 1/10000) = 20000/10001 = 1.999 정도가 될 것이다.
참고 :
bcho.tistory.com/tag/PR%20curve
'개인 공부 정리 > ML&Statistic' 카테고리의 다른 글
[논문 리뷰] Active Learning by Feature Mixing (0) | 2023.03.31 |
---|---|
inductive bias 참고글 (0) | 2021.08.06 |
Parameterization 개념 (0) | 2021.03.19 |