brunch

You can make anything
by writing

C.S.Lewis

by Chris송호연 Feb 20. 2017

코스피 지수 예측모델 개발 1편

문과생도 따라해볼 수 있는 예측 모델 개발

안녕하십니까, 송호연입니다.


예측 시스템하면 왠지 엄청난 기술 같아서 시작하기 조차 두려워하고 부담스러워하시는 분들이 많으세요-

그래서, 정말로 간단한 지표 예측 시스템을 단 30분만에 만들어볼 수 있는 가이드를 작성해보았습니다.


오늘 만들어볼 시스템은 바로 KOSPI의 지표를 예측하는 모델을 만들어보는 것입니다.


한국의 경제 트렌드를 압축적으로 말해주는 지표이기도 하고,

앞으로 KOSPI의 트렌드에 대해서는 많은 분들이 관심이 있으실 거 같아서 KOSPI 예측을 주제로 잡았습니다.


또 하나, 이번 가이드에는 프로그래밍 언어가 하나도 없습니다.

문과생도 해볼 수 있는 예측모델 개발이라는 점에 의미가 있을듯합니다 ^^


1. Azure ML 스튜디오에 접속합니다.

http://studio.azureml.net/



2. [Sign up here] 버튼을 눌르면 가입 플랜을 선택하는 화면이 나옵니다.



3가지 플랜 중에서, 무료인 Free Workspace 플랜을 선택합니다.


3. hotmail.com 계정으로 로그인하세요! 없으시면 hotmail 계정 하나 만들어주세요 ^^



4. AzureML(애져엠엘) 스튜디오 로그인을 완료했습니다.


새로운 머신러닝 실험을 만들기 위해 왼쪽 하단의 [NEW] 버튼을 눌러보겠습니다.


5. EXPERIMENT 메뉴에서 맨 아래로 내려보면 시계열 예측(Time Series Forecasting) 항목이 있습니다.


EXPERIMENT 메뉴에서 맨 아래로 내려서 Time Series Forecasting 항목을 선택합니다.


[OPEN IN STUDIO] 버튼을 클릭해서 시계열 예측 모델을 생성해보겠습니다.


6. 시계열 예측 실험(EXPERIMENT)이 생성되었습니다.



그래프가 복잡하게 생겼지만 걱정마세요- 설명해드릴게요!


7. 좌측 메뉴에서 [Data Input and Output] 메뉴를 선택합니다.



8. [Data Input and Output] 메뉴 안에 있는 [Enter Data Manually] 항목을 선택한후 가운데로 드래그해줍니다.



9. 드래그를 하면 [Enter Data Manually] 항목이 생성됩니다. 생성된 [Enter Data Manually] 를 선택한 후 우측의 [Data] 영역을 선택합니다.



10. 그리고 제가 준비해드린 이 파일의 내용을 메모장으로 열어서 복사해 넣습니다.


참고로 KOSPI 데이터는 아래 사이트에서 조회하실 수 있습니다.

https://global.krx.co.kr/contents/GLB/05/0501/0501010000/GLB0501010000.jsp


제가 다운받은 KOSPI 데이터는 2016년 2월 17일 부터 2017년 2월 17일까지의 KOSPI 지수입니다.



11. 기존 다이어그램에 있었던 [Time Series Dataset]을 선택한 후 오른쪽 마우스 클릭을 합니다.



12. [Delete] 메뉴를 선택합니다.



13. [Enter Data Manually]의 아래 동그라미와 [Edit Metadata] 위의 동그라미를 드래그하여 서로 연결해줍니다. 이 때 우리가 입력한 KOSPI 지수가 데이터로 입력됩니다.




14. 그러면 [RUN] 버튼을 눌러서 예측 모델을 실행시켜보겠습니다.


15. 이런, 이렇게 에러가 날 것입니다. 두번째 아이템인 [Edit Metadata]를 클릭합니다.



16. 오른쪽 메뉴에서 [Launch column selector] 를 클릭합니다.



17. 기존 데이터의 컬럼명이었던 "N1725"가 있네요. 이 컬럼명 오른쪽에 X 버튼을 눌러서 지워줍니다.



18. 그리고 우리가 입력한 KOSPI 데이터의 컬럼명인 "KOSPI"를 선택합니다.



그럼 이렇게 짠- 입력되었습니다.




19. 그럼 한가지 수정을 더 하겠습니다. 3번째 아이템인 [Split Data]를 선택합니다.


그리고 오른쪽의 [Relational expression] 항목을

 \"time" <= 150

으로 수정합니다.


20. 다시 [RUN]을 눌러서 예측 모델을 돌려봅시다.


 

21. 모든 네모상자에 V 체크표시가 되었다면, 실행이 완료된 것입니다. 실행 결과를 보기 위해선 맨 밑에 있는 [Add Rows] 아이템 하단의 동그라미를 선택한 후 오른쪽 마우스 클릭을 합니다.



22. 오른쪽 마우스 버튼으로 뜬 메뉴에서 [Visualize] 메뉴를 선택합니다.



23. 짠~! 이렇게 5가지 예측 모델로 예측값을 연산해 본 결과값들을 비교해보았습니다.



수고하셨습니다!

이렇게 하면 KOSPI 예측모델의 성능평가 결과를 한 눈에 볼 수 있습니다.


여기서 가장 중요한 지표는 RMSE(Root Mean Squared Error)로 우리가 중학교 때 배웠던 표준편차와 비슷한 개념입니다. RMSE가 작을 수록 예측모델의 성능이 좋다고 볼 수 있습니다.


저희가 이번 실험에서 만들어본 실험은 총 5가지의 예측모델의 성능을 평가한 것입니다.

1) seasonal arima

2) non-seasonal arima

3) average seasonal arima & ets

4) seasonal ets

5) non-seasonal ets


(각각 예측 모델에 대한 설명을 하기엔 글이 너무 어려워질 것 같아서 생략합니다 ^^

궁금하신 분들은 구글링해보세요!)


결과적으로, 2번, non-seasonal arima 예측모델이 성능이 가장 좋았다는 것을 확인할 수 있습니다.


다음 가이드에선 예측모델로 미래의 KOSPI 지표를 뽑아보고 95% 신뢰도 오차범위를 포함한

예측 지표 트렌드를 그래프로 만들어보도록 하겠습니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari