성능 평가 지표
1. 정확도(accuracy) :
예측결과가 동일한 건수/ 전체 예측 데이터 건수
불균형한 분포의 모델 성능은 판별하기 힘들다
오차행렬 :
TN TP
FN FP
891명의 타이타닉 승객중 20%인 179명은 Test 데이터가 됨
그리고 179명에 pred를 실행후 confusion_matrix 를 적용한 결과는 이리 나온다.
[[104, 14]
[13, 48]]
1열은 0이라 예측, 즉 죽었다고 예측. 2열은 살았다고 예측.
1행은 실제 죽은 사람의 수. 2행은 실제 산 사람의 수.
1행 1열은 죽었다는 예측을 했고 실제 죽은 사람의 수 = True Negative
1행 2열은 살았다고 예측했지만 죽은 사람의 수 = False Negative
2행 1열은 죽었다고 예측했지만 산 사람의 수 = False Positive
2행 2열은 살았다고 예측했고 산 사람의 수 = True Positive
2. 정밀도(precision)
TP / (TP+NP)
스팸메일
3. 재현율
TP / (TP+FN)
암 진단,
pred_proba :
사이킷런의 분류 알고리즘은 예측 데이터가 특정 레이블에 속하는지 판단하기 위해 개별 레이블별로 확률을 구하고, 그 확률이 큰 레이블 값으로 예측
- 일반적으로는 임계값을 50%로 정하고 이보다 크면 Positive, 작으면 Negative로 결정
- predict_proba( ) 를 통하여 개별 레이블별 예측확률을 반환받을 수 있음
pred_proba를 실행하면 아래 1열과 2열 같은 Negative와 True의 확률이 나옴. 3열은 확률에 따른 label값
[[0.44935227 0.55064773 1. ]
[0.86335512 0.13664488 0. ]
[0.86429645 0.13570355 0. ]]
from sklearn.preprocessing import Binarizer :
연속형 변수를 특정 기준값 이하(equal or less the threshold)이면 '0', 특정 기준값 초과(above the threshold)이면 '1'의 두 개의 값만을 가지는 변수로 변환하는 방법
기본 pred_proba()는 라벨의 확률이 0.5 이상인것을 반환해주는데, 1라벨의 확률만을 뽑아내서 Binarizer의 threshold 값을 자유롭게 맞춰놓고 변환할수도 있다. threshold 값에 따라 재현율 정확도 정밀도 전부 변한다. threshold 값 감소 -> 1예측 증가 하기 떄문성능 평가 지표
1. 정확도(accuracy) :
예측결과가 동일한 건수/ 전체 예측 데이터 건수
불균형한 분포의 모델 성능은 판별하기 힘들다
오차행렬 :
TN TP
FN FP
891명의 타이타닉 승객중 20%인 179명은 Test 데이터가 됨
그리고 179명에 pred를 실행후 confusion_matrix 를 적용한 결과는 이리 나온다.
[[104, 14]
[13, 48]]
1열은 0이라 예측, 즉 죽었다고 예측. 2열은 살았다고 예측.
1행은 실제 죽은 사람의 수. 2행은 실제 산 사람의 수.
1행 1열은 죽었다는 예측을 했고 실제 죽은 사람의 수 = True Negative
1행 2열은 살았다고 예측했지만 죽은 사람의 수 = False Negative
2행 1열은 죽었다고 예측했지만 산 사람의 수 = False Positive
2행 2열은 살았다고 예측했고 산 사람의 수 = True Positive
2. 정밀도(precision)
TP / (TP+NP)
스팸메일
3. 재현율(recall) = 민감도
TP / (TP+FN)
암 진단,
pred_proba :
사이킷런의 분류 알고리즘은 예측 데이터가 특정 레이블에 속하는지 판단하기 위해 개별 레이블별로 확률을 구하고, 그 확률이 큰 레이블 값으로 예측
일반적으로는 임계값을 50%로 정하고 이보다 크면 Positive, 작으면 Negative로 결정
predict_proba( ) 를 통하여 개별 레이블별 예측확률을 반환받을 수 있음
pred_proba를 실행하면 아래 1열과 2열 같은 Negative와 True의 확률이 나옴. 3열은 확률에 따른 label값
[[0.44935227 0.55064773 1. ]
[0.86335512 0.13664488 0. ]
[0.86429645 0.13570355 0. ]]
from sklearn.preprocessing import Binarizer :
연속형 변수를 특정 기준값 이하(equal or less the threshold)이면 '0', 특정 기준값 초과(above the threshold)이면 '1'의 두 개의 값만을 가지는 변수로 변환하는 방법
기본 pred_proba()는 라벨의 확률이 0.5 이상인것을 반환해주는데, 1라벨의 확률만을 뽑아내서 Binarizer의 threshold 값을 자유롭게 맞춰놓고 변환할수도 있다. threshold 값에 따라 재현율 정확도 정밀도 전부 변한다. threshold 값 감소 -> 1예측 증가 하기 떄문
4. F1 스코어
정밀도와 재현율을 결합한 지표로 정밀도와 재현율이 어느 한 쪽으로 치우치지 않을 때 상대적으로 높은 값을 가짐
F1=2/(1/recall+1/precision) =2∗(precision∗recall)/(precision+recall)
5. ROC AUC
ROC곡선 : FPR(False Positive Rate)이 변할 때 TPR(True Positive Rate)이 어떻게 변하는지를 나타내는 곡선
TPR : 재현율, 민감도
TNR : 특이성
AUC 는 곡선 아래 면적. 전체 면적 크기는 1. AUC가 높을수록 좋음
'머신러닝 > 인프런' 카테고리의 다른 글
feature selection (0) | 2021.03.28 |
---|---|
부스팅 (0) | 2021.03.11 |
전처리 (0) | 2021.02.28 |
검증 (0) | 2021.02.28 |
kfold 교차검증에서 (0) | 2021.02.26 |