인프런 커뮤니티 질문&답변

SeriousKang님의 프로필 이미지
SeriousKang

작성한 질문수

[개정판] 파이썬 머신러닝 완벽 가이드

자전거 대여 수요 예측 관련 문의

작성

·

522

0

자전거 대여 수요 예측 관련 실습 중인데, 몇 가지 궁금한 점이 있어 질문 글 남깁니다.

1. [p.346] feature encoding 하는 부분에서 'day' 필드는 encoding을 하지 않고 있더라구요. 'day'도 'month'와 같이 categorical 필드라고 생각했는데, 특별히 제외하신 이유가 있는지 궁금합니다.

2. [p.347-8] 회귀 계수를 시각화 했을 때, 책에 있는 내용과 git(chulminkw/PerfectGuide)에 있는 실습 코드를 그대로 실행했을 때의 결과가 다르게 나오고 있습니다. 회귀 계수가 마이너스인 것을 고려(절대값)했을 때도 결과가 다르더라구요. 패키지 버전 문제일까요? 아니면 다른 원인이 있는걸까요?

답변 8

1

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

1. 일단 day를 one-hot encoding을 안한 이유는 one-hot encoding을 했을 때 테스트 데이터 세트에서 예측 성능이 약간 떨어졌기 때문에 제외하였습니다. one-hot encoding을 한다고 무조건 성능이 좋아지는건 아닙니다. day의 경우는 오히려  안하는게 나은것 같아서 제외 했습니다.

2. 현재 사용하고 계시는 사이킷런과 판다스 버전을 알려주실 수 있나요? 아래의 __version__은 언더바가 두개 입니다. 아마 사이킷런의 버전이 달라서 그런거 같습니다. 제가 사용한 버전이 구버전이라 결과가 서로 다른거 아닌가 싶습니다.

import sklearn

import pandas as pd

print(sklearn.__version__)

print(pd.__version__)

0

SeriousKang님의 프로필 이미지
SeriousKang
질문자

네, 선생님 가이드 해주신대로 다시 테스트 해보겠습니다. 신경 써주셔서 감사합니다.

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

지난 주에 제 PC를 과거 사이킷버전으로 다시 환경 구축을 하려고 시도해 봤는데, 잘 안되는 군요. 여전히 결과가 책과 다르게 나오고 있습니다.  해당 예제는 현재 사이킷버전에 맞게 조만간 코드와 설명을 다시 제작하도록 하겠습니다. 

일단 현재 소스코드에서 기존 책과 그나마 유사하게 결과가 나오려면 아래 one-hot encoding에서 year를 빼는 것으로 대응하여야 할 것 같습니다.

X_features_ohe = pd.get_dummies(X_features, columns=['month','hour', 'holiday',
                                              'workingday','season','weather'])

감사합니다.

0

SeriousKang님의 프로필 이미지
SeriousKang
질문자

네, 알겠습니다. 감사합니다.

0

권 철민님의 프로필 이미지
권 철민
지식공유자

신규 scikit learn과 pandas로 수행하니 결과가 책과 다르게 나오는군요. 별도 정리할 시간이 필요할 것 같습니다. 빨리 정리후에 다시  말씀드리겠습니다.

0

SeriousKang님의 프로필 이미지
SeriousKang
질문자

네, 감사합니다.

0

권 철민님의 프로필 이미지
권 철민
지식공유자

해당 버전으로 테스트를 준비한 뒤 말씀 드리겠습니다.

0

SeriousKang님의 프로필 이미지
SeriousKang
질문자

1번 내용은 확인했습니다. 감사합니다.

2번 질문 관련해서 확인한 패키지 버전은 아래와 같습니다.

더불어 말씀드리면, 평가지표는 책과 거의 동일하게(LinearRegression MAE만 0.001 차이 발생) 나오고 있습니다.

pandas : 0.22.0

sklearn : 0.21.3

SeriousKang님의 프로필 이미지
SeriousKang

작성한 질문수

질문하기