티스토리 뷰
▶오차행렬(Confusion matrix) in 분류
1) 정확도(Accuracy) : 예측이 정답과 얼마나 정확한가
우리는 다음 코드와 같이 간단하게 정확도를 확인할 수가 있습니다.
(y_pred == y_yest).mean()
하지만 정확도만 높고 보면 무조건 음성 환자로 예측하는 분류기가 성능이 좋습니다.
그렇기 때문에 정확도만 보고 분류기의 성능의 판별하는 것은 오류에 빠질 수가 있습니다.
이를 보완하기 위해 생겨난 지표는 오차 행렬에 대해 알아봅시다.
from sklearn.metrice import confusion_matirx
confusion_matirx(y_test, pred)
out:
이처럼 array 형식으로 출력되는데 좀 더 보기 편하게 시각화를 해보겠습니다.
sns.heatmap(confusion_matirx(y_test, pred), annot=True, cmap='Reds')
out:
위 오차행렬의 heatmap은 아래와 같은 의미입니다.
위 오차행렬을 통해 측정할 수 있는 모델 성능 척도를 알아보겠습니다.
2) 정밀도(Precision) : 예측한 것 중에 정답의 비율은?
정밀도는 예측하였을 때 예측이 실제로 참이었을 확률을 계산합니다.
이는 실제로 어떤 방향의 예측을 했는지에 관심을 두는 것이 아니라, 만일 긍정적으로 예측하였다면 그러한 예측이 실제와 '일치하는가'에 관심을 갖는 지표입니다.
따라서 모델 예측의 긍정성, 부정성보다 모델의 순수한 예측력 자체에 초점을 둔 지표입니다.
그렇기 때문에 무조건 양성으로 판단하면 좋은 정밀도를 얻기 때문에 유용하지 않습니다.
from sklearn.metrics import precision_score
precision_score(y_test, pred)
3) 재현율(Recall) : 찾아야 할 것 중에 실제로 찾은 비율은?
재현율은 참일 때 참으로 예측했을 확률을 나타냅니다.
이 지표는 정확도처럼 실제로 옳게 예측했는지만 관심을 갖는 것이 아니라, 실제로 참이었을 때 옳게 예측했는지를 계산하여 정확도보다는 개선된 지표로 볼 수 있지만, 여전히 모델이 우연히 찍어서 높은 재현율을 나타낼 수 있다는 한계를 갖습니다.
재현율은 민감도(Sensitivity) 혹은 TPR(True Positive Rate)라고 부르기도 합니다.
from sklearn.metrics import recall_score
recall_score(y_test, pred)
4) f1 score : 정밀도와 재현율의 조화 평균
f1 score는 민감도와 정밀도 중 한 쪽으로 크기가 편중된다면, 이러한 모델의 예측은 건전하다고 말하지 않습니다.
실제 참일 때 참으로 예측할 확률과 참으로 예측했을 때 실제 참일 확률은 모델의 예측력을 평가하는 동등하게 중요한 지표이기 때문입니다.
따라서 f1 score 수치가 높으면 잘 예측하는 모델이라고 평가가 가능합니다.
from sklearn.metrics import f1_score
f1_score(y_test, pred)
여기까지 평가 지표인 오차 행렬에 대해 알아보았습니다 :)
'빅데이터 인공지능 > 머신러닝' 카테고리의 다른 글
[머신러닝] ⑩ random_state에 대해서 (0) | 2022.08.22 |
---|---|
[머신러닝] ⑨ 앙상블(Ensemble) 모델 (0) | 2022.08.21 |
[머신러닝] ⑦ 분류(Classification) 모델 (0) | 2022.08.19 |
[머신러닝] ⑥ 회귀(Regression) 분석 A to Z (0) | 2022.08.12 |
[머신러닝] ⑤ 파이썬 파이토치(Pytorch) (0) | 2022.08.11 |
- Total
- Today
- Yesterday
- jest
- 리액트
- react
- 인프런
- JSP
- 머신러닝
- testing
- styled-components
- 프론트엔드 공부
- frontend
- 스타일 컴포넌트 styled-components
- rtl
- HTML
- next.js
- 딥러닝
- CSS
- react-query
- 자바
- 리액트 훅
- 프론트엔드
- 프로젝트 회고
- TypeScript
- Python
- 파이썬
- 타입스크립트
- 자바스크립트
- 디프만
- 데이터분석
- 자바스크립트 기초
- 프론트엔드 기초
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |