본문 바로가기

Machine Learning/분류(Classification)

Classification - 모델 평가 : precision_score(정밀도), recall_score(재현율), f1_score

반응형
[민감도(sensitivity)]

환자를 찾아냄 (양성을 찾음), 질병이 있는 사람을 질병이라 진단



[특이도(specificity)]

정상을 찾아냄 (음성을 찾음), 정상인 사람을 정상으로 진단


민감도와 특이도는 서로 반대로 움직이는 경향을 보인다.

 

 

  True or False 예측 예측 결과 실제 결과
True Positive, TP + 양성 +양성
양성이 맞음
양성
True Negative, TN + 음성 +음성
음성이 맞음
음성
False Positive, FP - 양성 -양성
양성이 틀림
음성
False Negative, FN - 음성 -음성
음성이 틀림
양성

 

 

 

민감도(sensitivity)

양성으로 예측한 사람 중 실제 양성인 사람 (TP) / 실제 양성인 사람 (TP + FN)

 

 

특이도(specificity)

음성으로 예측한 사람 중 실제 음성인 사람 (TN) / 실제 음성인 사람 (TN + FP)

 

 

 

 

예시

실제 class 예측 진단 결과
0 0 TN
0 0 TN
1 1 TP
0 1 FP
1 1 TP
1 0 FN

 

TP : 2   |   TN : 2   |   FP : 1   |   FN : 1

 

민감도 = TP / TP + FN = 2/3 = 0.66

특이도 = TN / TN + FP = 2/3 = 0.66

 

 

주어진 과제에 따라 민감도를 높일지, 특이도를 높일지 결정해야한다.

 

 

예를 들어 매우 심각한 질병이라면 질병을 잘 찾는데 집중해야하기 때문에

민감도를 높이고 특이도를 낮추는 것이다. 

 

 

 

 

위 개념을 이해한 뒤 정밀도(Precision), 재현율(Recall), F1 score를 살펴보자

 

 

 

 

정밀도 (Precision)

모델이 1이라고 예측한 것 중에 실제로 1인 것

모델이 1이라고 예측 : TP, FP
실제 1인 값 : TP

TP / (TP + FP)

 

재현율 (Recall)

실제로 1인 것 중에 모델이 1로 예측한 것

실제로 1인 값 : TP, FN
모델이 1로 예측한 값 : TP

TP / (TP + FN)

 

F1 Score

정밀도와 재현율의 조화평균

Class imbalanced 상황에서 주로 사용되는 평가지표

 

 

 

https://steadiness-193.tistory.com/257

 

Machine Learning - valid와 test를 train으로 전처리

https://steadiness-193.tistory.com/256 Machine Learning - train_test_split https://steadiness-193.tistory.com/253 Machine Learning - 랜덤으로 train과 test로 나누기 데이터 불러오기 seaborn의 iris 데..

steadiness-193.tistory.com

 

위 포스팅에서 만든 데이터셋을 이용한다.

 

 

 

 

 

sklearn.metrics 패키지에 있는 정확도, 정밀도, 재현율, f1 score을 모두 불러온다.

 

 

 

 

학습을 시킨뒤

 

 

 

 

 

평가지표 비교

 

 

정확도는 80.22를 보여준 반면에 재현율은 66.02%로 제일 낮게 나왔다.

 

즉, 실제로 1인 값들 중 모델이 1로 예측한 것들의 비율이 66% 밖에 되지 않는 것이다.

 

정밀도와 재현율의 조화평균인 f1 score도 자연스레 정확도보다 낮게 나왔다.

 

 

 

분류에서는 주로 정확도를 이용하지만,

 

평가 지표가 어떤 것이며 비중을 어디에 두는지에 따라 다르게 판단하고 해석해야 할 것이다.

 

 

참조

adnoctum.tistory.com/981

반응형