Data Analysis & ML/시계열분석

[시계열분석] 시계열 변수 추출 실습(Python)(3) - 종속변수들과 독립변수들과의 관계를 파악하기 위한 시각화 (bike-sharing-demand dataset)

YSY^ 2021. 3. 3. 16:38

[시계열분석] 시계열 변수(빈도/추세/계절성/주기/시계열분해/더미변수/지연값) :ysyblog.tistory.com/179

[시계열분석] 시계열 변수 추출 실습(Python)(1) - 시계열 분해 (bike-sharing-demand dataset) :ysyblog.tistory.com/209

[시계열분석] 시계열 변수 추출 실습(Python)(2) - 이동평균/지연값/증감폭/그룹화 (bike-sharing-demand dataset) : ysyblog.tistory.com/210

해당 포스팅은 위 포스팅들에 이어 진행됩니다.

각 변수들의 분포 파악

# histogram plot
raw_fe.hist(bins=20, grid=True, figsize=(16,12))
plt.show()

 

target 변수 분포 파악

# box plot
raw_fe.boxplot(column='count', by='season', grid=True, figsize=(12,5))
plt.ylim(0,1000)
raw_fe.boxplot(column='registered', by='season', grid=True, figsize=(12,5))
plt.ylim(0,1000)
raw_fe.boxplot(column='casual', by='season', grid=True, figsize=(12,5))
plt.ylim(0,1000)

공휴일에 따른 count와 hour의 관계 시각화

raw_fe[raw_fe.holiday == 0].boxplot(column='count', by='Hour', grid=True, figsize=(12,5))
plt.show()
raw_fe[raw_fe.holiday == 1].boxplot(column='count', by='Hour', grid=True, figsize=(12,5))
plt.show()

 

시간에 따라 count가 변화함을 알 수 있다.

 

평일에 따른 count, hour, temp의 관계 시각화(3차원)

# scatter plot for some group
raw_fe[raw_fe.workingday == 0].plot.scatter(y='count', x='Hour', c='temp', grid=True, figsize=(12,5), colormap='viridis')
plt.show() #temp : 3차원축
raw_fe[raw_fe.workingday == 1].plot.scatter(y='count', x='Hour', c='temp', grid=True, figsize=(12,5), colormap='viridis')
plt.show()


weather 분포 파악

pd.DataFrame(raw_fe['weather'].value_counts()/raw_fe['weather'].value_counts().sum()*100).T

 

# generate cross table
sub_table = pd.crosstab(index=raw_fe['count'], columns=raw_fe['weather'], margins=True)
sub_table/sub_table.loc['All']*100

count와 temp의 관계 시각화

# box plot example
raw_fe.boxplot(column='count', by='temp', grid=True, figsize=(12,5))
plt.show()

 

count, humidity, temp의 관계 시각화

# scatter plot example
raw_fe.plot.scatter(y='count', x='humidity', c='temp', grid=True, figsize=(12,5), colormap='viridis')
plt.show()

 

상관관계 시각화

pd.plotting.scatter_matrix(raw_fe, figsize=(18,18), diagonal='kde')
plt.show()

 

raw_fe.corr().style.background_gradient().set_precision(2)
# raw_fe.corr().style.background_gradient().set_precision(2).set_properties(**{'font-size': '15pt'}) #폰트 사이즈 확대

 

target값과 독립변수들과의 상관관계

raw_fe.corr().loc[:, ['casual', 'registered', 'count']].style.background_gradient().set_precision(2).set_properties(**{'font-size': '15pt'})

 

해당 포스팅은 패스트캠퍼스의 파이썬을 활용한 시계열 데이터 분석 A-Z 올인원 패키지 강의를 듣고 정리한 내용입니다.

728x90
반응형