피처 엔지니어링 코드 이래도 될까욧!?
# 피처 엔지니어링
cols1 = list(X_train.columns[X_train.dtypes == object]) # 범주형
cols2 = list(X_train.columns[X_train.dtypes != object]) # 수치형
Xc_train = X_train[cols1] # 범주형
Xc_test = X_test[cols1]
Xn_train = X_train[cols2] # 수치형
Xn_test = X_test[cols2]
Xc_train = pd.get_dummies(X_train[cols1])
Xc_test = pd.get_dummies(X_test[cols1])
from sklearn.preprocessing import RobustScaler
Ro = RobustScaler()
X_train[cols2] = Ro.fit_transform(X_train[cols2])
X_test[cols2] = Ro.transform(X_test[cols2])
Xn_train = X_train[cols2] # 수치형
Xn_test = X_test[cols2]
X_train = pd.concat([Xc_train, Xn_train], axis = 1)
X_test = pd.concat([Xc_test, Xn_test], axis = 1)
print(X_train)
print(X_test)
늘 빠른 답변 감사드려용
답변 1
1
네 그런데 혹시 모르니 cols2는 체크를 할 필요가 있어요 int, float외 다른 자료형이 있을 수도 있습니다.
인코딩의 경우 train과 test종류가 다르다면 합쳐서 인코딩 하고 다시 분할하는 것도 연습해주세요:)
1
train에는 사과 딸기 포도가 있는데
test에는 딸기 수박이 있다면 어떻게 될까요?
fit을 통해 사과는 0, 딸기는 1, 포도는 2라고 사전을 만들고
transform을 통해서 train은 무사히 변환 되지만
test는 에러발생!!!! 수박을 알 수 없음!! 이라고 나옵니다.
이에 합쳐서 인코딩(사과는 0, 딸기는 1, 포도는 2, 수박은 3)을 진행하는 것을 말했어요
(추가적으로 합쳐서 진행할 경우 데이터 누수라는 부정적 영향이 있는데 이것은 빅분기에서는 다루진 않을 것 같아 생략하겠습니다)
출력값 질문
0
13
1
수업노트가 어디에 있나요?
0
21
1
실기시험 제출관련
0
154
2
6.20 작업형 2 과적합
0
158
3
코딩팡 장업형2 베이스 라인 인코딩 종류 질문
0
50
2
로지스틱회귀, 회귀
0
48
2
회귀 문제를 풀때 질문입니다.
0
56
1
불균형 처리 후 성능이 더 낮아졌다면,
0
62
2
실기 체험 제2유형 에러 문의
0
61
1
LIGHTGBM 으로 하면 pred값이 소수점 6자리까지 나오는게 맞나요
0
50
2
3번문제 등분산 가정
0
48
2
작업형3 target 형 변환 질문
0
35
2
[작업형1] 연습문제 섹션1 ~ 10 의 section4
0
36
3
원핫인코딩과 레이블 인코딩에서 concat
0
59
2
제2유형 질문입니다.
0
46
2
C()
0
44
2
작업형 2에서 strafity 적용 유무
0
52
2
수강 기간 연장 가능 여부 문의드립니다.
0
61
1
ols
0
43
2
2유형 작성관련 질문(일반 심화)
0
39
2
2유형 작성관련 질문
0
41
2
2유형 object컬럼 개수 다르면
0
48
2
코딩팡질문이요ㅠㅠ
0
45
2
관찰값과 기대값의 개념이 헷갈립니다.
0
25
2





