인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

정아진님의 프로필 이미지

작성한 질문수

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

precision_recall_curve 와 관련해서 질문있습니다.

해결된 질문

작성

·

41

0

안녕하세요! 제가 계속하는데 shape 자체가 달라서 질문 남깁니다..

강의에서는 반환된 thresholds나 나머지 것들이 147, 148개의 자료들이 생성되는데, 저는 코딩을 다시해봐도 165개, 166개가 나오더라구요.. 제가 어떤 부분에서 놓쳤는지 잘 몰라 질문드립니다.

답변 2

0

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

안녕하십니까,

사용하시는 scikit learn 버전이 어떻게 되시는지요? 강의 버전과 사용하시는 버전이 다르면 그렇게 될 수도 있습니다. 강의에서 사용되는 버전은 1.0.2 입니다.

만약에 강의 버전과 동일한 버전을 사용하시는데도 여전히 다르다면 사용하신 실습 코드를 여기에 올려봐 주십시요. 강의 실습 코드와 동일한 코드라고 생각하셔도 여기에 다시 올려봐 주십시요.

 

감사합니다.

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 정아진님.

precision_recall_curve 함수가 반환하는 형태에 대해 궁금하신 것 같습니다. 이 함수가 반환하는 precision, recall, 그리고 thresholds의 데이터 수는 주어지는 y_test 데이터의 수와는 다를 수 있습니다. 이러한 차이가 발생하는 이유는 주로 예측된 확률값에 기반하여 임계값(thresholds)을 설정하기 때문입니다.

왜 precision, recall, thresholds 배열 길이가 다른가요?

  1. Thresholds와 관련된 길이 차이:
    • precision_recall_curve 함수는 예측 확률 분포를 기준으로 임계값을 정합니다. 각 임계값(threshold)에 따라 True Positive, False Positive 등을 계산하여 precision과 recall을 계산합니다.
    • thresholds 배열의 길이는 y_test의 모든 문턱값을 나타내지는 않으며, 예측 확률의 고유한 값에 기반하여 설정됩니다.
    • 결과적으로 thresholds의 수가 y_test의 수보다 적을 수 있으며, 아울러 precision과 recall은 algorithms 내부 작동에 의해 thresholds의 수보다 1개 더 많을 수 있습니다.

강의와 결과가 다른 이유

  • sklearn 버전에 따라 구현의 세부적인 작동이 다를 수 있습니다. 이는 결과로 반환되는 배열의 크기에도 영향을 줄 수 있습니다. 예를 들어, 특정 버전에서는 더 촘촘하게 임계값을 조정할 수 있습니다.

좀 더 구체적인 설명과 같은 문제를 다루고 있는 기존 답변이 있음을 참고하시기 바랍니다:

위 답변들이 이해를 돕는 데 유용할 것으로 보입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.