TIL/머신러닝

11/28 월 머신러닝 불균형 데이터 SMOTE -1 (혼동행렬)

monawa 2022. 11. 29.
728x90

 

 

Q왜 아래 그림으로 혼동행렬을 이해하는 것을 추천할까요?

A : 사이킷런과 기준이 같기 때문입니다.

 

Q : 정확도로 제대로 된 모델의 성능을 측정을 하기 어려운 사례는 어떤게 있을까요?

A : 클래스가 불균형한 데이터일 때, 제대로된 평가를 내리기 어렵습니다.

 

EX ) 불균형한 데이터예시 

 

금융 => 은행 대출 사기, 신용카드 사기, 상장폐지종목 여부

제조업 => 양불(양품, 불량품) 여부

헬스케어 => 희귀질병(암 진단여부)

IT관련 => 게임 어뷰저, 광고 어뷰저, 그외 어뷰저

대회에서 어뷰저 관련 내용을 찾을 때는 Fraud 등으로 검색하면 여러 사례를 찾을 수 있습니다.


 

혼동행렬

  실제 결과 
예측된 결과    거짓 0 참 1
거짓 
0
TN
예측 거짓 / 실제 거짓 
아닌 것을 올바르게 틀리다고 예측함
FP
예측 참 / 실제 거짓
1종오류 (남자가 임신)
아닌 것을 올바르지 않게 맞다고 예측함

1
FN 
예측 거짓 /실제 참
2종오류
맞는 것을 올바르지 않게 틀리다고 예측함
TP
예측 참 / 실제 참 
맞는 것을 올바르게 맞다고 예측함

1종오류

실제는 임신이 아닌데(0),  임신(1)로 예측

스팸메일이 아닌데 스팸메일로 예측

무고한 피고인에게 유죄를 선고

 

2종오류 

실제는 임신인데(1), 임신이 아닌 것(0)으로 예측

암인데 암이 아닌 것으로 예측

화재가 났는데 화재가 아니라고 예측


precision(정밀도) 와 recall(재현율)

 

precision(정밀도)

recall(재현율)

중요한 경우 

실제 Negative 음성인 데이터 예측을
Positive 양성으로 잘못 판단하게 되면
업무상 큰 영향이 발생하는 경우
실제 Positive 양성인 데이터 예측을
Negative 음성으로 잘못 판단하면 
업무상 큰 영향이 발생하는 경우
예시
  • 스팸 메일이 아닌데 스팸 메일로 잘못 판단한 경우
  • 무죄인 피고/ 피고인에게 유죄 판결을 내린 경우
  • 신약 효과가 없는데 신약 효과가 있다고 판단하고 출시한 경우
  • 암인데 암이 아니라고 진단한 경우
  • 금융사기인데 사기가 아니라고 판단한 경우
  • 화재가 발생했는데 화재가 발생하지 않았다고 판단한 경우
지나치게
높을 경우
참으로 예측한 경우가 필요 이상으로 적다. 참으로 예측한 경우가 필요 이상으로 많다.
낮을 경우  참이 아닌데도 참이라고 한 것이 많다.

참인데 못 찾은 것이 많다.
  예프리
(예측값이 1인 것을 기준으로 하는 계산)
실리콜
(실제값이 1인것을 기준으로 하는 계산)

Precision-Recall Tradeoff

threshold(한계점 ) precision(정밀도) recall(재현율)
내릴떄 내려가고 올라간다
올릴떄  올라가고 내려간다 
  중요할떄 
threshold를 올릴수잇다 
중요할떄 
threshold를 내릴수 있다 

출처 :https://medium.com/@syuumak/precision-recall-tradeoff-1f5b10cc729d

정밀도(Precision)와 재현율(Recal)은 상호 보완적인 지표입니다

머신러닝모델의 성능을 올려서 예측한다면 가장 좋겠지만 이는 현실적으로 불가능합니다

대신 precision이 더 중요한 경우에는 threshold를 올리고 recall이 중요한 경우에는 threshold를 내릴 수 있습니다.

 

머신러닝의 모델의 성능이 동일할떄 한쪽을 강제로 올리면 한쪽은 강제로 내려갑니다

이러한 관계를 Precision-Recall Tradeoff 라고 하며  둘의 관계를 파악하여 밸런스를 맞춰야 합니다

EX) 자동차보험의 경우 precision과 recall이 교차하는 0.2~0.3 사이의 threshold가 적당해 보입니다.


AUC

 

  • TPR = TP / (TP + FN)

실제 양성 샘플 중에 양성으로 예측된 것의 비율을 나타낸다

TP와 FN은 어떻게 예측되었든 상관없이 모두 실제로는 양성 샘플입니다

TP가 많고 FN이 적을수록 TPR은 1에 가까워집니다

  • FPR = FP / (FP+TN)

FPR은 실제 음성 샘플 중에 양성으로 잘못 예측된 것의 비율을 나타냅니다

FP가 적고 TN이 많을수록 FPR은 0에 가까워집니다

TPR은 1에 가까울 수록 좋고, FPR은 0에 가까울 수록 좋습니다

 

출처 :https://angeloyeo.github.io/2020/08/05/ROC.html

threshold 변화에 따른 ROC 커브 위의 점 위치 변화

 

출처 :https://angeloyeo.github.io/2020/08/05/ROC.html

두 그룹을 더 잘 구별할 수 있을수록 ROC 커브는 좌상단에 붙게 된다.

 

2편에서 계속

 

 

참고자료 

출처및

멋쟁이 사자처럼 AI School 7기 수업내용

 

728x90

댓글