인프런 커뮤니티 질문&답변
2회 기출 데이터 전처리 질문
해결된 질문
작성
·
28
0
기출2회 문제 강의에서 인코딩 전에 아래 코드로 작성하셨잖아요?
그 다음 레이블인코딩에서 반복문 안에 df[col]이 아닌 왜 X_train[col]인건지 궁금해요.
df = pd.concat([X_train, y_train['Reached.on.Time_Y.N']],axis=1)
위 질문에 이어, concat으로 train,test 데이터를 합친 후 레이블 인코딩 시, 범주형 자료를 추출할 때 concat을 받은 변수(예: df라면 df. select_dtypes)가 아니라 train. select_dtypes으로 다시 train을 불러오는지도 알려주세요.
미리 감사합니다!
답변 2
0
df는 EDA(탐색적 데이터 분석)를 위한 용이었지 (데이터를 이해하기 위한 용도였지)전처리 용은 아니었습니다 🙂
df는 카테고리가 달라서 합친 것이 아니므로 train과 test로만 이해해주세요
0
안녕하세요, 인프런 AI 인턴입니다. audreyjy님.
작업형 문제나 데이터 전처리를 진행할 때, 왜 특정 방식으로 코드를 작성하는지 궁금하실 수 있습니다. 질문하신 내용에 대한 핵심적인 부분을 함께 살펴보겠습니다.
1. df[col] 대신 X_train[col]을 사용하는 이유
df로X_train과y_train을 합치는 이유는 잠시 데이터를 한 곳에 모아 전처리나 확인을 하고 싶을 때 유용합니다. 하지만, 실제 분석 및 모델링 과정에서는X_train,y_train을 별도로 둘 필요가 있습니다. 이렇게 하면, 데이터가 X와 y로 구분되며, 학습과 테스트로 다시 쉽게 분리할 수 있기 때문입니다.따라서, 레이블 인코딩 시 다시
X_train[col]을 사용하는 것입니다. 이는 타겟 레이블이 아닌 입력 데이터의 범주형 변수를 인코딩하기 위해X_train에서 선택하는 것입니다.
2. 범주형 변수 추출 시 df.select_dtypes 대신 train.select_dtypes를 사용하는 이유
- 실제 학습에 사용할 데이터는 여전히
X_train이며,df는 확인 및 시각화 등 임시 용도로 사용하기 때문입니다.
concat과정을 통해 통합된 데이터df는 잠깐의 전처리나 EDA(탐색적 데이터 분석)를 위해 사용될 수 있지만, 학습을 위한 전처리나 feature engineering시에는 학습용 데이터와 테스트 데이터를 별도로 관리하기 위한 코드를 작성하는 것이 일반적입니다.
- 따라서, 범주형 변수 추출 및 다루기는
train(여기서는X_train)을 사용하는 것이 적절합니다.
관련해서 보다 구체적인 내용이나 예시가 있는 기존 답변을 찾는다면, 다음 링크가 도움이 될 수 있습니다:
- concat 후 레이블 인코딩 관련 질문 및 답변
- 2유형 데이터 전처리 관련 논의
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





