해결된 질문
작성
·
38
0
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요
먼저 유사한 질문이 있었는지 검색해보세요
7. 머신러닝 학습 및 평가(분류) 11분19초 부분입니다.
안녕하세요.
roc_auc_score로 pred와 y_val간 비교를 통해 roc-auc 스코어를 내는 부분에 질문이 있습니다.
roc_auc = roc_auc_score(y_val, pred[:,1])
여기서 y_val의 경우에 프린트해보면 각 항에 <=50K 혹은 >50K 라는 값으로 이루어져 있습니다.
pred는 array의 집합 [0.1 , 0.9] 등으로 이루어져 있는데 pred[:, 1]을 통해서 '>50K' 부분만 따로 추출해내는 점은 이해가 됩니다.
제가 궁금한것 여기서 y_val의 값, 즉 <=50K 혹은 >50K이 '<=50K'는 0 '>50K'는 1으로 정의가 되어있는 건지요? 특별히 정의를 한것 같지는 않습니다. (물론 문제에서는 50만불 이상이 양성이라고 언급은되어있습니다만..)
혹시 rf.classes_ 에서 출력되는 ['<=50K' '>50K'] 값의 의미가
dataset의 y값 전체가 '<=50K'= 0, '>50K'= 1 라는 의미로 이해를 하면되는 것일까요?
(전체y(타겟)의 넘버가 rf클래스의 인덱스 값에 따르는 것인지?)
답변 2
0
네 맞습니다.
rf.classes_ 에서 순서를 보로 첫번째 컬럼이 어떤 것인지 두번째 컬럼이 어떤 것인지를 파악할ㄹ 수 있습니다 🙂
시험에서 이진의 경우 문자 클래스가 제출된 적은 아직 없는 상황이에요~!
작업형2는 40점을 반드시 확보해야 해서 좀 더 심화된 내용으로 설명드렸습니다.
0
안녕하세요, 인프런 AI 인턴입니다.
pjwz617님께서 질문하신 roc_auc_score
사용 시 y_val
의 값 정의에 관한 내용을 적절히 이해하는 것이 중요합니다. roc_auc_score
는 이진 분류 모델에서 예측의 품질을 평가하기 위해 사용되는 중요한 지표 중 하나로, 실제 레이블과 예측 확률을 비교하여 ROC AUC 스코어를 산정합니다.
y_val 및 예측된 확률의 사용 및 정의에 대한 설명을 이어가겠습니다:
y_val
값의 정의적용하신 것처럼 이진 분류에서는 클래스 레이블을 숫자형으로(주로 0과 1) 변환하여 사용합니다.
클래스 라벨 변환: 보통 이전 전처리 과정에서 <=50K
는 0, >50K
는 1로 변환한 후 모델을 학습시키고 평가합니다. 이는 머신러닝 모델이 숫자 데이터를 입력으로 필요로 하기 때문입니다.
rf.classes_
의 의미: RandomForest 혹은 다른 Scikit-learn 분류 모델을 사용할 때 rf.classes_
는 클래스의 순서를 보여주는 속성입니다. 이것은 모델이 예측 결과를 해석할 때 어떤 클래스가 어떤 값에 매핑되는지를 알려줍니다. 따라서 ['<=50K', '>50K']
순으로 정의되었다고 하면, <=50K
는 0, >50K
는 1로 인식하는 역할을 합니다.
위와 같은 전환이 있어야 예측된 확률을 실제 라벨과 비교하면서 ROC AUC를 적절히 계산할 수 있습니다.
비슷한 주제에 대한 질문이 기존 게시판에 올라와 있는지 아래 유사 질문을 참고해 주세요:
이러한 정보를 기반으로 흔히 사용되는 이진 분류에서의 라벨 변환 및 ROC AUC 적용법에 대한 이해를 높이실 수 있기를 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.