강의

멘토링

커뮤니티

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

김남욱님의 프로필 이미지
김남욱

작성한 질문수

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

분류 실습 1 : 캐글경연대회의 산탄데르 은행 고객 만족 예측 - 01

ROC_AUC_Score 과정에서 오류

작성

·

2K

0

안녕하세요 강사님.

캐글 예제 진행 중 ROC-AUC 스코어 오류가 생겨서 질문드립니다.

우선 진행 과정에서 train.csv 파일을 split해 X, y_train과 X, y_valid로 나누었고

eval_set로 X, y_valid를 사용하였으며 

test.csv 파일은 X_test, sample_submission.cvs 파일은 y_test 로 사용하여 진행했습니다.

(실제 컴피티션에서는 이렇게 진행하는 것인가 하여 이렇게 진행해봤는데 방법이 맞는지는 모르겠습니다. 이 부분도 맞는 지 답변해주시면 감사하겠습니다)

XGBoost.fit을 통해 학습 후 X_test에 predict 한 뒤 ROC-AUC 스코어를 구하는 과정에서

Only one class present in y_true. ROC AUC score is not defined in that case.

라는 에러가 계속 발생합니다ㅠㅠ

y_test 데이터를 value_counts로 확인하니 레이블값이 0으로만 차있던데 이것이 오류의 이유인가 싶습니다.

만약 이게 원인이라면 y_test가 하나의 값으로만 차있으면 ROC 스코어를 구할 수 없는 것인가요?

답변 1

0

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

안녕하십니까, 

말씀하신대로 y_test가 모두 동일한 값으로 되어 있기 때문으로 생각됩니다.  해당 경우에는 위 에러가 발생합니다.  y_test값을 다시 확인해 보시기 바랍니다. 

감사합니다. 

김남욱님의 프로필 이미지
김남욱
질문자

답변 감사드립니다.

그렇다면 만약에 실제로 y_test이 동일한 레이블값으로만 구성되어 있으면 ROC스코어 사용이 불가능하고 다른 평가지표를 사용하는 것이 맞는 것인가요??

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

네, 해당 경우에 ROC 는 적용할 수가 없습니다. 

김남욱님의 프로필 이미지
김남욱

작성한 질문수

질문하기