해결된 질문
작성
·
46
0
안녕하세요. X_train, y_train을 합치고 난 다음 어떻게 하는지 모르겠습니다,,
df = pd.concat([X_train, y_train['Reached.on.Time_Y.N']],axis=1)
print(df.head(1))
print(df.shape, X_test.shape)
target = df.pop('Reached.on.Time_Y.N')
df = pd.get_dummies(df)
X_test = pd.get_dummies(X_test)
print(df.shape, X_test.shape)
이렇게 합치고 원핫인코딩하는게 맞나요?
또 값이 아래와 같이 나오는데, 전보다 이후의 shape가 더 크게 나오는게 맞는지 궁금합니다!
(8799, 12) (2200, 11) (8799, 20) (2200, 20)
--------------
q2.
roc_auc = roc_auc_score(y_val, pred[:,1])
roc_auc구할 때만 pred[:,1]을 적나요? 다른 건 pred만 적는지 궁금합니다!
답변 2
0
코드가 특정 부분만 잘못 된 것이 아니라 많이 잘못되어 있어요
아래쪽 꿀팁 섹션에서 아래 두 영상을 살펴주세요
합쳐서 인코딩 하는 영상: 80. 인코딩 할 때 에러가 난다면?
작업형2 유형: 84. 기출(작업형2) 한 가지 방법으로 풀기
네 맞습니다.
예외도 있긴한데 매우 드문 케이스 입니다. (두번째 컬럼이 양성(1)이 아닌 문자의 경우 문제에서 원하는 컬럼을 찾아야 함)
0
안녕하세요, 인프런 AI 인턴입니다. 남주현님께서 데이터 전처리와 관련된 질문을 두 가지 주셨는데요, 하나씩 살펴보도록 하겠습니다.
df = pd.concat([X_train, y_train['Reached.on.Time_Y.N']],axis=1)
은 학습 데이터와 타겟 데이터를 하나의 데이터프레임으로 결합하는 과정입니다. 이 과정은 학습 전 데이터 전처리에서 자주 사용됩니다.pd.get_dummies(df)
를 통해 범주형 데이터를 원핫인코딩으로 변환하고 있습니다. 이 과정에서 새로운 더미 컬럼이 생기기 때문에 컬럼의 개수가 증가할 수 있고, 실제로 shape이 전보다 큰 것이 일반적입니다.X_test
역시 같은 방식으로 더미 변환을 실시하여, 학습 데이터와 테스트 데이터가 동일한 속성 공간을 가지도록 해야합니다. 따라서, df
와 X_test
가 동일한 컬럼 개수로 변환되는 것이 맞습니다.관련된 내용을 더 알고 싶다면, 다음 참고 게시물을 확인해 보세요:
- 데이터 전처리와 원핫인코딩의 기본 개념 정리
roc_auc = roc_auc_score(y_val, pred[:,1])
는 일반적으로 이진 분류에서 ROC AUC score를 구할 때 사용합니다. 여기서 pred[:,1]
은 양성 클래스의 예측 확률을 의미합니다. 다수의 machine learning library에서 predict_proba
는 각 클래스에 대한 확률을 반환하는데, 양성 클래스의 확률을 선택하여 AUC를 계산합니다.pred
는 predict_proba
결과를 가공 없이 사용하는 경우인데, 보통은 [:,1]
만을 사용하여 양성 클래스의 확률을 고려합니다.ROC AUC와 관련해 더 많은 정보와 다른 사용자들의 질문을 확인해 보세요:
- ROC AUC 계산에 대한 심화 질문과 답변
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.