1. 혼동행렬 (confusion matrix)
- 모델의 성능을 평가할때 사용되는 지표
- 예측값이 실제 관측값을 얼마나 정확히 예측했는지 보여주는 행렬
예상(예) | 예상(아니오) | |
실제(예) | TP | FN |
실제(아니오) | FP | TN |
TP(True Positive) : 참긍정, 병에 관해 예 (병이 있을것이다.)라고 예측한 환자가 실제 병을 가진 경우
TN(True Negative) : 참부정, 병에 관해 아니오(병이 없을 것이다)라고 예측한 환자가 실제로 병이 없는 경우
FP(False Positive) : 거짓긍정, 병에 관해 예라고 예측한 환자가 실제로는 병이 없는 경우
FN(False Negative) : 거짓부정, 병에 관해 아니오라고 예측한 환자가 실제로는 병이 있는 경우
예 )
A 병원 (잘된 분류 / 잘못된 분류)
실제값 | 예측값 | |
암환자 | 일반환자 | |
암환자 | 9 | 1 |
일반환자 | 30 | 60 |
B 병원 (잘된 분류 / 잘못된 분류)
실제값 | 예측값 | |
암환자 | 일반환자 | |
암환자 | 1 | 9 |
일반환자 | 20 | 70 |
2. 정확도 (accuracy)
- 모델이 입력된 데이터에 대해 얼마나 정확하게 예측하는지를 나타낸다.
정확도 = 예측값결과와 실제값이 동일한 건수 / 전체 데이터수 |
예 )
A병원의 정확도 = (9+60)/(9+60+1+30)
= 0.69
B병원의 정확도 = (1+70)/(1+70+9+20)
= 0.71
정확도는 B병원이 높지만 암을 기준으로 하면 B가 더 안좋다.
3. 정밀도 (precision)
- 모델의 예측값이 얼마나 정확하게 예측됐는가를 나타내는 지표
- "예"라고 예측했을때의 정답률
정밀도 = TP/(TP+FP) |
예 )
A모델의 암환자 정밀도 = 9/(9+30)
= 0.23
B모델의 암환자 정밀도 = 1/(1+20)
= 0.04
정확도는 B모델이 높지만 정밀도는 A모델이 높다.
4. 재현율 (recall)
- 실제값 중에서 모델이 검출한 실제값의 비율을 나타내는 지표
- 실제로 병이 있는 전체 중 참 긍정의 비율
- 실제 암환자들이 병원에 갔을때 암환자라고 예측될 확률,
조기에 정확하게 발견해서 신속하게 처방하는 것이 올바른 모델
재현율 = TP / (TP+FN) |
예 )
A모델의 암환자 재현율 = 9/(9+1)
= 0.9
B모델의 암환자 재현율 = 1/(1+9)
= 0.1
암환자 재현율을 기준으로 더 나은 모델은 A모델이다.
5. F1 점수 (F1-score)
- 정밀도 중요하고 재현율도 중요한데 둘 중 무엇을 쓸지 고민될 수 있다.
- 이 두값 조화평균내서 하나의 수치로 나타낸 지표
F1점수 = 2*재현율*정밀도/(재현율+정밀도) |
예 )
A모델의 F1점수 = 2*(TP/(TP+FN))*(TP/(TP+FP))/(TP/(TP+FN))+(TP/(TP+FP))
= 0.69
A모델의 F1점수 = 2*(TP/(TP+FN))*(TP/(TP+FP))/(TP/(TP+FN))+(TP/(TP+FP))
= 0.14
'인공지능 > 머신러닝' 카테고리의 다른 글
나이브베이즈(Naive Bayes) 분류 (0) | 2020.05.12 |
---|---|
사건과 확률 (0) | 2020.05.12 |
유방암 데이터 분석하기 (1) | 2020.05.11 |
머신러닝 - feature scaling (0) | 2020.05.09 |
머신러닝 - 머신러닝 개요 / kNN (0) | 2020.05.08 |