scikit-learn을 사용하여 부동산 가격 예측하기 – 3) 실험 데이터 분석하기

scikit-learn을 사용하여 부동산 가격 예측하기

3) 실험 데이터 분석하기

본격적으로 실험을 하기전에 pandas의 resample 함수를 사용해서 데이터의 분포를 확인해 보려고 합니다.  pandas의 resample 함수에서는 시계열 데이터의 시간 간격을 재조정할 수 있습니다. 이 함수를 사용하기 위해서는 dataframe이 시간 관련 index(datetimeIndex, PeriodIndex, TimedeltaIndex 등)를 가져야 합니다. 이전 포스트에서 데이터를 읽어올 때부터 아래와 같이 date 칼럼을 index로 설정하여 바로 사용이 가능합니다. 

df = pd.read_csv(“economy.csv”, parse_dates =[“date”], index_col =”date”)


함수의 사용방법은 아래와 같습니다.

DataFrame.resample(rule, how=None, axis=0, fill_method=None, closed=None, label=None, convention=’start’, kind=None, loffset=None, limit=None, base=0, on=None, level=None)

rule에는 resample을 실행할 시간 단위를 적어둡니다. (아래 표 참조)
이 때 시간 구간이 작아지면 데이터 양이 증가한다고 해서 업-샘플링(up-sampling)이라 하고 시간 구간이 커지면 데이터 양이 감소한다고 해서 다운-샘플링(down-sampling)이라 부릅니다.



좀 더 보기좋게 시간 단위의 alias만 정리된 표는 아래와 같습니다.

시간 단위 alias

그리고 아래와 같은 기본적인 aggregation 함수들을 dispatching이라는 방법으로 간단하게 호출하여 resample 함수와 같이 사용할 수 있습니다.

이제 실제 데이터 분포를 확인해보겠습니다. 예전 포스팅에서 부동산 지수 예측을 위해 저장했던 dataframe을 사용하겠습니다. 기존 데이터를 년말 기준으로 resample을 해서 각 칼럼당 개별 년도의 mean 값을 확인해보겠습니다.

df.resample(rule=’A’).mean()

데이터가 2010년부터 2018년도 까지 있다는 것을 확인할 수 있습니다. 그리고 각각의 속성(칼럼)의 mean 값을 확인할 수 있습니다. 얼핏 봐도 cd 금리(cd)와 국가채(spirit_deposit_rate) 시간이 지날 수록 연도별 평균값이 점점 낮아지고 있는 것을 확인할 수 있습니다.

그럼 실제로 cd 금리로 시계열 그래프를 그려보도록 하겠습니다. jupyter notebook을 사용할 경우 %matplotlib inline 을 명시하면 노트북 내부에서 그래프가 표시됩니다. 월말 기준으로(rule=’M’) 바 그래프(‘bar’)를 plot함수를 사용하여 아래와 같이 그려보겠습니다.

%matplotlib inline
df[‘cd’].resample(rule=’M’).mean().plot(‘bar’)



cd 금리 그래프

간단하게 그래프가 그려졌습니다. 그렇지만 월별 데이터로 그리니 넘 촘촘하게 그려지고 있습니다.

년도 단위로 데이터가 얼마나 있나 확인하고 싶어 count 함수를 rule=’A’ 옵션과 같이 사용해서 그래프를 다시 그려봅니다.

2018년도 데이터가 다른 년도 데이터보다 더 적은 것을 확인 할 수 있습니다.

이런식으로 시계열 데이터를 간단히 그래프를 그릴 수 있습니다.
그럼 이제 본격적인 실험으로 들어가보도록 하겠습니다 : )

댓글 (1)

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다