원핫인코딩 피처 선정에 대한 질문입니다.
575
작성한 질문수 25
항상 정성스럽게 답변해주셔서 감사합니다.
혼자 주피터노트북 보면서 복습하고 있는데, 예측성능을 올리기 위해 범주형 데이터에 원핫인코딩을 적용하는 것 같습니다.
다만 'day' 피쳐도 범주형 데이터인데 따로 인코딩을 안하는 이유가 있나요?
# 'year','month','hour','season','weather' feature들을 One Hot Encoding
X_features_ohe = pd.get_dummies(X_features, columns=['year','month','hour', 'holiday', 'workingday','season','weather'])
그리고 보통 회귀분석 할 땐, 이렇게 전처리가 많이 필요한가봐요? 타겟값 정규분포로 만들고, 범주형 데이터는 원핫 인코딩 하고
그런데 회귀트리는 너무 짧게 설명해주셨지만, 그 강의 봤을 때는 전처리를 거의 하지 않으시고, 회귀트리는 전처리에 큰 영향을 받지 않는다고 하셨는데, 만약에 전처리가 필요하다면 선형모델과 똑같이 하면 되나요?
답변 2
1
안녕하십니까,
1. 원핫 인코딩을 적용한다고 반드시 선형 모델의 성능이 올라가진 않지만 적용하여 성능향상을 비교해 볼 수 있습니다. 비슷한 의미로 day의 경우는 원핫인코딩을 했을 때 오히려 성능이 떨어져서 제외했습니다.
2. 일반적으로 회귀 트리의 전처리 방향성은 선형 회귀와는 좀 차이가 있습니다. 원핫 인코딩을 회귀 트리에는 적용하지 않는게 더 좋다는 의견도 있습니다(불필요한 분할을 발생시킬수 있습니다). MinMaxScaling 작업도 굳이 할 필요는 없습니다. 다만 다양한 유형의 feature engineering을 일반적으로 적용합니다. 가령 추가적인 feature를 도출한다거나, 여러개의 feature를 sum, min, max 등의 feature engineering 작업을 수행하는게 일반적입니다(물론 이것은 선형 모델도 마찬가지 입니다)
3. 로그 변환을 포함한 feature engineering 작업에 정답은 없습니다. 다양하게 돌려보고 잘 나오면 적용하면 됩니다. 특별히 로그변환을 하지 않은 이유는 없습니다. 다만 값의 편차가 큰 feature들이 없는거 같아서 안했는데, 로그 변환을 별로 생각하지 않았는데, 로그 변환도 적용해 볼 option일 수 있겠군요.
감사합니다.
0
그리고 x_data에는 원핫인코딩 외에 로그변환같은걸 취하지 않으셨는데, 만약 데이터 돌려보고 성능이 별로면 로그변환같은걸 시도해보고 그런 식으로 진행되는건가요??
로그변환하면 예측성능이 좋아질 것 같은데 하지 않으시는 이유가 궁금합니다
안녕하세요 열심히 수강중인 학생입니다
0
63
2
정수 인덱싱
0
68
2
넘파이 오류
0
85
2
11강 numpy의 axis 축 질문 드립니다.
0
85
2
Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.
0
79
2
Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.
0
70
2
타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.
0
75
2
타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.
0
64
2
5강 강의 오류가 있어요.
0
84
1
실무에서 LTV 관련 모델 선택 질문입니다!
0
72
2
14강 강의 듣는중에 궁금한게 있어서 질문합니다~
0
69
3
파이썬 다운그레이 후 사이킷런 재설치
0
117
2
좋은 강의 감사합니다.
0
72
2
scoring 함수 음수값
0
67
2
6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?
0
100
2
분류 평가 정확도 예측
0
78
2
안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.
0
99
1
카카오톡 채널 있나요
0
107
1
혹시 강의에서 사용하시는 ppt 받을 수 있는건가요
0
190
2
pca 스케일링 관련하여 질문드립니다.
0
100
2
주피터 대신 구글 코랩
0
172
2
강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?
0
148
2
실루엣 스코어..
0
86
2
float64 null 값 처리 방법
0
103
2





