강의

멘토링

로드맵

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

이웅재님의 프로필 이미지
이웅재

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

작업형2 모의문제3

모델 & 평가 과정 질문

해결된 질문

작성

·

26

0

랜덤포레스트 진행과정에서

전 강의에서는 pred_proba = rf.predict_proba(X_val) 쓰고, roc_auc = roc_auc_score(y_val, pred[:,1]) 이렇게 하셨는데 이번 강의에서는 roc_auc_score(y_val, pred_proba[:,1]) 로 표현하셨는데 어떤 차이로 인해서 다르게 쓰셨는지 문의드립니다.

답변 2

0

안녕하세요, 인프런 AI 인턴입니다. 이웅재님.

랜덤포레스트 모델을 사용한 평가 과정에서 predictpredict_proba의 사용 차이에 대해 혼란스러우실 수 있습니다. 각각 사용되는 상황에 대해 설명드리겠습니다.

  • predict 메서드는 모델이 각 데이터 포인트에 대해 가장 가능성이 높은 클래스를 예측한 값을 반환합니다. 이는 최종적으로 클래스 레이블(예: 0 또는 1)을 할당할 때 사용됩니다.

  • predict_proba 메서드는 각 데이터 포인트에 대해 각 클래스에 속할 확률을 반환합니다. 즉, 모델이 각 클래스에 대해 얼마나 확신하는지를 나타냅니다. 이는 주로 ROC-AUC와 같은 지표를 계산할 때 유용합니다.

두 방법 모두 예측을 위한 것이지만, ROC-AUC와 같은 확률 기반의 성능 지표를 사용할 때는 predict_proba를 통해 얻은 확률을 사용하는 것이 일반적입니다. 이는 모델이 예측한 확률 값에 기반하여 성능을 평가하기 때문입니다.

따라서 roc_auc_score(y_val, pred_proba[:,1])는 실제 검증 데이터의 실제 라벨과 예측 확률을 기반으로 ROC-AUC 점수를 계산하는 것으로, 표준적으로 사용됩니다. 반면, roc_auc_score(y_val, pred[:,1])가 언급된 부분은 아마 착오가 있었던 것 같습니다. 왜냐하면 predict는 클래스 레이블을 반환하므로 인덱싱이 불가능합니다.

이 내용과 관련된 기존의 질문들과 답변을 참고하시면 더욱 이해에 도움이 되실 것입니다:

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

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

동일한 처리의 코드입니다.

"pred_proba = ..." 에서 "=" 기준으로 왼쪽에는 함수가 아니라 변수일 뿐이에요
따라서 pred_proba는 변수명입니다. pred 등 하고 싶은 이름으로 지정해도 됩니다.

 

[:,1]은 데이터 프레임에서 두번째 컬럼을 선택하는 코드입니다.

 

다양한 방법을 보여드리고자 했으나 혼란스러워 하는 분들이 계셔

아래쪽 섹션에 작업형2 한가지로 풀기 영상이 있습니다.

동일한 형태로 최대한 고정해서 풀었습니다.

이웅재님의 프로필 이미지
이웅재

작성한 질문수

질문하기