SVM 활용 주가 예측 방법

이번에는 SVM(Support Vector Machine)을 활용한 주가 등락 예측에 대해서 언급하고자 한다. SVM은 신경망과 같은 지도학습이며 주로 패턴을 분류할 때 사용한다.

SVM의 기본적인 원리는 간단하다. 아래 그림처럼 상단 빨간색 패턴과 하단 파란색 패턴이 분류되어 있을 때 이러한 패턴을 가장 잘 분류할 수 있도록 방법을 제시하는 것이 SVM이다. 마치 눈으로 보고 분리하듯이 패턴간의 마진(margin)이 가장 크도록 분리한다. 즉, 아래 그림에서 B보다는 A 직선을 이용해 분리한다는 의미이다. 복잡하게는 커널 (kernel) 함수를 사용해 비선형으로 분포되어 있는 패턴도 분리 가능하다.

232px-svm_intro-svg
(위키미디어에서 이미지 발췌)

신경망에서는 층을 여러 개 두어 복잡한 패턴을 구분하는 것이며 SVM은 차원을 늘리는 방법으로 문제를 해결한다. SVM이 전반적으로 우수하나 부류 수가 많아짐에 따라 SVM이 신경망보다 완만하게 성능 저하가 있다고 한다. (참조 논문에서 인용)

SVM을 활용한 주가 예측 방법을 간단히 소개하면, 주가에 영향을 줄 수 있는 요소들을 특성(feature)으로 잡고 패턴들을 학습하는 것이다. 가장 쉽게 2가지 패턴 EPS, BPS만을 고려하고 한달 후의 주가가 상승할지 하락할지를 예측한다고 하자.  학습할 데이터(종목)의 EPS, BPS를 뿌리면 아마도 위 그림처럼 2차원에서 표현할 수 있을 것이다. (훨씬 복잡은 하겠다.) 그 중에 한달 후에 주가가 상승하면 1(위 그림에서는 빨간색), 아니면(-1)로 마크(태깅)를 하고 학습한다. 마크의 의미는 지도학습에서 결과값을 주는 것이다. 즉 분류의 대상을 결정해주는 것이다. 그렇게 학습이 되고 나면 직선이 생성될 것이다. 2차원에서는 직선에 대한 방정식을 얻을 수 있다. 학습이 된 이후 알고자 하는 새로운 종목에 대해서 EPS, BPS를 입력하면 주가가 상승할지 아니면 하락할지를 알 수 있게 된다. (예로 직선 위 있으면 상승 아니면 하락)

위 예에서는 EPS, BPS만을 고려했지만 주가를 실질적으로 예측하는 데는 더 많은 요소가 결부되어 있을 것이다. 그 필연적인 요소가 어떤 것인가를 결정하는 게 머신러닝 성과에 많은 영향을 미친다.

참조

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중