인프런 커뮤니티 질문&답변
안녕하세요. precision_recall_curve()함수 적용할 때 질문드리겠습니다.
작성
·
480
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건이 됩니다.
감사합니다.






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