1) 혼동행렬의 이해
ex) 병원에서 의사에게 대장암을 선고 받았음. 그러나 사실 대장암에 걸린 것이 아니었으며 이는 의사의 잘못이었음. 암을 앓고 있으면 '양성', 앓고 있지 않으면 '음성' 분류
-> 답 :거짓 양성
sol)
1) 암 걸림 && 암 선고 -> 참 양성 (TP)
2) 암 안걸림 && 암 선고 -> 거짓 양성 (FP)
3) 암 안걸림 && 암 아니라고 선고 -> 거짓 음성 (FN)
4) 암 안걸림 && 암 선고 -> 참 음성 (TN)
2) 혼동 행렬 구현하기
from sklearn.metrics import confusion_matrix
confmat = confusion_matrix(y_ture,y_pred)
3) 정확도
정확도 = (TP+TN) / (FP+FN+TP+TN)
4) F값
적합률 = TP/(TP+FP)
재현율 = TP/(TP+FN)
F값 = 2*(적합률X재현율)/ (적합률+재현율)
5) 성능평가지표 구현하기
#적합률, 재현율, F
from sklearn.metrics import precision_score
from skleran.metrics import recall_score, f1_score
#데이터를 저장한다. 0이 양성, 1이 음성
y_true = [0,0,0,1,1,1]
y_pred = [1,0,0,1.1.1]
#y_true에는 정답 라벨, y_pred에는 예측 라벨 전달
print("Precision: %.3f" % precision_Score(y_true,y_pred))
print("Recall: %.3f" % recall_score(y_true, y_pred))
print("F1:%.3f" % f1_score(y_true,y_pred))
##아직 이론만 하고 실습하기 전이라 오류가 있을 수 있음..해보고 수정해야지..ㅜㅜ
1) 재현율과 적합률의 관계
재현율 : 실제로 양성인 데이터 중 몇 퍼센트를 양성으로 판정했는지 보여준다.
적합률 : 양성이라고 예측한 데이터 중 몇 퍼센트가 옳았는지 보여준다.
재현율과 적합률은 상충관계이다.
재현율을 높이려고 하면 적합률이 낮아지고, 적합률을 낮추려고 하면 재현율이 낮아진다.
재현율과 적합률의 쓰임은 다르다. 예를 들어, 건강과 관련된 앞서 말한 암진단과 같은 경우, 생명과 중대한 일이기 때문에 가능한 FN(거짓음성)의 수를 줄여야 한다. 그러나 웹사이트 추천 기능과 같은 경우, 적합률을 중시하는 것이 좋다. 구매 기회의 감소보다는 신뢰성 감소를 피하고 싶은 경우, 거짓양성(FP)의 수를 줄이는 것이 필요하다.
위의 두 조건에 구애받지 않는 경우, 재현률과 적합률을 모두 고려한 F값을 사용한다.
2) PR곡선이란
3) PR곡선을 이용한 모델 평가
적합률이 높고, 재현율이 낮은 상태 :
낭비는 적으나 손실이 많은 판정을 하고 있는 상태
기회손실(opportunity loss) 발생
적합률이 낮고, 재현율이 높은 상태 :
낭비는 많고, 손실이 적은 판정을 하고 있는 상태
접근(approach)에 예산이 낭비가 될 가능성이 있음