해결된 질문
작성
·
285
0
안녕하세요. 피처엔지니어링 10:33~ 이후 질문입니다!
수치형/범주형데이터를 먼저 나누고 print(c_train.head())등을 해보았을 때 범주형컬럼이 있는 걸 알 수 있는데,
라벨 인코딩/원핫인코딩 전에
cols=['~,~,~']으로 범주형컬럼을 재설정해주는 이유가 궁금합니다~~! (수치형은 id 컬럼을 빼기위해라고 이해했습니다)
라벨인코딩에서
from sklearn.preprocessing import LabelEncoder
le=LabelEncoder()
cols=['~~~']
for col in cols:
le=LabelEncoder() 로 <-이 부분을 두번 적어주는 이유가 무엇일까요?
train,test 데이터의 카테고리가 다르면 두 개를 합친 다음->인코딩->분리해야한다고 하셨는데 두개가 다른건 .unique()등으로 눈으로 직접 확인해야 하는건가요..?
같은 부분에서 iloc는 찾을값 -1 로 [ ] 안에 적는다고 알고 있는데 (ex.kaggle t1-23번에서 10번째 값을 찾을 때 iloc[9]로 찾음)
line=int(X_train.shape[0]
X_train=all.iloc[line: ~~] 로 적으면 test의 첫번째행이 포함되는게 아닌지 궁금합니다!!
답변 1
0
컬럼만 선택하는 방식으로 사용해도 됩니다. 데이터를 나눈이유는 깔끔하게 보여주기 위함과 범주형데이터 중에서도 타겟 값등이 포함될 여지가 있어서입니다.
중복 사용되었다면 제가 실수 한 것 같네요 두번 있을 이유가 없습니다.
원핫인코딩 시 크기가 달라지거나 라벨인코딩시 에러가 난다면 의심해볼 수 있을 것 같아요!!
Iloc에서 시작 인덱스는 포함이고 끝 인덱스는 제외입니다. 끝 인덱시 앞까지만 뽑아낼 수 있어요
감사합니다!!!