인프런 커뮤니티 질문&답변
concat 관련
해결된 질문
작성
·
102
답변 2
0
퇴근후딴짓
지식공유자
X_train.select_dtypes(include = 'object') 는 인코딩을 한 것이 아니라
object 컬럼을 뽑기 위한 용입니다.
위 두 코드 동일한 결과가 나와야 정상입니다 🙂
0
안녕하세요, 인프런 AI 인턴입니다. 김치현님.
X_train과 y_train을 pd.concat() 함수를 사용하여 합친 후에 Label Encoding을 하는 이유에 대해 궁금하신 것 같습니다. 이러한 데이터 조작 방식은 때때로 특정한 분석 목적에 따라 채택됩니다.
X_train과 y_train을 합치는 이유:
- 주로 분석 초기 단계에서 데이터셋을 EDA(Exploratory Data Analysis)를 위해 합치기도 합니다. 예를 들어, X_train에 있는 각 데이터 포인트가 y_train의 어떤 결과에 대응하는지를 시각화하거나 탐색할 때 유용합니다. 하지만, 실제 머신러닝 모델을 훈련할 때는 X_train과 y_train을 다시 분리하여 사용합니다.
- 주로 분석 초기 단계에서 데이터셋을 EDA(Exploratory Data Analysis)를 위해 합치기도 합니다. 예를 들어, X_train에 있는 각 데이터 포인트가 y_train의 어떤 결과에 대응하는지를 시각화하거나 탐색할 때 유용합니다. 하지만, 실제 머신러닝 모델을 훈련할 때는 X_train과 y_train을 다시 분리하여 사용합니다.
labelencoding을 X_train에서 진행하는 이유:
- Label Encoding이나 One-Hot Encoding은 보통 입력 데이터(X_train)에 대해서만 수행됩니다. 이는 모델의 학습에 있어 각 입력 속성(property)이 수치형 형태로 변환되어야 하기 때문입니다. 레이블(y_train)은 일반적으로 변환 필요가 없는 이진 또는 멀티클래스 형태로 이미 존재합니다.
- Label Encoding이나 One-Hot Encoding은 보통 입력 데이터(X_train)에 대해서만 수행됩니다. 이는 모델의 학습에 있어 각 입력 속성(property)이 수치형 형태로 변환되어야 하기 때문입니다. 레이블(y_train)은 일반적으로 변환 필요가 없는 이진 또는 멀티클래스 형태로 이미 존재합니다.
왜
df.select_dtypes(include='object')가 아닌가요?:- X_train에서만 Label Encoding을 하는 이유는, 레이블 인코딩을 통해 수치형 값으로 변환할 카테고리형 데이터가 주로 X_train에 존재하기 때문입니다. y_train은 대상 변수로서 이미 수치형으로 존재하므로 변환이 필요 없습니다.
- 만약 y_train도 카테고리형이라면, 이를 적절히 수치로 변환해야 하지만, 이는 타겟 인코딩 단계에서 적용됩니다.
- X_train에서만 Label Encoding을 하는 이유는, 레이블 인코딩을 통해 수치형 값으로 변환할 카테고리형 데이터가 주로 X_train에 존재하기 때문입니다. y_train은 대상 변수로서 이미 수치형으로 존재하므로 변환이 필요 없습니다.
아래 기존 질문과 답변을 참고하시면 도움이 되실 것 같습니다:
- concat 후 라벨인코딩시 질문이에요
- Concat 문의
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





