numpy : 파이썬 프로그래밍 언어를 위한 라이브러리로 다차원배열과 행렬처리를 위해서 사용한다.
scipy : 과학 및 기술 컴퓨팅에 사용하는 오픈소스 파이썬 라이브러리다. 선형 대수학, 이미지 처리, 보간(Interpolation), 최적화(optimization), 통계, 물리및 수학 함수를 제공한다.
scikit-learn : 2007년 구글 썸머 코드에서 구현됐다. 파이썬으로 구현된 가장 유명한 기계학습 오픈소스라이브러리 중 하나다.
matplotlib : NumPy를 위한 플로팅 라이브러리다. 자료들을 차트나 플롯으로 시각화 할 수 있다.
pandas : pandas는 데이터 구조 및 데이터 분석도구를 제공하는 파이썬 라이브러리다.
문서 전반에 걸쳐서 quandl데이터를 사용한다. 이것도 설치하자.
pip install quandl
quandl은 오픈데이터 플랫폼으로 금융전문가, 경제 전문가 및 투자자를 대상으로 하는 금융, 경제 데이터를 제공한다.
이제 시작하자. 회귀(Regression)란 무엇인지를 알아보자. 회귀는 연속된 데이터를 가져와서 데이터를 표현하는데 가장 적합한 방정식을 찾는 과정이다. 적합한 방정식을 찾으면, 어떤 값을 방정식에 넣었을 때의 결과를 예측 할 수 있다. 간단한 선형회귀분석은 최적의 fit line을 만드는 것이다.
데이터는 어떤 패턴을 가지기 마련인데, 그 중 가장 간단한 패턴이 위 그래프와 같은 선형 방정식이다.
회귀는 주식 가격을 예측하는데 널리 사용한다. 시간이 지남에 따른 연속적인 데이터 세트를 얻은 다음, 회귀를 이용해서 적당한 방정식을 만들어서 다음 가격을 예측하는 방식이다.
회귀는 슈퍼바이저 머신 러닝(supervised machine learning)다. 데이터분석가가 기계에 올바른 정답 셋을 반복적으로 입력해서 기계를 가르치는 방법이다. 입력된 정답 셋을 이용해서 기계가 학습을 하고 나면, 새로운 데이터입력을 기계가 테스트 할 수 있게 된다. 데이터분석가는 자신이 알고 있는 정답과, 기계가 리턴한 정답을 비교해서 기계학습의 정확도를 측정 할 수 있다. 정확도가 충분히 높다면, 데이터분석가는 해당 알고리즘을 실 세계에 사용할 것을 고려한다.
회귀는 주식가격예측에 널리 사용하고 있으므로, 실제 데이터를 이용해서 테스트 할 수 있다. 우리는 앞서 설치한 quandl의 데이터를 이용해서 학습을 할 것이다. 먼저 구글의 시세와 Alphabet의 주식데이터를 이용해서 분석을 시작해보자.
import pandas as pd
import quandl
df = quandl.get("WIKI/GOOGL")
print(df.head())
시작이 좋다. 패키지 몇개 설치하는 것으로 앞으로 학습에 사용할 데이터를 가져왔다. 그런데 데이터가 너무 많다 !!. 많은 사람들이 기계학습에 대해서 "무언가 데이터 때려 넣으면, 컴퓨터가 원하는 답을 척척 내놓는 일종의 마법과 같은 것으로 생각하는 경향이 있다. 기계학습은 가치있는 정보를 출력할 수 있지만, 그러기 위해서는 가치있는 데이터 즉, 의미있는 데이터를 준비해야 한다. 그렇다면 의미있는 정보인지 어떻게 알 수 있을까 ? 유일한 방법은 두뇌를 사용하는 것이다. 생각해보자. 과거의 가격이 미래의 가격을 나타내는가 ? 이렇게 생각 할 수도 있겠지만 가격은 시간에 따라서 변한다. 좀 더 긴 시간을 두고, 가격변동에 영향을 주는 다른 요인들을 함께 분석한다면, 조금 더 잘 예측 할 수 있을 것이다. 데이터는 많을 수록 유용하지만, 의미있는 데이터도 추출 할 수 있어야 한다. 이런 이유로 머신리닝에 제공되는 원시데이터는 몇 번의 가공과정을 거치게 된다. 데이터가 많아지면 가공에 많은 시간이 걸리고 빅 데이터기술을 사용해야 한다. 여러분이 머신러닝을 본격적으로 적용해야 한다면 빅 데이터 기술도 함께 학습해야 할 것이다.
우리가 가져온 데이터를 보자. Open, High, Low, Close 정보는 단순하긴 하지만, 별로 좋은 정보는 아니다. 분할, 배당, 배분, 신주발행등이 반영된 Adj(수정 주가)가 붙은 데이터를 사용하는게 좋다.
하여, 원본 데이터에서 필요한 정보만 가져오도록 수정했다.
2018년 3월/27일이 최신 데이터인거 같다. 와우 14년 동안 200배가 올랐다. 이제 수정(adjust)된 컬럼만 남았다. 계속해서 데이터를 변환해보자.
가장 낮은 주가와 높은 주가의 변화율 HL_PCT와 현재값과 이전 값사이의 변화를 백분율로 계산한 PC_change 컬럼을 추가하기로 했다.
Regression
Recent Posts
Archive Posts
Tags