• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

안녕하세요. precision_recall_curve()함수 적용할 때 질문드리겠습니다.

22.09.22 09:50 작성 조회수 255

0

강의 내용 중에

처음 precision_recall_curve함수 적용하는 부분에서ㅗ

thresholds의 shape와 precision, recalls의 shape 자체가 본래의 자료보다는 개수가 적어지는데 그 이유가 무엇일까요??

 

예를 들어 저희가 이용하였던, y_test의 shape는 원래 (179, ) 였는데 precision_recall_curve를 적용하면 개수가 줄어들더라구요.. 그리고 강의 내용 중에서는 반환된 thresholds나 나머지 것들이 147, 148개의 자료들이 생성되는데..

 

저는 코딩을 다시해봐도 165개, 166개가 나오더라구요.. 제가 어떤 부분에서 놓쳤는지 잘 몰라 질문드립니다.

 

감사합니다.

답변 1

답변을 작성해보세요.

0

안녕하십니까,

precision_recall_curve에서 반환하는 precision, recall, thresholds 데이터의 건수는 y_true 건수와 동일하지 않습니다. 반환하는 데이터 건수는 thresholds 데이터 건수를 기준으로 합니다. threshold 데이터 건수는 y_true건수와 예측 확률을 기반으로 만들어지지만 y_true건수와는 동일하지 않습니다.

pred_proba_class1 = lr_clf.predict_proba(X_test)[:, 1]

precisions, recalls, thresholds = precision_recall_curve(y_test, pred_proba_class1 )

따라서 y_test의 건수가 179 건이더라도 반환된 threshold의 값은 147건이되고 precision과 recall은 여기에 1건을 더해서 148건이 됩니다.

감사합니다.

ycc3819님의 프로필

ycc3819

질문자

2022.09.23

반환되는 threshold의 값은 어떤 기준에 의해서 정해지는 건지도 여쭈어봐도 될까요??

추측으로 y_true건수와 예측 확률을 기반으로 만들어진다는 정도밖에는 모릅니다.

ycc3819님의 프로필

ycc3819

질문자

2022.09.23

아.. 저는 뭔가 규칙이 있는 줄 알았는데,

러프하게 받아들여야할 것을 너무 집요하게 파고들었네요...

답변해주셔서 정말 정말 감사합니다 :D