데이콘에서 주최하는 학습을 위한 경진대회인 따릉이 대여량 예측을 분석해보자!
주제
- 서울의 일별 온도, 습도, 강수량 등 일기 예보 데이터를 통해 따릉이 대여량을 예측해보세요.
- 서울의 2018~2021년 4년 동안의 날씨 데이터와 2018~2020년의 따릉이 대여량 데이터가 주어집니다.
- 이 데이터를 이용해 2021년의 따릉이 대여량을 예측해보세요.
- 주어진 데이터 이외의 데이터는 사용 금지입니다!
2018년 4-6월, 2019년 4-6월, 2020년 4-6월 데이터를 바탕으로 2021년 데이터를 예측해야 하는 문제이다.
데이터에 결측치는 없었기 때문에 결측치 걱정은 없어서 좋았다.
train_df.isna().sum()
test_df.isna().sum()
변수들
date_time : 일별 날짜
wind_direction: 풍향 (degree)
sky_condition : 하늘 상태 (맑으면 1, 구름 많으면 3, 흐림은 4)
precipitation_form : 강수 형태 (없으면 0, 비면 1)
wind_speed : 풍속 (m/s)
humidity : 습도 (%)
low_temp : 최저 기온 ( `C)
high_temp : 최고 기온 ( `C)
Precipitation_Probability : 강수 확률 (%)
number_of_rentals : 따릉이 대여량
분석을 진행하면서 도메인에 대한 고민을 했다.
'자전거를 어떨 때 많이 빌리지 않을까?'
일기예보 데이터로 예측하는 것이기 때문에 어떤 날씨일 때 빌리지 않는지 생각해 보았다.
1. 너무 더울 때
2. 너무 추울 때
3. 비가 많이 내릴 때 ( 조금 내릴 때에는 그냥 타는 사람들도 많은 것 같다..)
- 비와 관련성이 깊은 습도는 비만 오지 않는다면 대여에 큰 영향을 끼치지 않을 것 같다고 생각했다.
- 비가 진짜 오지 않고 강수 확률 만으로는 영향을 끼치지 않을 것 같다.
4. 바람이 많이 불 때
- 하지만 풍향이 대여에 영향을 끼치지 않을 것 같다고 생각함.
5. 눈이 내릴 때
(4-6월 데이터이기 때문에 눈이 내릴 일은 없을 것 같다.)
6. 요일에 따라 대여량이 다르지 않을까? 휴일이면 더 많이 이용할 것 같다.
- 날짜 데이터가 object로 되어 있어 datetime을 활용해 변형해 주어야 했다.
train_df.dtypes
- 함수를 만들어 split으로 datetime을 분리하는 방법
def seperate_datetime(dataframe):
# 년, 월, 일을 담을 빈 리스트 생성
year = []
month = []
day = []
# date_time 컬럼을 돌면서 date값들 쪼갠다.
for date in dataframe.date_time:
# - 기준으로 string을 나누고 list로 만든다.
year_point, month_point, day_point = date.split('-')
year.append(int(year_point))
month.append(int(month_point))
day.append(int(day_point))
return year, month, day
- to_datetime을 활용해 분리하는 방법
# Object타입의 data_time 컬럼을 datetime형태로 바꿔준다.
train_df.date_time = pd.to_datetime(train_df.date_time)
test_df.date_time = pd.to_datetime(test_df.date_time)
# datetime형태에서 각각의 년 월 일을 추출한다.
train_df['date_year'] = train_df.date_time.apply(lambda t : t.year)
train_df['month'] = train_df.date_time.apply(lambda t : t.month)
train_df['day'] = train_df.date_time.apply(lambda t : t.day)
- 요일 추가하기
week_day = pd.to_datetime(train_df['date_time']).dt.day_name()
train_df['week_day'] = week_day
train_df.head()
'프로젝트' 카테고리의 다른 글
사무실 내 전력량 예측 - (4) (0) | 2022.07.12 |
---|---|
사무실 내 전력량 예측 - (3) (0) | 2022.07.12 |
사무실 내 전력량 예측 - (2) (0) | 2022.03.24 |
사무실 내 전력량 예측 (1) (1) | 2022.03.15 |