1. 데이터 살펴보기
1-1. 요약정보 확인
info() 함수 : 결측치 확인, 범주형 변수 확인
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 10886 entries, 0 to 10885
Data columns (total 9 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 datetime 10886 non-null object
1 계절 10886 non-null int64
2 공휴일 10886 non-null int64
3 근무일 10886 non-null int64
4 날씨 10886 non-null int64
5 온도 10886 non-null float64
6 체감온도 10886 non-null float64
7 습도 10886 non-null int64
8 풍속 10886 non-null float64
dtypes: float64(3), int64(5), object(1)
memory usage: 765.5+ KB
1-2. 기초 통계량 확인
describe() 함수
- 데이터의 범위가 일정한지 확인, 필요시 standardscalar, minmaxscalar 적용
- 데이터의 범위가 일정한 경우 pass
1-3. 종속변수와 독립변수의 관계 확인하기
groupby로 범주형 값에 따른 독립변수 관계 확인
먼저 독립변수와 종속변수를 합한 data 변수를 생성
datetime 계절 공휴일 근무일 날씨 온도 체감온도 습도 풍속 datetime2 count
0 2011-01-01 0:00 1 0 0 1 9.84 14.395 81 0.0 2011-01-01 0:00 16
1 2011-01-01 1:00 1 0 0 1 9.02 13.635 80 0.0 2011-01-01 1:00 40
2 2011-01-01 2:00 1 0 0 1 9.02 13.635 80 0.0 2011-01-01 2:00 32
3 2011-01-01 3:00 1 0 0 1 9.84 14.395 75 0.0 2011-01-01 3:00 13
4 2011-01-01 4:00 1 0 0 1 9.84 14.395 75 0.0 2011-01-01 4:00 1
data.groupby(['계절'])['count'].sum()
계절
1 312498
2 588282
3 640662
4 544034
Name: count, dtype: int64
공휴일
0 2027668
1 57808
Name: count, dtype: int64
근무일
0 654872
1 1430604
Name: count, dtype: int64
날씨
1 1476063
2 507160
3 102089
4 164
Name: count, dtype: int64
2. 전처리
2-1. datatime으로 파생변수 만들기
datatime 칼럼의 타입을 datetime으로 변환하기
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 10886 entries, 0 to 10885
Data columns (total 9 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 datetime 10886 non-null datetime64[ns]
1 계절 10886 non-null int64
2 공휴일 10886 non-null int64
3 근무일 10886 non-null int64
4 날씨 10886 non-null int64
5 온도 10886 non-null float64
6 체감온도 10886 non-null float64
7 습도 10886 non-null int64
8 풍속 10886 non-null float64
dtypes: datetime64[ns](1), float64(3), int64(5)
memory usage: 765.5 KB
이제 datetime 컬럼에서 dt.year, dt.month, dt.day, dt.hour, dt.dayofweek 로 각각 파생컬럼 생성
groupby함수를 활용하여 연도별, 월별, 일별, 시간대별, 요일별 count의 값을 파악해봅니다.
2-2. 불필요 컬럼 삭제하기
x_test의 datetime 컬럼은 별도 변수에 저장 후 삭제하고 최종 제출결과 파일에 추가
4. 데이터 학습 및 파라미터 튜닝하기
y_test_predicted = pd.DataFrame(model.predict(x_test)).rename(columns={0:'count'})
4-2. 예측결과 평가해보기
from sklearn.metrics import r2_score
0.8557687199442273
4-3. 하이퍼파라미터를 변경하여 다시 모델을 생성 후 r2_socre 비교
Y_TEST_PREDICTED = pd.DataFrame(model.predict(X_TEST)).rename(columns={0:'count'})
0.9067627133587264
5. 결과제출
concat함수로 datetime 결합
datetime count
0 2011-01-20 00:00:00 1.627005
1 2011-01-20 01:00:00 0.000000
2 2011-01-20 02:00:00 0.000000
3 2011-01-20 03:00:00 0.000000
4 2011-01-20 04:00:00 0.000000
... ... ...
6488 2012-12-31 19:00:00 279.707062
6489 2012-12-31 20:00:00 182.190186
6490 2012-12-31 21:00:00 135.548462
6491 2012-12-31 22:00:00 93.159081
6492 2012-12-31 23:00:00 57.042912
6493 rows × 2 columns
final.to_csv('result.csv', index = False)
'독서' 카테고리의 다른 글
HSK 4급 어휘(1) 예문정리 (0) | 2022.10.19 |
---|---|
네이버 파파고, 구글 번역기 (0) | 2022.10.19 |
분류모델 만들고 평가하기 연습 (0) | 2022.06.18 |
전처리 연습 (0) | 2022.06.18 |
힘들고 배고픔의 가치 (0) | 2022.06.16 |