인프런 커뮤니티 질문&답변

혜워니님의 프로필 이미지
혜워니

작성한 질문수

[개정판] 파이썬 머신러닝 완벽 가이드

임곗값에 따른 정밀도-재현율 값 추출

작성

·

162

0

선생님 안녕하세요.

임곗값에 다른 정밀도-재현율 추출시, 예측확률 추출(predict_proba)에 대해서 궁금한 점이 있습니다.

# predict_proba( ) 반환값의 두번째 컬럼 , 즉 Positive 클래스 컬럼 하나만 추출하여 Binarizer를 적용
pred_proba_1 = pred_proba[:,1].reshape(-1,1)

작성해주신 코드는 positive일 확률에 대한 컬럼 하나만 추출한것으로 보이는데, 그 이유가 있을까요?

강의를 두세번 반복해서 봐도 이해가 가지않습니다..

 

그리고 작성해주신 주석은 'Positive 클래스 컬럼' 이라고 써주셨는데,

데이터를 print해보면 positive 일 확률이기때문에, positive가(1이) 아닐 확률 데이터도 많이 포함되어있어서요.

정확히 어찌 이해하는게 맞을까요?

 

답변 1

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

이진 분류에서 predict_proba()가 반환하는 결과는 [negative 0 일 확률, positive 1일 확률] 입니다.

그런데 positive 1일 확률은 1 - negative 0 일 확률(즉 positive 1이 아닐 확률)입니다. 즉 negative 0 확률 + positive 1 확률은 1입니다. 그래서 predict_proba() 반환 결과는 [0, 3, 0.7] 과 같은 형태의 값입니다. 즉 positive 확률이 0.7이 되면 자동(?)으로 negative 확률은 0.3이 되는 것이 이진 분류 예측값입니다.

그래서 보통은 positive 확률을 기반으로 threshold를 설정하기에 positive일 확률에 대한 컬럼 하나만 추출하였습니다.

그리고 질문해 주신

데이터를 print해보면 positive 일 확률이기때문에, positive가(1이) 아닐 확률 데이터도 많이 포함되어있어서요.

=> 위 내용은 제가 질문을 잘 이해하지 못했습니다. positive일 확률인데 왜 positive가 아닐 확률이 포함되어 있다고 생각하시는 건지요?

 

감사합니다.

 

혜워니님의 프로필 이미지
혜워니

작성한 질문수

질문하기