강의

멘토링

로드맵

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

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

작성한 질문수

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

분류 실습 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 스코어를 구할 수 없는 것인가요?

퀴즈

결정 트리(Decision Tree) 모델이 데이터를 분할(Split)할 때 사용하는 주요 기준 지표로 가장 적절한 것은 무엇일까요?

평균 제곱 오차 (Mean Squared Error)

정보 이득 (Information Gain) 또는 지니 계수 (Gini Coefficient)

회귀 계수 (Regression Coefficient)

주성분 (Principal Component)

답변 1

0

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

안녕하십니까, 

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

감사합니다. 

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

답변 감사드립니다.

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

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

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

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

작성한 질문수

질문하기