인프런 커뮤니티 질문&답변
데이터 합쳐서 인코딩하는 방법과 관련하여 문의사항
해결된 질문
작성
·
52
0
안녕하세요,
수업 잘 듣고 있습니다.
데이터 합쳐서 인코딩하는 방법과 관련하여 문의사항이 있습니다.
data=pd.concat([train,test],axis=0)
data=pd.get_dummies(data)
train=data.iloc[:len(train).copy()
test=data.iloc[letn(train):].copy()
합친 후 원핫인코딩 후 분할하는 방법이 위와 같은걸로 책에 기재가 되어있는데요!
만약 아래와 같이 합친후 레이블인코딩 후 분할해도 괜찮은지 문의드립니다.
data=pd.concat([train,test],axis=0)
from sklearn.preprocessing import LabelEncoder
le=LabelEncoder()
for col in cols:
data[col]=le.fit_transform(data[col])
train=data.iloc[:len(train).copy()
test=data.iloc[letn(train):].copy()
답변 2
0
네 동일하게 적용하면 됩니다.
작성해주신 코드에서 들여쓰기만 문제 없으면 완벽한 코드입니다.
for col in cols:
data[col]=le.fit_transform(data[col])0
안녕하세요, 인프런 AI 인턴입니다. letitgo555님께서 데이터 합치기 및 인코딩 관련하여 질문을 주셨네요. 인코딩 작업에서 데이터를 합치는 이유와 레이블 인코딩 적용 가능 여부를 설명드리겠습니다.
데이터 합치기 및 인코딩
데이터 합병 이유:
- 데이터셋의 train과 test에 존재하는 범주형 변수의 카테고리가 서로 다른 경우, 데이터를 합쳐서 인코딩을 하는 것이 일관성을 유지하는 데 유리합니다. 이렇게 하면 train과 test 셋에서 동일한 mapping을 보장해드립니다.
- 데이터셋의 train과 test에 존재하는 범주형 변수의 카테고리가 서로 다른 경우, 데이터를 합쳐서 인코딩을 하는 것이 일관성을 유지하는 데 유리합니다. 이렇게 하면 train과 test 셋에서 동일한 mapping을 보장해드립니다.
레이블 인코딩 적용 가능 여부:
- 레이블 인코딩을 사용하여 합친 데이터에 인코딩을 적용하는 것은 가능합니다. 합친 후 분할하여 각각의 데이터셋에 동일한 인코딩 매핑을 적용하는 것이죠. 이를 통해 데이터의 범주형 변수를 숫자형으로 일관되게 변환합니다.
- 레이블 인코딩을 사용하여 합친 데이터에 인코딩을 적용하는 것은 가능합니다. 합친 후 분할하여 각각의 데이터셋에 동일한 인코딩 매핑을 적용하는 것이죠. 이를 통해 데이터의 범주형 변수를 숫자형으로 일관되게 변환합니다.
data = pd.concat([train, test], axis=0)
le = LabelEncoder()
for col in cols:
data[col] = le.fit_transform(data[col])
train = data.iloc[:len(train)].copy()
test = data.iloc[len(train):].copy()
중요한 점
- 레이블 인코딩의 주의사항: 레이블 인코딩은 범주형 데이터가 순서성을 가지지 않는 경우 처리에 주의가 필요하며, 일부 모델(예: 결정 트리 계열)에서는 레이블 간의 순서가 학습에 영향을 미칠 수 있습니다. 그럴 때는 원핫 인코딩이 더 적합할 수 있습니다.
유사한 질문과 답변
제안하신 과정은 적절하며 기존의 유사한 질문 답변을 통해 더 많은 정보를 얻으실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






이거 저도 궁금했던 건데.. 사용가능하다고 인지하면 되는걸까요?