Notice
Recent Posts
Recent Comments
Link
코알못
파이썬 머신러닝 완벽 가이드 - 3장 본문
728x90
3장 - 평가
# 모델에 따른 평가 방법
- 회귀 : 예측 값의 오차의 정도 (정확도, 오차)
- 분류 : 회귀와 동일하게 평가 할 수 있지만 연속적인 값이 아닌 한정된 값(0 or 1 / True or False) 이기에 정확도로 판단했다가는 잘못된 평가가 될 수 있음.
# 평가 성능 지표 종류
- 정확도(Accuracy)
- 오차 행렬(Confusion Matrix)
- 정밀도(Precision)
- 재현율(Recall)
- F1 스코어
- ROC AUC
# 평가 성능 지표 정의
평가 성능 지표 | 설명 | 비고 |
정확도(Accuracy) | - 예측 결과가 동일한 데이터 건수 / 전체 예측 데이터 건수 - 특정 결과 값 True가 몰려있고 정답을 무조건 True 로 나오도록 한다면 정확도가 높을 것이다. (잘못된 평가) |
|
오차 행렬(Confusion Matrix) | - 어떤 유형에 얼마나 오차가 있는지 보는 방법 - 암 환자 예측 예시에서의 설명 > TN : 실제 비 암환자를 비 암환자로 예측 건수 > FP : 실제 비 암환자를 암 환자로 예측 건수 > FN : 실제 암환자를 비 암환자로 예측 건수 > TP : 실제 암환자를 암환자로 예측 건수(해당 예제에서는 TP값이 매우 중요) |
|
정밀도(Precision) | - 암환자를 암환자로 예측 비율 - 양성 예측도 라고도 불림 |
- 정밀도만 높거나 , 재현율만 높다고 좋은 것이 아님. - 둘 다 높아야 좋은 수치 > F1 스코어로 측정 |
재현율(Recall) | - 암환자로 예측 했을 시 실제 암환자일 비율 - 민감도, TPR(True Positive Rate) 라고도 불림 |
|
F1 스코어 | - 정밀도, 재현율이 한쪽으로 치우치지 않는 수치 - 비슷할 수록 1에 가까움 |
|
ROC AUC | - ROC 곡선 > FPR을 변화시 TPR 변화 측정 - ROC 곡선 아래 면적이 AUC > AUC는 1에 가까울 수록 좋다. > 아래 면적이 1이라는 건, TPR일 확률이 높다는 말. |
- TPR(True Positive Rate) = 암환자로 예측 했을 시 실제 암환자일 비율 - FPR (False Positive Rate) = 암환자로 예측 했을 시 실제 비 암환자일 비율 |
# 평가 성능 지표 사용법
from sklearn.metrics import accuracy_score, precision_score, recall_score, roc_auc_score, f1_score, confusion_matrix
1) 정확도
# y_test 는 정답 데이터(0 or 1) , pred 는 예측 데이터(0 or 1)
accuracy = accuracy_score(y_test, pred)
2) 오차 행렬
# y_test 는 정답 데이터(0 or 1) , pred 는 예측 데이터(0 or 1)
confusion = confusion_matrix(y_test, pred)
3) 정밀도
# y_test 는 정답 데이터(0 or 1) , pred 는 예측 데이터(0 or 1)
precision = precision_score(y_test, pred)
4) 재현율
# y_test 는 정답 데이터(0 or 1) , pred 는 예측 데이터(0 or 1)
recall = recall_score(y_test, pred)
5) F1 스코어
# y_test 는 정답 데이터(0 or 1) , pred 는 예측 데이터(0 or 1)
f1 = f1_score(y_test, pred)
6) AUC 면적
# x_test 는 테스트 입력 데이터
# [:,1] : 모든 행의 2번째 열의 값만 추출 (암환자로 예측할 확률)
model = LogisticRegression()
pred_proba = model.predict_proba(x_test)[:,1]
# y_test 는 정답 데이터(0 or 1) , pred_proba는 암환자로 예측 확률
roc_auc = roc_auc_score(y_test, pred_proba)
# 피마 인디언 당뇨병 예측 예시
:: github.com/works-code/Python-Machine-Learning-Complete-Guide/blob/main/3_Evaluate.ipynb
728x90
'PYTHON' 카테고리의 다른 글
[FLASK] REST API 구현하기 (0) | 2021.05.05 |
---|---|
[selenium] 손쉽게 브라우저 자동 캡쳐 기능 만들기 (0) | 2021.05.02 |
파이썬 머신러닝 완벽 가이드 - 2장 (0) | 2020.10.31 |
파이썬 머신러닝 완벽 가이드 - 1장 (0) | 2020.10.31 |
Word2vec - 코사인유사도 (0) | 2020.10.23 |
Comments