KR102185921B1 - 신경망을 이용한 주가 예측 장치 및 그 방법 - Google Patents

신경망을 이용한 주가 예측 장치 및 그 방법 Download PDF

Info

Publication number
KR102185921B1
KR102185921B1 KR1020180115960A KR20180115960A KR102185921B1 KR 102185921 B1 KR102185921 B1 KR 102185921B1 KR 1020180115960 A KR1020180115960 A KR 1020180115960A KR 20180115960 A KR20180115960 A KR 20180115960A KR 102185921 B1 KR102185921 B1 KR 102185921B1
Authority
KR
South Korea
Prior art keywords
stock price
price prediction
prediction
data
date
Prior art date
Application number
KR1020180115960A
Other languages
English (en)
Other versions
KR20200039037A (ko
Inventor
이기훈
김홍지
정지현
고은나래
조만재
Original Assignee
광운대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 광운대학교 산학협력단 filed Critical 광운대학교 산학협력단
Priority to KR1020180115960A priority Critical patent/KR102185921B1/ko
Publication of KR20200039037A publication Critical patent/KR20200039037A/ko
Application granted granted Critical
Publication of KR102185921B1 publication Critical patent/KR102185921B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/06Asset management; Financial planning or analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Accounting & Taxation (AREA)
  • Game Theory and Decision Science (AREA)
  • Marketing (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Technology Law (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

신경망을 이용한 주가 예측 장치 및 그 방법이 개시된다. 본 발명은 개별 주식 종목의 주가와 관련된 주가 데이터를 수집하고, 수집된 주가 데이터를 이용하여 미리 설정된 차원을 가지는 입력 데이터를 생성하며, 생성된 입력 데이터를 기반으로 학습하여 생성한 복수 개의 주가 예측 모델들을 이용하여 예측 날짜의 복수 개의 주가 예측 값들을 각각 출력하고, 출력된 복수 개의 주가 예측 값들을 기반으로 학습하여 생성한 주가 예측 통합 모델을 이용하여 예측 날짜의 최종 주가 예측 값을 출력함으로써, 사용자가 선택한 주식 종목의 미래 주가를 예측할 수 있다.

Description

신경망을 이용한 주가 예측 장치 및 그 방법 {APPARATUS FOR PREDICTING STOCK PRICE USING NEURAL NETWORK AND METHOD THEREOF}
본 발명은 딥러닝 기법을 이용하여 주가를 예측하는 장치 및 그 방법에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시 예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
주식투자는 많은 사람들이 이용하는 재테크 방법 중의 하나로, 주식 투자를 함에 있어서 주식의 가치를 파악하여 주가가 상승할지 하락할지를 예측하여야 하고, 이러한 예측을 위해 증권사들은 다양한 주가지표를 제공하고 있다. 하지만, 상술한 주가지표에도 불구하고 주가에 영향을 미치는 근본 요인들이 너무나도 다양하고 복잡하여 상술한 주가지표만을 이용하여 변동 가능성이 큰 주가를 예측하는 것은 어려운 문제점이 있다.
기계 학습(machine learning)은 인공 지능의 한 분야로서 컴퓨터가 특정 문제에 대한 올바른 답을 도출할 수 있도록 학습 데이터를 통해 문제와 답 사이의 연관 관계를 스스로 학습하게 하는 기술을 나타내는 것으로, 상술한 상승과 하락의 변동 가능성이 큰 주가를 예측하는데 기계 학습을 적용하려는 연구가 활발히 진행되고 있다.
하지만, 종래의 기계 학습 방법을 이용하여 주가를 예측하는 경우 예측된 주가와 실제 주가를 비교하였을 때 오차가 큰 문제가 있으므로 변동 가능성이 큰 주가를 예측하기에는 어려운 문제점이 있다.
본 발명은 변동 가능성이 큰 주가를 정확히 예측할 수 있도록 개별 주식 종목의 주가와 관련된 주가 데이터를 수집하고, 수집된 주가 데이터를 이용하여 미리 설정된 차원을 가지는 입력 데이터를 생성하여, 복수 개의 주가 예측 모델들을 이용하여 생성된 입력 데이터로부터 예측하려는 날짜의 복수 개의 주가 예측 값들을 각각 출력하고, 생성한 주가 예측 통합 모델을 이용하여 출력된 복수 개의 주가 예측 값들을 통합하여 예측 날짜의 최종 주가 예측 값을 출력하는 신경망을 이용한 주가 예측 장치 및 그 방법을 제공함에 있다.
상술한 목적을 달성하기 위한 본 발명의 또 다른 일 실시 예에 따른 신경망을 이용한 주가 예측 장치는 개별 주식 종목의 주가와 관련된 주가 데이터를 수집하는 샘플 데이터 수집부; 상기 수집된 주가 데이터를 이용하여 미리 설정된 차원을 가지는 입력 데이터를 생성하는 입력 데이터 생성부; 상기 생성된 입력 데이터를 기반으로 개별적으로 학습하여 생성한 복수 개의 주가 예측 모델들을 이용하여 예측하려는 예측 날짜의 복수 개의 주가 예측 값들을 각각 출력하는 복수 개의 주가 예측부들; 및 상기 출력된 복수 개의 주가 예측 값들을 기반으로 학습하여 생성한 주가 예측 통합 모델을 이용하여 상기 출력된 복수 개의 주가 예측 값들을 통합하여 상기 예측 날짜의 최종 주가 예측 값을 출력하는 주가 예측 통합부;를 포함할 수 있다.
바람직하게, 각 날짜 별로 상기 개별 주식 종목의 주가, 거래량 및 거래 시간을 포함하는 상기 수집된 주가 데이터를 가공하여 주식 분석에 사용되는 기술적 분석 데이터로 변환하는 주가 데이터 변환부;를 더 포함하고, 상기 입력 데이터 생성부는 상기 각 날짜 별로 변환된 기술적 분석 데이터를 이용하여 상기 입력 데이터를 생성하며, 상기 복수 개의 주가 예측부들은 상기 수집된 주가 데이터 중 상기 예측 날짜의 주가를 레이블링하여 상기 복수 개의 주가 예측 값들이 상기 레이블링된 예측 날짜의 주가가 되도록 상기 복수 개의 주가 예측 모델들을 각각 학습하고, 상기 주가 예측 통합부는 상기 최종 주가 예측 값이 상기 레이블링된 예측 날짜의 주가가 되도록 상기 주가 예측 통합 모델을 학습할 수 있다.
바람직하게, 상기 입력 데이터 생성부는 상기 각 날짜 별로 변환된 기술적 분석 데이터에 포함된 M (M은 자연수) 개의 기술적 분석 지표들 중 상기 예측 날짜보다 N1 (N1은 자연수) 일 전의 날짜에 해당하는 M1 (M1은 자연수, M1≤M) 개의 기술적 분석 지표들만을 이용하여 1 X M1 인 1 차원의 제1 입력 데이터를 생성하는 제1 입력 데이터 생성부; 및 상기 각 날짜 별로 변환된 기술적 분석 데이터에 포함된 M개의 기술적 분석 지표들 중 상기 예측 날짜보다 N 일(N은 자연수, 1<N-N1) 전부터 상기 예측 날짜보다 상기 N1 일 전까지인 N2(N2는 자연수, N2=N-N1) 일치에 해당하는 각 날짜 별 M2(M2는 자연수, M2≤M) 개의 기술적 분석 지표들만을 이용하여 N2 X M2인 2차원의 제2 입력 데이터를 생성하는 제2 입력 데이터 생성부;를 포함하고, 상기 복수 개의 주가 예측부들은 상기 생성된 제1 입력 데이터를 기반으로 개별적으로 학습하여 생성한 제1 주가 예측 모델을 이용하여 상기 예측 날짜의 제1 주가 예측 값을 출력하는 제1 주가 예측부; 및 상기 생성된 제2 입력 데이터를 기반으로 개별적으로 학습하여 생성한 제2 주가 예측 모델을 이용하여 상기 예측 날짜의 제2 주가 예측 값을 출력하는 제2 주가 예측부;를 포함하며, 상기 주가 예측 통합부는 상기 주가 예측 통합 모델을 이용하여 상기 출력된 제1 주가 예측 값 및 상기 출력된 제2 주가 예측 값을 통합하여 상기 예측 날짜의 최종 주가 예측 값을 출력할 수 있다.
바람직하게, 상기 제1 주가 예측 모델은 상기 생성된 제1 입력 데이터를 입력 받는 제1 입력층 및 상기 제1 주가 예측 값을 출력하는 제1 출력층과 각각 가중치로 연결되고 상기 제1 입력층과 상기 제1 출력층 사이에 위치하는 적어도 하나의 제1 은닉층을 포함하는 다층 퍼셉트론(multi-layer perceptron, MLP) 기반의 레이어로 구성될 수 있다.
바람직하게, 상기 제2 주가 예측 모델은 합성곱(convolution) 연산자를 통해 상기 생성된 제2 입력 데이터로부터 특징을 추출하여 특징 맵을 생성하는 합성곱 층(convolutional layer), 상기 생성된 특징 맵을 미리 설정된 공간적 차원으로 축소시키는 풀링 층(pooling layer) 및 상기 미리 설정된 공간적 차원으로 축소된 특징 맵으로부터 상기 제2 주가 예측 값을 출력하는 완전 연결 층(fuly connected layer)을 포함하는 합성곱 신경망(Convolutional Neural Network, CNN) 기반의 레이어로 구성될 수 있다.
바람직하게, 상기 입력 데이터 생성부는 상기 각 날짜 별로 변환된 기술적 분석 데이터에 포함된 M 개(M은 자연수)의 기술적 분석 지표들 중 상기 예측 날짜보다 N1 일(N1은 자연수) 전의 날짜에 해당하는 M1(M1은 자연수, M1≤M) 개의 기술적 분석 지표들만을 이용하여 1 X M1 인 1 차원의 제1 입력 데이터를 생성하는 제1 입력 데이터 생성부; 및 상기 각 날짜 별로 변환된 기술적 분석 데이터에 포함된 M 개의 기술적 분석 지표들 중 상기 예측 날짜보다 N’일(N’은 자연수, 1<N’-N1) 전부터 상기 예측 날짜보다 상기 N1 일 전까지인 N3(N3는 자연수, N3=N’-N1) 일치에 해당하는 각 날짜 별 M3(M3은 자연수, M3≤M) 개의 기술적 분석 지표들만을 이용하여 N3 X M3 인 2차원의 제3 입력 데이터를 생성하는 제3 입력 데이터 생성부;를 포함하고, 상기 복수 개의 주가 예측부들은 상기 생성된 제1 입력 데이터를 기반으로 개별적으로 학습하여 생성한 제1 주가 예측 모델을 이용하여 상기 예측 날짜의 제1 주가 예측 값을 출력하는 제1 주가 예측부; 및 상기 2차원의 제3 입력 데이터를 1 X M3 인 1차원의 N3 개 데이터들로 분리하고, 상기 분리된 N3 개 데이터들을 기반으로 개별적으로 학습하여 생성한 제3 주가 예측 모델을 이용하여 상기 예측 날짜의 제3 주가 예측 값을 출력하는 제3 주가 예측부;를 포함하며, 상기 주가 예측 통합부는 상기 주가 예측 통합 모델을 이용하여 상기 출력된 제1 주가 예측 값 및 상기 출력된 제3 주가 예측 값을 통합하여 상기 예측 날짜의 최종 주가 예측 값을 출력할 수 있다.
바람직하게, 상기 제1 주가 예측 모델은 상기 생성된 제1 입력 데이터를 입력 받는 제1 입력층 및 상기 제1 주가 예측 값을 출력하는 제1 출력층과 각각 가중치로 연결되고 상기 제1 입력층과 상기 제1 출력층 사이에 위치하는 적어도 하나의 제1 은닉층을 포함하는 다층 퍼셉트론(multi-layer perceptron, MLP) 기반의 레이어로 구성되고, 상기 제3 주가 예측 모델은 상기 N3 일치의 시계열적 특성이 반영된 상기 분리된 N3개 데이터들을 각각 입력 받아 하나의 상기 제3 주가 예측 값을 출력하는 시계열 데이터 분석이 가능한 순환신경망(Recurrent Neural Network, RNN) 기반의 레이어로 구성될 수 있다.
바람직하게, 상기 제3 주가 예측 모델은 시간적 순서를 고려하여 상기 분리된 N3개 데이터들을 입력 받아 상기 예측 날짜의 제3 주가 예측 값을 출력하도록 현재 메모리 셀에 이전 메모리 셀 상태를 반영할지 여부를 결정하는 망각 게이트(Forget Gate)를 포함하는 장단기 메모리(Long Short Term Memory, LSTM) 셀로 구성된 순환신경망(Recurrent Neural Network, RNN) 기반의 레이어로 구성될 수 있다.
바람직하게, 상기 입력 데이터 생성부는 상기 각 날짜 별로 변환된 기술적 분석 데이터에 포함된 M개의 기술적 분석 지표들 중 상기 예측 날짜보다 N 일(N은 자연수, 1<N-N1) 전부터 상기 예측 날짜보다 상기 N1 일 전까지인 N2(N2는 자연수, N2=N-N1) 일치에 해당하는 각 날짜 별 M2(M2는 자연수, M2≤M) 개의 기술적 분석 지표들만을 이용하여 N2 X M2인 2차원의 제2 입력 데이터를 생성하는 제2 입력 데이터 생성부; 및 상기 각 날짜 별로 변환된 기술적 분석 데이터에 포함된 M 개의 기술적 분석 지표들 중 상기 예측 날짜보다 N’일(N’은 자연수, 1<N’-N1) 전부터 상기 예측 날짜보다 상기 N1 일 전까지인 N3(N3는 자연수, N3=N’-N1) 일치에 해당하는 각 날짜 별 M3(M3은 자연수, M3≤M) 개의 기술적 분석 지표들만을 이용하여 N3 X M3 인 2차원의 제3 입력 데이터를 생성하는 제3 입력 데이터 생성부;를 포함하고, 상기 복수 개의 주가 예측부들은 상기 생성된 제2 입력 데이터를 기반으로 개별적으로 학습하여 생성한 제2 주가 예측 모델을 이용하여 상기 예측 날짜의 제2 주가 예측 값을 출력하는 제2 주가 예측부; 및 상기 2차원의 제3 입력 데이터를 1 X M3 인 1차원의 N3 개 데이터들로 분리하고, 상기 분리된 N3 개 데이터들을 기반으로 개별적으로 학습하여 생성한 제3 주가 예측 모델을 이용하여 상기 예측 날짜의 제3 주가 예측 값을 출력하는 제3 주가 예측부;를 포함하며, 상기 주가 예측 통합부는 상기 주가 예측 통합 모델을 이용하여 상기 출력된 제2 주가 예측 값 및 상기 출력된 제3 주가 예측 값을 통합하여 상기 예측 날짜의 최종 주가 예측 값을 출력할 수 있다.
바람직하게, 상기 주가 예측 통합 모델은 상기 출력된 복수 개의 주가 예측 값들을 각각 입력 받는 복수 개의 입력 노드를 포함하는 제2 입력층 및 상기 최종 주가 예측 값을 출력하는 제2 출력층과 각각 가중치로 연결되고 상기 제2 입력층과 상기 제2 출력층 사이에 위치하는 적어도 하나의 제2 은닉층을 포함하는 다층 퍼셉트론(MLP) 기반의 레이어로 구성될 수 있다.
바람직하게, 상기 입력 데이터 생성부는 시계열적 특성을 고려하여 상기 수집된 주가 데이터를 미리 설정된 시간 간격으로 분할하고, 상기 분할된 주가 데이터를 미리 설정된 제1 비율에 해당하는 학습 데이터와 미리 설정된 제2 비율에 해당하는 검증 데이터로 분류하며, 상기 분류된 학습 데이터를 이용하여 상기 미리 설정된 차원을 가지는 입력 데이터를 생성하고, 상기 복수 개의 주가 예측부들은 상기 분류된 검증 데이터 중 상기 예측 날짜의 주가를 레이블링하여 상기 복수 개의 주가 예측 값들이 상기 레이블링된 예측 날짜의 주가가 되도록 상기 복수 개의 주가 예측 모델들을 각각 학습하고, 상기 주가 예측 통합부는 상기 최종 주가 예측 값이 상기 레이블링된 예측 날짜의 주가가 되도록 상기 주가 예측 통합 모델을 학습할 수 있다.
바람직하게, 상기 샘플 데이터 수집부는 상기 개별 주식 종목에 해당하는 기업의 경영에 따른 재무 상태를 표시한 재무제표 및 환율 데이터를 더 수집하고, 상기 입력 데이터 생성부는 상기 수집된 주가 데이터, 재무제표 및 환율 데이터를 이용하여 미리 설정된 차원을 가지는 입력 데이터를 생성할 수 있다.
상술한 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 컴퓨팅 디바이스에 의한 신경망을 이용한 주가 예측 방법은 개별 주식 종목의 주가와 관련된 주가 데이터를 수집하는 단계; 상기 수집된 주가 데이터를 이용하여 미리 설정된 차원을 가지는 입력 데이터를 생성하는 단계; 상기 생성된 입력 데이터를 기반으로 개별적으로 학습하여 생성한 복수 개의 주가 예측 모델들을 이용하여 예측하려는 예측 날짜의 복수 개의 주가 예측 값들을 각각 출력하는 단계; 및 상기 출력된 복수 개의 주가 예측 값들을 기반으로 학습하여 생성한 주가 예측 통합 모델을 이용하여 상기 출력된 복수 개의 주가 예측 값들을 통합하여 상기 예측 날짜의 최종 주가 예측 값을 출력하는 단계;를 포함할 수 있다.
바람직하게, 각 날짜 별로 상기 개별 주식 종목의 주가, 거래량 및 거래 시간을 포함하는 상기 수집된 주가 데이터를 가공하여 주식 분석에 사용되는 기술적 분석 데이터로 변환하는 단계;를 더 포함하고, 상기 입력 데이터를 생성하는 단계는 상기 각 날짜 별로 변환된 기술적 분석 데이터를 이용하여 상기 입력 데이터를 생성하며, 상기 복수 개의 주가 예측 모델들은 상기 수집된 주가 데이터 중 상기 예측 날짜의 주가를 레이블링하여 상기 복수 개의 주가 예측 값들이 상기 레이블링된 예측 날짜의 주가가 되도록 각각 학습되고, 상기 상기 주가 예측 통합 모델은 상기 최종 주가 예측 값이 상기 레이블링된 예측 날짜의 주가가 되도록 학습될 수 있다.
바람직하게, 상기 입력 데이터를 생성하는 단계는 상기 각 날짜 별로 변환된 기술적 분석 데이터에 포함된 M 개(M은 자연수)의 기술적 분석 지표들 중 상기 예측 날짜보다 N1 일(N1은 자연수) 전의 날짜에 해당하는 M1 (M1은 자연수, M1≤M) 개의 기술적 분석 지표들만을 이용하여 1 X M1 인 1 차원의 제1 입력 데이터를 생성하는 단계; 및 상기 각 날짜 별로 변환된 기술적 분석 데이터에 포함된 M 개의 기술적 분석 지표들 중 상기 예측 날짜보다 N (N은 자연수, 1<N-N1) 일전부터 상기 예측 날짜보다 상기 N1 일 전까지인 N2 (N2는 자연수, N2=N-N1) 일치에 해당하는 각 날짜 별 M2(M2는 자연수, M2≤M) 개의 기술적 분석 지표들만을 이용하여 N2 X M2인 2차원의 제2 입력 데이터를 생성하는 단계;를 포함하고, 상기 복수 개의 주가 예측 값들을 각각 출력하는 단계는 상기 생성된 제1 입력 데이터를 기반으로 개별적으로 학습하여 생성한 제1 주가 예측 모델을 이용하여 상기 예측 날짜의 제1 주가 예측 값을 출력하는 단계; 및 상기 생성된 제2 입력 데이터를 기반으로 개별적으로 학습하여 생성한 제2 주가 예측 모델을 이용하여 상기 예측 날짜의 제2 주가 예측 값을 출력하는 단계;를 포함하며, 상기 최종 주가 예측 값을 출력하는 단계는 상기 주가 예측 통합 모델을 이용하여 상기 출력된 제1 주가 예측 값 및 상기 출력된 제2 주가 예측 값을 통합하여 상기 예측 날짜의 최종 주가 예측 값을 출력할 수 있다.
본 발명의 또 다른 목적을 달성하기 위하여 본 발명의 신경망을 이용한 주가를 예측하는 방법이 컴퓨터에서 수행하기 위한 컴퓨터에서 판독 가능한 프로그램이 기록된 저장 매체를 제공할 수 있다.
본 발명의 일 실시 예에 따르면 예측된 주가와 실제 주가의 절대평균백분율오차를 감소시킬 있으므로, 사용자가 선택한 주식 종목의 미래 주가를 보다 정확하게 예측할 수 있다.
또한, 본 발명의 일 실시 예에 따르면 주가 데이터의 시계열적 특성을 고려하여 학습 데이터와 검증 데이터를 분류하고, 분류된 데이터를 이용하여 네트워크 모델을 학습하므로 종래의 네트워크 모델을 이용하는 경우 나타나는 경사 사라짐 문제(Vanishing Gradient Problem)를 방지하면서 주가 예측의 정확성을 향상시킬 수 있다.
본 발명의 효과들은 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
도 1은 본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 장치의 구성을 개략적으로 도시한 블록도이다.
도 2는 본 발명의 또 다른 일 실시 예에 따른 신경망을 이용한 주가 예측 장치의 구성을 구체적으로 도시한 블록도이다.
도 3은 본 발명의 일 실시 예에 따른 제1 주가 예측 값을 출력하는 방법을 설명하기 위한 도면을 나타낸 것이다.
도 4는 본 발명의 일 실시 예에 따른 제1 주가 예측 모델을 설명하기 위한 도면을 나타낸 것이다.
도 5는 본 발명의 일 실시 예에 따른 제2 주가 예측 값을 출력하는 방법을 설명하기 위한 도면을 나타낸 것이다.
도 6은 본 발명의 일 실시 예에 따른 제3 주가 예측 값을 출력하는 방법을 설명하기 위한 도면을 나타낸 것이다.
도 7은 본 발명의 일 실시 예에 따른 최종 주가 예측 값을 출력하는 방법을 설명하기 위한 도면을 나타낸 것이다.
도 8a 및 도 8b는 본 발명의 일 실시 예에 따른 학습 데이터 및 검증 데이터를 분류하는 방법을 설명하기 위한 도면을 나타낸 것이다.
도 9는 절대 평균 백분율 오차를 이용하여 본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 장치의 성능을 설명하기 위한 도면을 나타낸 것이다.
도 10a 및 도 10b는 본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 장치의 주가 예측 결과 성능을 설명하기 위한 도면이다.
도 11은 본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 방법을 설명하기 위한 흐름도이다.
도 12는 본 발명의 또 다른 일 실시 예에 따른 신경망을 이용한 주가 예측 방법을 구체적으로 설명하기 위한 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 명세서에서 “학습”, “러닝” 등의 용어는 인간의 교육 활동과 같은 정신적 작용을 지칭하도록 의도된 것이 아닌 절차에 따른 컴퓨팅(computing)을 통하여 기계 학습(machine learning)을 수행함을 일컫는 용어로 해석한다.
본 명세서에서 "제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
본 명세서에서 각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 명세서에서, “가진다”, “가질 수 있다”, “포함한다” 또는 “포함할 수 있다”등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
도 1은 본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 장치의 구성을 개략적으로 도시한 블록도이다.
도 1을 참조하면, 본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 장치(10)는 샘플 데이터 수집부(100), 주가 데이터 변환부(200), 입력 데이터 생성부(300), 복수 개의 주가 예측부들(400) 및 주가 예측 통합부(500)를 포함할 수 있다. 신경망을 이용한 주가 예측 장치(10)는 도 1에서 예시적으로 도시한 다양한 구성요소들 중에서 일부 구성요소를 생략하거나 다른 구성요소를 추가로 포함할 수 있다.
본 발명의 일 실시 예에 따른 샘플 데이터 수집부(100)는 개별 주식 종목의 주가와 관련된 주가 데이터를 수집할 수 있다.
주가 데이터는 주식 종목에서 일반적으로 사용되는 시가, 고가, 저가, 종가 및 거래량을 포함할 수 있다.
또한, 본 발명의 또 다른 일 실시 예에 따른 샘플 데이터 수집부(100)는 상술한 주가 데이터뿐만 아니라 개별 주식 종목에 해당하는 기업의 경영에 따른 재무 상태를 표시한 재무제표 및 환율 데이터를 더 수집할 수 있다.
상술한 재무제표는 일반적으로 기업을 평가하는데 가장 기본이 되는 자료를 나타내며, 재무제표는 대차 대조표, 손익 계산서 등을 나타낸다. 본 발명의 일 실시 예에 따른 재무제표의 지표로는 영업 이익률 및 총자산이익률이 사용될 수 있으나, 이에 한정되는 것은 아니다.
또한, 본 발명의 일 실시 예에 따른 환율 데이터의 지표로는 환율과 주가의 인과관계를 이용하도록 일별 환율 데이터가 사용될 수 있으나, 이에 한정되는 것은 아니다.
본 발명의 일 실시 예에 따른 주가 데이터 변환부(200)는 샘플 데이터 수집부(100)에서 수집된 각 날짜 별로 개별 주식 종목의 주가, 거래량 및 거래 시간을 포함하는 주가 데이터를 가공하여 주가 데이터를 주식 분석에 사용되는 기술적 분석 데이터로 변환할 수 있다.
상술한 기술적 분석 데이터는 기술적 분석 지표인 볼린저 밴드(Bollinger bands, BBANDS), 이동평균(Moving Average, MA), 단순 이동 평균(Simple Moving Average, SMA), 가중 이동 평균(Weight Moving Average, WMA), 방향 운동 지수(Directional Movement Index, DMI), 상대강도지수(RELATIVE STRENGTH INDEX, RSI), MACD(Moving Average Convergence & Divergence), 모맨텀(Momentum, MOM) 및 CCI(Commodity Channel Index) 중 적어도 하나를 포함할 수 있으나, 상술한 예시는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정 되는 것은 아니며 기술적 분석 데이터는 주가 데이터를 분석할 수 있는 다양한 기술적 분석 지표들을 포함할 수 있다.
상술한 볼린저밴드는 주가가 수렴과 확장을 반복하며 움직일 때 주가의 움직임에 따라 밴드의 폭이 결정되는 것으로, 가격 변동성이 큰 경우 밴드의 폭이 넓어지게 되고, 반대로 가격의 변동성이 작은 경우 밴드의 폭이 좁아지게 된다. 볼린저밴드의 폭은 상한 밴드(upper band), 중심 밴드(middle band) 및 하한 밴드(down band)를 이용하여 산출될 수 있다.
상술한 모맨텀(MOM)은 단기간 동안에 주가가 변해온 양을 측정하는 지표를 나타내고, 방향운동 지수(DMI)는 시장의 방향성과 추세의 강도를 계량화한 지표를 나타내며, MACD는 장기 및 단기 두 개의 이동평균 교차접근법을 이용한 운동량 지표를 나타내고, CCI는 주가와 주가를 이동평균한 값의 편차를 구하여 주가가 일정 기간의 평균값에서 얼마나 떨어져 있는지에 대한 변동성 지표를 나타내며, RSI는 일정 기간 동안의 주가 등락 중에서 상승폭과 하락폭이 어느 정도인지를 분석하는 것으로 상승추세나 하락추세에서 얼마나 강하고 약한지 현재의 추세 강도를 백분율로 나타내어 언제 주가 추세가 전환될 것인지를 예측하기 위한 지표를 나타낸다.
상술한 이동 평균(MA)은 미리 정해진 기간 동안의 증권의 평균적 가격을 나타내는 지표를 나타낸다. 단순 이동 평균(SMA)은 미리 정해진 기간 동안의 종가들을 모두 합하여 계산에 쓰이는 가격들의 개수로 나눈 지표를 나타낸다. 가중 이동 평균(WMA) 특정 기간의 종가를 가중하여 계산한 이동 평균의 지표를 나타낸다. 구체적으로, 오래된 데이터에는 낮은 가중치를 최근 데이터에는 높은 가중치를 부여하는 방법으로 계산된 이동 평균의 지표이다.
본 발명의 일 실시 예에 따른 입력 데이터 생성부(300)는 수집된 주가 데이터를 이용하여 미리 설정된 차원을 가지는 입력 데이터를 생성할 수 있다.
본 발명의 일 실시 예에 따른 입력 데이터 생성부(300)는 시계열적 특성을 고려하여 샘플 데이터 수집부(100)에서 수집된 주가 데이터를 미리 설정된 시간 간격으로 분할하고, 분할된 주가 데이터를 미리 설정된 제1 비율에 해당하는 학습 데이터와 미리 설정된 제2 비율에 해당하는 검증 데이터로 분류하며, 분류된 학습 데이터를 이용하여 미리 설정된 차원을 가지는 입력 데이터를 생성할 수 있다. 상술한 주가 데이터를 분할하고, 분할된 주가 데이터를 학습 데이터와 검증 데이터로 분류하는 방법에 대한 자세한 설명은 후술하도록 한다.
본 발명의 또 다른 일 실시 예에 따른 입력 데이터 생성부(300)는 샘플 데이터 수집부(100)에서 수집된 주가 데이터, 재무제표 및 환율 데이터를 이용하여 미리 설정된 차원을 가지는 입력 데이터를 생성할 수 있다.
또한, 본 발명의 또 다른 일 실시 예에 따른 입력 데이터 생성부(300)는 주가 데이터 변환부(200)에서 각 날짜 별로 변환된 기술적 분석 데이터를 이용하여 미리 설정된 차원을 가지는 입력 데이터를 생성할 수 있다.
상술한 입력 데이터를 생성하는 구체적인 방법은 후술하는 도 2를 참조하여 설명하도록 한다.
본 발명의 일 실시 예에 따른 복수 개의 주가 예측부들(400)은 생성된 입력 데이터를 기반으로 개별적으로 학습하여 생성한 복수 개의 주가 예측 모델들을 이용하여 예측하려는 예측 날짜의 복수 개의 주가 예측 값들을 각각 출력할 수 있다.
상술한 복수 개의 주가 예측부들(400)은 샘플 데이터 수집부(100)에서 수집된 주가 데이터 중 예측 날짜의 주가를 레이블링하여 복수 개의 주가 예측 값들이 레이블링된 예측 날짜의 주가가 되도록 복수 개의 주가 예측 모델들을 각각 학습할 수 있다.
구체적으로, 본 발명의 일 실시 예에 따른 복수 개의 주가 예측부들(400)은 입력 데이터 생성부(300)에서 미리 설정된 시간 간격으로 분할된 주가 데이터에서 미리 설정된 제2 비율로 분류된 검증 데이터에 포함된 예측 날짜의 주가를 레이블링하여 복수 개의 주가 예측 값들이 레이블링된 예측 날짜의 주가가 되도록 복수 개의 주가 예측 모델들을 각각 학습할 수 있다.
상술한 복수 개의 주가 예측 값들을 출력하는 구체적인 방법은 후술하는 도 2를 참조하여 설명하도록 한다.
본 발명의 일 실시 예에 따른 주가 예측 통합부(500)는 출력된 복수 개의 주가 예측 값들을 기반으로 학습하여 생성한 주가 예측 통합 모델을 이용하여 출력된 복수 개의 주가 예측 값들을 통합하여 예측 날짜의 최종 주가 예측 값을 출력할 수 있다. 상술한 주가 예측 통합부(500)는 최종 주가 예측 값이 레이블링된 예측 날짜의 주가가 되도록 주가 예측 통합 모델을 학습할 수 있다.
구체적으로, 본 발명의 일 실시 예에 따른 주가 예측 통합부(500)는 최종 주가 예측 값이 미리 설정된 시간 간격으로 분할된 주가 데이터에서 미리 설정된 제2 비율로 분류된 검증 데이터에 포함된 각 날짜 별 주가 중에서 예측 날짜에 해당하는 주가가 되도록 주가 예측 통합 모델을 학습할 수 있다.
상술한 최종 주가 예측 값을 출력하는 구체적인 방법은 후술하는 도 2를 참조하여 설명하도록 한다.
도 2는 본 발명의 또 다른 일 실시 예에 따른 신경망을 이용한 주가 예측 장치의 구성을 구체적으로 도시한 블록도이다.
도 2를 참조하면, 본 발명의 일 실시 예에 따른 입력 데이터 생성부(300)는 제1 입력 데이터 생성부(310), 제2 입력 데이터 생성부(320) 및 제3 입력 데이터 생성부(330)를 포함할 수 있고, 복수 개의 주가 예측부들(400)은 제1 주가 예측부(410), 제2 주가 예측부(420) 및 제3 주가 예측부(430)를 포함할 수 있다. 신경망을 이용한 주가 예측 장치(10)는 도 2에서 예시적으로 도시한 다양한 구성요소들 중에서 일부 구성요소를 생략하거나 다른 구성요소를 추가로 포함할 수 있다.
본 발명의 일 실시 예에 따른 샘플 데이터 수집부(100)는 개별 주식 종목의 주가와 관련된 주가 데이터를 수집할 수 있다.
본 발명의 일 실시 예에 따른 주가 데이터 변환부(200)는 샘플 데이터 수집부(100)에서 수집된 주가 데이터를 가공하여 주식 분석에 사용되는 기술적 분석 데이터로 변환할 수 있다. 상술한 데이터 수집부(100) 및 주가 데이터 변환부(200)에 대해서는 도 1에서 전술하였으므로 자세한 설명은 생략하도록 한다.
본 발명의 일 실시 예에 따른 제1 입력 데이터 생성부(310)는 주가 데이터 변환부(200)에서 각 날짜 별로 변환된 기술적 분석 데이터에 포함된 M 개(M은 자연수)의 기술적 분석 지표들 중 예측 날짜보다 N1 일(N1은 자연수) 전의 날짜에 해당하는 M1(M1은 자연수, M1≤M) 개의 기술적 분석 지표들만을 이용하여 1 X M1 인 1 차원의 제1 입력 데이터를 생성할 수 있다.
본 발명의 일 실시 예에 따른 제1 주가 예측부(410)는 제1 입력 데이터 생성부(310)에서 생성된 제1 입력 데이터를 기반으로 개별적으로 학습하여 생성한 제1 주가 예측 모델(411)을 이용하여 예측 날짜의 제1 주가 예측 값을 출력할 수 있다.
구체적으로, 본 발명의 일 실시 예에 따른 제1 주가 예측 모델(411)은 제1 입력 데이터 생성부(310)에서 생성된 제1 입력 데이터를 입력 받는 제1 입력층 및 제1 주가 예측 값을 출력하는 제1 출력층과 각각 뉴런 사이의 연결 강도를 나타내는 가중치로 연결되고, 제1 입력층과 제1 출력층 사이에 위치하는 적어도 하나의 제1 은닉층을 포함하는 다층 퍼셉트론(multi-layer perceptron, MLP) 기반의 레이어로 구성될 수 있다.
상술한 제1 입력 데이터 및 제1 주가 예측 값을 출력하는 방법은 도 3 및 도 4를 함께 참조하여 설명하도록 한다.
도 3은 본 발명의 일 실시 예에 따른 제1 주가 예측 값을 출력하는 방법을 설명하기 위한 도면을 나타낸 것이다.
도 3을 참조하면, 본 발명의 일 실시 예에 따른 제1 입력 데이터(310a)는 BBANDS, CCI, RSI, MACD, DMI SMA, WMA 및 MA인 8개의 기술적 분석 지표들을 이용하여 생성된 1 X 8인 1차원의 데이터일 수 있다.
구체적으로, 제1 입력 데이터 생성부(310)는 주가 데이터 분석을 시작한 시점을 기준으로 예측 날짜가 기준 날짜부터 20일 후인 20일차에 해당하는 날짜인 경우 예측 날짜 보다 10일 전인 주가 데이터 분석을 시작한 시점인 10일차에 해당하는 상술한 8개의 기술적 분석 지표들만을 이용하여 1 X 8인 1차원의 제1 입력 데이터(310a)를 생성할 수 있다.
본 발명의 일 실시 예에 따른 제1 주가 예측부(410)는 10일차에 해당하는 상술한 8개의 기술적 분석 지표들만으로 생성된 1 X 8인 1차원의 제1 입력 데이터(310a)를 기반으로 개별적으로 학습하여 생성한 제1 주가 예측 모델(411)을 이용하여 예측 날짜인 20일 차의 제1 주가 예측 값인 P1-20(410a)을 출력할 수 있다.
상술한 제1 주가 예측부(410)는 샘플 데이터 수집부(100)에서 수집된 주가 데이터 중 예측 날짜인 20일차의 실제 주가인 C20(100a)을 레이블링하여 상술한 방법에 출력된 20일 차의 제1 주가 예측 값인 P1-20(410a)이 레이블링된 20일차의 실제 주가인 C20(100a)이 되도록 제1 주가 예측 모델(411)을 학습할 수 있다.
상술한 방법과 동일한 방법을 이용하여 제1 주가 예측부(410)는 1일차 내지 9일차에 해당하는 상술한 8개의 기술적 분석 지표들만으로 각각 생성된 1 X 8인 1차원의 제1 입력 데이터들을 기반으로 시계열적 특성을 반영하지 않고 1일 단위로 개별적으로 학습하여 생성한 제1 주가 예측 모델(411)을 이용하여 11일차 내지 19일 차의 제1 주가 예측 값들을 각각 출력할 수 있으며, 제1 주가 예측부(410)는 샘플 데이터 수집부(100)에서 수집된 주가 데이터 중 11일차 내지 19일차의 실제 주가들을 각각 레이블링하여 상술한 방법에 출력된 11일차 내지 19일차의 제1 주가 예측 값들 각각이 레이블링된 11일차 내지 19일차의 실제 주가가 되도록 제1 주가 예측 모델(411)을 학습할 수 있다.
단, 상술한 예시는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것은 아니며, 제1 입력 데이터 생성부(310)는 상술한 8개의 기술적 분석 지표들뿐만 아니라 8개보다 더 적거나 많은 기술적 분석 지표들을 이용하여 제1 입력 데이터를 생성할 수 있고, 또한 제1 주가 예측부(410)는 상술한 방법에 의해 예측하고자 하는 예측 날짜보다 10일 전 날짜뿐만 아니라 10일 보다 더 이전의 날짜 또는 10일 보다 더 이후의 날짜에 해당하는 복수 개의 기술적 분석 지표들을 이용하여 제1 주가 예측 값을 출력할 수 있다. 또한, 제1 입력 데이터 생성부(310)는 상술한 기술적 분석 지표들뿐만 아니라 주가 데이터, 재무제표 및 환율 데이터 중 적어도 어느 하나를 더 이용하여 제1 입력 데이터를 생성할 수 있다.
도 4는 본 발명의 일 실시 예에 따른 제1 주가 예측 모델을 설명하기 위한 도면을 나타낸 것이다.
도 4를 참조하면, 본 발명의 일 실시 예에 따른 제1 주가 예측 모델(411)은 다층 퍼셉트론(MLP) 기반의 레이어로 구성될 수 있다.
구체적으로, 본 발명의 일 실시 예에 따른 제1 주가 예측 모델(411)은 제1 입력층(411a), 복수 개의 제1 은닉층들(411b 내지 411d) 및 제1 출력층(411e)으로 구성될 수 있다.
본 발명의 일 실시 예에 따른 복수 개의 제1 은닉층(411b 내지 411d)들은 제1-1 은닉층(411b), 제1-2 은닉층(411c) 및 제1-3 은닉층(411d)으로 구성될 수 있으며, 제1 입력층(411a)의 뉴런의 개수는 12개, 제1-1 은닉층(411b)의 뉴런 개수는 15개, 제1-2 은닉층(411c)의 뉴런 개수는 10개, 제1-3 은닉층(411d)의 뉴런 개수는 6개 및 제1 출력층(411e)의 뉴런 개수는 1개일 수 있다. 단, 상술한 예시는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것은 아니다.
따라서, 상술한 제1 입력 데이터 생성부(310)에서 생성된 제1 입력 데이터는 1 X M인 1차원의 형태로 제1 입력층(411a)에 입력될 수 있으며, 제1 입력층(411a)에 입력된 제1 입력 데이터는 복수 개의 제1 은닉층들(411b 내지 411d) 및 제1 출력층(411e)을 통과하여 상술한 제1 주가 예측 값으로 출력될 수 있다.
본 발명의 일 실시 예에서 학습 횟수는 10,000, 학습율은 0.01로 설정하여 학습할 수 있으나, 상술한 예시는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것은 아니며, 학습 횟수 및 학습률은 다양하게 설정될 수 있다.
다시 도 2를 참조하면, 본 발명의 일 실시 예에 따른 제2 입력 데이터 생성부(320)는 주가 데이터 변환부(200)에서 각 날짜 별로 변환된 기술적 분석 데이터에 포함된 M개의 기술적 분석 지표들 중 예측 날짜보다 N (N은 자연수, 1<N-N1) 일전부터 예측 날짜보다 N1 일 전까지인 N2 (N2는 자연수, N2=N-N1) 일치에 해당하는 각 날짜 별 M2 (M2는 자연수, M2≤M) 개의 기술적 분석 지표들만을 이용하여 N2 X M2인 2차원의 제2 입력 데이터를 생성할 수 있다.
본 발명의 일 실시 예에 따른 제2 주가 예측부(420)는 상술한 방법에 의해 생성된 제2 입력 데이터를 기반으로 개별적으로 학습하여 생성한 제2 주가 예측 모델(421)을 이용하여 예측 날짜의 제2 주가 예측 값을 출력할 수 있다.
구체적으로, 본 발명의 일 실시 예에 따른 제2 주가 예측 모델(421)은 합성곱(convolution) 연산자를 통해 제2 입력 데이터로부터 특징을 추출하여 특징 맵을 생성하는 합성곱 층(convolutional layer), 생성된 특징 맵을 미리 설정된 공간적 차원으로 축소시키는 풀링 층(pooling layer) 및 미리 설정된 공간적 차원으로 축소된 특징 맵으로부터 제2 주가 예측 값을 출력하는 완전 연결 층(fuly connected layer)을 포함하는 합성곱 신경망(Convolutional Neural Network, CNN) 기반의 레이어로 구성될 수 있다.
본 발명의 또 다른 일 실시 예에 따른 제2 주가 예측 모델(421)은 제2 입력 데이터를 입력 받는 입력층, 복수 개의 합성곱 층들과 풀링 층들이 교차되는 은닉층들 및 출력층으로 완전 연결 층을 포함할 수 있다.
상술한 제2 입력 데이터 및 제2 주가 예측 값을 출력하는 방법은 도 5를 함께 참조하여 설명하도록 한다.
도 5는 본 발명의 일 실시 예에 따른 제2 주가 예측 값을 출력하는 방법을 설명하기 위한 도면을 나타낸 것이다.
도 5를 참조하면, 본 발명의 일 실시 예에 따른 제2 주가 예측 모델(421)은 합성곱 신경망(CNN) 기반의 레이어로 구성될 수 있다.
일반적으로 합성곱 신경망(CNN)은 이미지 형태의 데이터를 처리하는 데 주로 사용되는 딥러닝 모델을 나타내지만, 본 발명의 일 실시 예에 따른 합성곱 신경망(CNN)에는 이미지 형태의 데이터가 아닌 N2 일치에 해당하는 각 날짜별 M2 개의 기술적 분석 지표들에 시계열적 특성을 반영하여 N2 X M2인 2차원의 제2 입력 데이터가 입력될 수 있다.
도 5를 참조하면, 본 발명의 일 실시 예에 따른 합성곱 신경망(CNN)은 합성곱 층(convolutional layer)과 풀링 층(pooling layer)의 쌍이 두 개, 완전 연결 층(fully connectedlayer) 한 개로 구성될 수 있으나, 상술한 예시는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것은 아니다.
구체적으로, 제1 합성곱 층은 미리 설정된 복수의 필터(혹은 커널)를 이용하여 1 X N2 X M2인 2차원의 제2 입력 데이터로부터 복수 개의 특성들을 추출하여 복수 개의 특징 맵들을 생성할 수 있다. 보다 상세하게는 제1 합성곱 층은 미리 정의된 합성곱 필터(혹은 커널)을 이동시켜가면서, 1 X N2 X M2인 2차원의 제2 입력 데이터 상에서 합성곱 연산을 하고, 그 결과 추출된 특성들이 맵 상에서 표현되는 복수 개의 특징 맵들을 생성할 수 있다. 제1 풀링 층은 제1 합성곱 층의 출력을 단순화시키기 위하여, 복수 개의 특징 맵들 각각에서 사전에 결정된 영역에서 특징 값을 추출할 수 있다. 즉, 제1 풀링층은 신경망의 파라미터의 수나 연산량을 줄이기 이해 깊이는 유지하면서, 공간의 사이즈를 줄이는 기능을 수행할 수 있다. 예를 들어, 제1 풀링 층은 단위 영역에서 최대값, 최소값, 평균 값 등 다양한 방법으로 특정 값을 추출할 수 있다. 제2 합성곱 층 및 제2 풀링 층은 상술한 제1 합성곱 층 및 제1 풀링 층과 동일한 과정을 반복할 수 있으며, 상술한 반복을 통해 제2 주가 예측 값을 출력하기 위한 정보가 효과적으로 추출되어 완전 연결 층의 입력 데이터로 활용된다. 완전 연결 층은 가중치 벡터와 활성화 함수(activation function)을 이용하여 제1 합성곱 층, 제1 풀링 층, 제2 합성곱 층 및 제2 풀링 층을 통해 출력된 데이터를 입력으로 하여 제2 주가 예측 값을 출력하여 분류할 수 있다.
본 발명의 일 실시 예에 따른 제2 입력 데이터 생성부(300)는 1일차부터 10일차에 해당하는 각 날짜별 MA, B_upper, B_middle, B_lower, DMI, CCI, SMA, WMA, MOM, 종가(close)인 10개의 기술적 분석 지표들에 의해 10 X 10인 2차원의 제2 입력 데이터(320a)를 생성할 수 있다. 단, 상술한 예시는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것은 아니다.
본 발명의 일 실시 예에서 상술한 제2 입력 데이터(320a)가 제2 주가 예측부(420)에 입력되는 경우, 예측 날짜는 가장 마지막 날인 10일 차에 해당하는 날부터 10일 뒤인 20일차에 해당하는 날짜로 설명하도록 한다. 단, 상술한 예시는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것은 아니다.
본 발명의 일 실시 예에 따른 제2 주가 예측부(420)는 2 X 2의 합성곱 필터를 이용하여 제1 합성곱 층 및 제1 풀링 층을 통과시켜 입력된 1 X 10 X 10인 2차원 제2 입력 데이터를 1 X 2 X 120 형식의 데이터로 1차 변환할 수 있으며, 다시 2 X 2 필터를 이용하여 제2 합성곱 층 및 제2 풀링 층을 통과시켜 1차 변환된 1 X 2 X 120 형식의 데이터를 1 X 1 X 200 형식의 데이터로 2차 변환할 수 있다. 본 발명의 일 실시 예에 따른 제2 주가 예측부(420)는 제2 합성곱 층 및 제2 풀링 층을 통과하여 2차 변환된 1 X 1 X 200 형식의 데이터를 포함하는 200개의 노드를 완견 연결 층을 통과시켜 예측 날짜인 20일차에 해당하는 제2 주가 예측 값인 P2-20(420a)을 출력할 수 있다.
상술한 제2 주가 예측부(420)는 샘플 데이터 수집부(100)에서 수집된 주가 데이터 중 예측 날짜인 20일차의 실제 주가인 C20(100a)을 레이블링하여 상술한 방법에 출력된 20일 차의 제2 주가 예측 값인 P2-20(420a)이 레이블링된 20일차의 실제 주가인 C20(100a)이 되도록 제2 주가 예측 모델(421)을 학습할 수 있다.
본 발명의 일 실시 예에서 학습 횟수는 10회, 학습율은 0.001로 설정하여 학습할 수 있으나, 상술한 예시는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것은 아니며, 학습 횟수 및 학습률은 다양하게 설정될 수 있다.
다시 도 2를 참조하면, 본 발명의 일 실시 예에 따른 제3 입력 데이터 생성부(330)는 주가 데이터 변환부(200)에서 각 날짜 별로 변환된 기술적 분석 데이터에 포함된 M 개의 기술적 분석 지표들 중 예측 날짜보다 N’ (N’은 자연수, 1<N’-N1) 일전부터 예측 날짜보다 N1 일 전까지인 N3 (N3는 자연수, N3=N’-N1) 일치에 해당하는 각 날짜 별 M3 (M3은 자연수, M3≤M) 개의 기술적 분석 지표들만을 이용하여 N3 X M3 인 2차원의 제3 입력 데이터를 생성할 수 있다.
본 발명의 일 실시 예에 따른 제3 주가 예측부(430)는 2 차원의 제3 입력 데이터를 1 X M3 인 1 차원의 N3 개 데이터들로 분리하고, 분리된 N3 개 데이터들을 기반으로 개별적으로 학습하여 생성한 제3 주가 예측 모델(431)을 이용하여 예측 날짜의 제3 주가 예측 값을 출력할 수 있다.
본 발명의 일 실시 예에 따른 제3 주가 예측 모델(431)은 N3 일치의 시계열적 특성이 반영된 분리된 N3개 데이터들을 각각 입력 받아 하나의 제3 주가 예측 값을 출력하는 시계열 데이터 분석이 가능한 순환신경망(Recurrent Neural Network, RNN) 기반의 레이어로 구성될 수 있다.
순환 신경망(RNN)은 은닉층이 체인구조를 이루어 은닉층의 결과가 다시 같은 은닉층의 입력으로 들어가도록 연결 된 루프가 있고, 과거의 데이터가 미래에 영향을 주는 구조를 갖는다. 즉, 순환 신경망(RNN)은 은닉 노드가 방향을 가진 엣지로 연결되어 순환구조를 이룬다.
구체적으로, 본 발명의 일 실시 예에 따른 제3 주가 예측 모델(431)은 시간적 순서를 고려하여 분리된 N3개 데이터들을 입력 받아 예측 날짜의 제3 주가 예측 값을 출력하도록 현재 메모리 셀에 이전 메모리 셀 상태를 반영할지 여부를 결정하는 망각 게이트(Forget Gate)를 포함하는 장단기 메모리(Long Short Term Memory, LSTM) 셀로 구성된 순환신경망(Recurrent Neural Network, RNN) 기반의 레이어로 구성될 수 있다.
상술한 장단기 메모리(LSTM) 모델은 장기 의존성 문제를 해결하도록 은닉층에 여러 개의 게이트가 연결된 셀을 추가한 구조이다. 은닉 층은 입력 게이트(Input Gate), 출력 게이트(Output Gate), 망각 게이트(Forget Gate)를 포함하는 메모리 블록(Memory Block)을 갖는다. 망각 게이트는 과거 정보를 잊기를 위한 게이트이고, 입력 게이트는 현재 정보를 기억하기 위한 게이트이다. 게이트는 각각 세기 및 방향을 가진다. 셀은 컨베이어 벨트 역할을 하고, 상태가 오래 경과하더라도 그래디언트가 비교적 전파를 유지할 수 있다.
본 발명의 일 실시 예에 따른 장단기 메모리(LSTM) 모델은 N3 개의 장단기 메모리 셀(LSTM cell)들을 포함할 수 있고, 마지막 장단기 메모리 셀(LSTM cell)의 출력만을 고려하는 다대일(many to one) 모델로 구현될 수 있으나, 상술한 예시는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것은 아니다.
본 발명의 일 실시 예에 따른 장단기 메모리(LSTM) 모델은 출력되는 제3 주가 예측 값의 정확도를 높이도록 마지막 장단기 메모리 셀(LSTM cell)에서 나온 복수 개의 출력 값들이 완전 연결 층으로 전달되어, 완전 연결 층은 하나의 제3 주가 예측 값을 출력할 수 있다.
상술한 제3 입력 데이터 및 제3 주가 예측 값을 출력하는 방법은 도 6을 함께 참조하여 설명하도록 한다.
도 6은 본 발명의 일 실시 예에 따른 제3 주가 예측 값을 출력하는 방법을 설명하기 위한 도면을 나타낸 것이다.
도 6을 참조하면, 본 발명의 일 실시 예에 따른 제3 주가 예측 모델(431)은 장단기 메모리(LSTM) 셀로 구성된 순환신경망(RNN) 기반의 레이어로 구성될 수 있다.
본 발명의 일 실시 예에 따른 제3 입력 데이터 생성부(300)는 1일차부터 10일차에 해당하는 각 날짜별 B_upper, B_middle, B_lower, RSI, SMA, WMA 인 6개의 기술적 분석 지표들에 의해 10 X 6인 2차원의 제3 입력 데이터(330a)를 생성할 수 있다. 단, 상술한 예시는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것은 아니다.
본 발명의 일 실시 예에서 상술한 제3 입력 데이터(330a)가 제3 주가 예측부(430)에 입력되는 경우, 예측 날짜는 가장 마지막 날인 10일 차에 해당하는 날부터 10일 뒤인 20일차에 해당하는 날짜로 설명하도록 한다. 단, 상술한 예시는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것은 아니다.
본 발명의 일 실시 예에 따른 제3 주가 예측부(430)는 상술한 10 X 6인 2 차원의 제3 입력 데이터(330a)를 1 X 6 인 1 차원의 10개 데이터들로 분리할 수 있고, 분리된 10개의 1 X 6인 1차원의 데이터들을 기반으로 개별적으로 학습하여 생성한 제3 주가 예측 모델(431)을 이용하여 예측 날짜인 20일차의 제3 주가 예측 값인 P3-20(430a)을 출력할 수 있다.
구체적으로, 본 발명의 일 실시 예에 따른 제3 주가 예측 모델(431)은 복수 개의 장단기 메모리 셀(LSTM cell)들 및 완전 연결 층(Fully Connected Layer)로 구성될 수 있으며, 순환 신경망(RNN) 내부에서 분리된 10개의 1 X 6인 1차원의 데이터들은 각각 10개의 장단기 메모리 셀(LSTM cell)들로 입력될 수 있다.
상술한 10개의 1 X 6인 1차원의 데이터들은 시계열적 특성을 반영하여 1일차에 해당하는 1 X 6인 1차원의 데이터가 먼저 제1 장단기 메모리 셀(LSTM cell)에 입력될 수 있고, 제1 장단기 메모리 셀(LSTM cell)에 포함된 망각 게이트에 의헤 제1 장단기 메모리 셀(LSTM cell) 상태가 2일차에 해당하는 1 X 6인 1차원의 데이터가 입력된 제2 장단기 메모리 셀(LSTM cell)에 반영될지 결정될 수 있다. 상술한 방법에 의해 10일차에 해당하는 1 X 6인 1차원의 데이터가 입력된 제10 장단기 메모리 셀(LSTM cell)에서는 제1 내지 제9 장단기 메모리 셀(LSTM cell)의 상태 값을 전부 고려하여 10개의 데이터 값들을 출력할 수 있으며, 완전 연결 층은 제10 장단기 메모리 셀(LSTM cell)에서 출력된 10개의 데이터 값들을 입력 받아 예측 날짜에 해당하는 20일차의 제3 주가 예측 값인 P3-20(430a)을 출력할 수 있다.
상술한 제3 주가 예측부(430)는 샘플 데이터 수집부(100)에서 수집된 주가 데이터 중 예측 날짜인 20일차의 실제 주가인 C20(100a)을 레이블링하여 상술한 방법에 출력된 20일 차의 제3 주가 예측 값인 P3-20(430a)이 레이블링된 20일차의 실제 주가인 C20(100a)이 되도록 제3 주가 예측 모델(431)을 학습할 수 있다.
본 발명의 일 실시 예에서 학습 횟수는 1,000회, 학습율은 0.001로 설정하여 학습할 수 있으나, 상술한 예시는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것은 아니며, 학습 횟수 및 학습률은 다양하게 설정될 수 있다.
다시 도 2를 참조하면, 본 발명의 일 실시 예에 따른 주가 예측 통합부(500)는 출력된 복수 개의 주가 예측 값들을 기반으로 학습하여 생성한 주가 예측 통합 모델을 이용하여 출력된 복수 개의 주가 예측 값들을 통합하여 예측 날짜의 최종 주가 예측 값을 출력할 수 있다.
구체적으로, 본 발명의 일 실시 예에 따른 주가 예측 통합부(500)는 주가 예측 통합 모델(510)을 이용하여 상술한 방법에 의해 제1 주가 예측부(410)에서 출력된 제1 주가 예측 값 및 제2 주가 예측부(420)에서 출력된 제2 주가 예측 값을 통합하여 예측 날짜의 최종 주가 예측 값을 출력할 수 있다.
또한, 본 발명의 또 다른 일 실시 예에 따른 주가 예측 통합부(500)는 주가 예측 통합 모델(510)을 이용하여 상술한 방법에 의해 제1 주가 예측부(410)에서 출력된 제1 주가 예측 값 및 제3 주가 예측부(430)에서 출력된 제3 주가 예측 값을 통합하여 예측 날짜의 최종 주가 예측 값을 출력할 수 있다.
또한, 본 발명의 또 다른 일 실시 예에 따른 주가 예측 통합부(500)는 주가 예측 통합 모델(510)을 이용하여 상술한 방법에 의해 제2 주가 예측부(420)에서 출력된 제2 주가 예측 값 및 제3 주가 예측부(430)에서 출력된 제3 주가 예측 값을 통합하여 예측 날짜의 최종 주가 예측 값을 출력할 수 있다.
또한, 본 발명의 또 다른 일 실시 예에 따른 주가 예측 통합부(500)는 주가 예측 통합 모델(510)을 이용하여 상술한 방법에 의해 제1 주가 예측부(410)에서 출력된 제1 주가 예측 값, 제2 주가 예측부(420)에서 출력된 제2 주가 예측 값 및 제3 주가 예측부(430)에서 출력된 제3 주가 예측 값을 통합하여 예측 날짜의 최종 주가 예측 값을 출력할 수 있다.
구체적으로, 본 발명의 일 실시 예에 따른 주가 예측 통합 모델(510)은 복수 개의 주가 예측부들(400)에서 출력된 복수 개의 주가 예측 값들을 각각 입력 받는 복수 개의 입력 노드를 포함하는 제2 입력층 및 최종 주가 예측 값을 출력하는 제2 출력층과 각각 가중치로 연결되고, 제2 입력층과 제2 출력층 사이에 위치하는 적어도 하나의 제2 은닉층을 포함하는 다층 퍼셉트론(MLP) 기반의 레이어로 구성될 수 있다.
상술한 최종 주가 예측 값을 출력하는 방법은 도 7을 함께 참조하여 설명하도록 한다.
도 7은 본 발명의 일 실시 예에 따른 최종 주가 예측 값을 출력하는 방법을 설명하기 위한 도면을 나타낸 것이다.
도 7을 참조하면, 본 발명의 일 실시 예에 따른 주가 예측 통합 모델(510)은 다층 퍼셉트론(MLP) 기반의 레이어로 구성될 수 있다.
구체적으로, 본 발명의 일 실시 예에 따른 주가 예측 통합 모델(510)은 제2 입력층(510a), 복수 개의 제2 은닉층들(510b) 및 제2 출력층(510c)으로 구성될 수 있다.
본 발명의 일 실시 예에 따른 복수 개의 제2 은닉층(510b)들은 제2-1 은닉층, 제2-2 은닉층 및 제2-3 은닉층으로 구성될 수 있으며, 제2 입력층(510a)의 뉴런의 개수는 3개, 제2-1 은닉층의 뉴런 개수는 6개, 제2-2 은닉층의 뉴런 개수는 6개, 제2-3 은닉층의 뉴런 개수는 3개 및 제2 출력층(510c)의 뉴런 개수는 1개일 수 있다. 단, 상술한 예시는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것은 아니다.
본 발명의 일 실시 예에 따른 제2 입력층(510a)의 3개의 뉴런은 각각 상술한 방법에 의해서 출력된 제1 주가 예측 값, 제2 주가 예측 값 및 제3 주가 예측 값을 각각 입력 받을 수 있다. 예를 들어, 본 발명의 일 실시 예에 따른 제2 입력층(510a)의 3개의 뉴련은 각각 예측 날짜인 20일차의 제1 주가 예측 값인 P1-20(410a), 제2 주가 예측 값인 P2-20(420a) 및 제3 주가 예측 값인 P3-20(430a)을 입력 받을 수 있다. 제2 입력층(510a)에서 각각 입력 받은 예측 날짜인 20일차의 제1 주가 예측 값인 P1-20(410a), 제2 주가 예측 값인 P2-20(420a) 및 제3 주가 예측 값은 P3-20(430a)은 각각 가중치로 연결된 제2 은닉층(510b)들을 통과하면서 앙상블되어 제2 출력층(510c)에서 예측 날짜인 20일차의 최종 주가 예측 값인 P20(500a)으로 출력될 수 있다.
상술한 주가 예측 통합부(500)는 샘플 데이터 수집부(100)에서 수집된 주가 데이터 중 예측 날짜인 20일차의 실제 주가인 C20(100a)을 레이블링하여 상술한 방법에 출력된 20일 차의 최종 주가 예측 값인 P20(500a)이 레이블링된 20일차의 실제 주가인 C20(100a)이 되도록 주가 예측 통합 모델(510)을 학습할 수 있다.
본 발명의 일 실시 예에서 학습 횟수는 10,000회, 학습율은 0.01로 설정하여 학습할 수 있으나, 상술한 예시는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것은 아니며, 학습 횟수 및 학습률은 다양하게 설정될 수 있다.
다시, 도 2를 참조하면, 상술한 제1 주가 예측 모델(411), 제2 주가 예측 모델(421), 제3 주가 예측 모델(431) 및 주가 예측 통합 모델(510)에서 활성화 함수는 ‘0’ 이하의 값을 ‘0’으로 변환하고, ‘0’이상의 값은 그대로 출력하는 정류선형유닛(Rectified Linear Unit, ReLU)일 수 있으나, 이에 한정되는 것은 아니다.
본 발명의 또 다른 일 실시 예에 따른 입력 데이터 생성부(300)는 시계열적 특성을 고려하여 샘플 데이터 수집부(100)에서 수집된 주가 데이터를 미리 설정된 시간 간격으로 분할하고, 분할된 주가 데이터를 미리 설정된 제1 비율에 해당하는 학습 데이터와 미리 설정된 제2 비율에 해당하는 검증 데이터로 분류하며, 분류된 학습 데이터를 이용하여 미리 설정된 차원을 가지는 입력 데이터를 생성할 수 있다.
본 발명의 또 다른 일 실시 예에 따른 복수 개의 주가 예측부들(400)은 입력 데이터 생성부(300)에서 미리 설정된 시간 간격으로 분할된 주가 데이터에서 미리 설정된 제2 비율로 분류된 검증 데이터에 포함된 예측 날짜의 주가를 레이블링하여 복수 개의 주가 예측 값들이 레이블링된 예측 날짜의 주가가 되도록 복수 개의 주가 예측 모델들을 각각 학습할 수 있으며, 주가 예측 통합부(500)는 최종 주가 예측 값이 미리 설정된 시간 간격으로 분할된 주가 데이터에서 미리 설정된 제2 비율로 분류된 검증 데이터에 포함된 각 날짜 별 주가 중에서 예측 날짜에 해당하는 주가가 되도록 주가 예측 통합 모델을 학습할 수 있다. 상술한 학습 데이터 및 검증 데이터를 분류하는 구체적인 방법은 도 8a 및 도 8b를 함께 참조하여 설명하도록 한다.
도 8a 및 도 8b는 본 발명의 일 실시 예에 따른 학습 데이터 및 검증 데이터를 분류하는 방법을 설명하기 위한 도면을 나타낸 것이다.
도 8a는 시계열적 특성을 고려하지 않은 채 주가 데이터로부터 학습 데이터 및 검증 데이터를 분류하는 도면을 나타낸 것이다.
도 8b는 시계열적 특성을 고려하여 주가 데이터로부터 학습 데이터 및 검증 데이터를 분류하는 도면을 나타낸 것이다.
도 8a 및 도 8b를 참조하면, 주가 데이터는 2000-04-11일부터 2018-04-09일까지의 주가 흐름을 나타낸다.
도 8a를 참조하면, 상술한 2000-04-11일부터 2018-04-09일까지의 주가 흐름 중에서 약 2000-04-11부터 2012-04-11까지의 주가 흐름(수집된 전체 주가 데이터의 약 70%)을 학습 데이터 및 2013-04-11부터 2017-04-11까지의 주가 흐름(수집된 전체 주가 데이터의 30%)을 검증 데이터로 분류하는 경우, 주가 데이터에 포함된 시계열적 특성이 고려되지 않았으며 학습 데이터와 검증 데이터의 경향이 다르므로 정확한 예측이 어려운 문제점이 있다. 즉, 상술한 방법에 의해 네트워크 모델을 학습하는 경우 마지막 레이어는 학습이 이루어지는 반면, 초기 레이어는 학습이 이루어지지 않는 문제인 경사 사라짐 문제(Vanishing Gradient Problem)가 발생된다.
이에 비해 본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 장치(10)는 주가 데이터가 가지는 시계열적인 특성을 반영하여 주가 데이터로부터 학습 데이터와 검증 데이터를 미리 설정된 방식으로 분류할 수 있다.
구체적으로 도 8b를 참조하면, 본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 장치(10)는 상술한 문제를 해결하도록 상술한 2000-04-11일부터 2018-04-09일까지의 주가 흐름을 나타내는 주가 데이터를 시간 순서대로 2000-04-11부터 2006-04-11까지 제1 데이터 세트(810)(수집된 전체 주가 데이터의 1/3), 2006-04-11부터 2012-04-11까지 제2 데이터 세트(820)(수집된 전체 주가 데이터의 1/3) 및 2012-04-11부터 2018-04-11까지 제3 데이터 세트(830)(수집된 전체 주가 데이터의 1/3)로 분할 할 수 있다.
본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 장치(10)는 분할된 제1 데이터 세트(810), 제2 데이터 세트(820) 및 제3 데이터 세트(830) 각각을 다시 미리 설정된 제1 비율의 학습 데이터 및 미리 설정된 제2 비율의 검증 데이터로 분류할 수 있다.
구체적으로, 본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 장치(10)는 분할된 제1 데이터 세트(810)에서 2000-04-11부터 2004-04-11까지를 학습 데이터 및 2004-04-11부터 2006-04-11까지를 검증 데이터로 분류할 수 있다.
상술한 방법과 같이 본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 장치(10)는 분할된 제2 데이터 세트(820)에서 2006-04-11부터 2010-04-11까지를 학습 데이터 및 2010-04-11부터 2012-04-11까지를 검증 데이터로 분류할 수 있고, 분할된 제3 데이터 세트(830)를 2012-04-11부터 2016-04-11까지를 학습 데이터 및 2016-04-11부터 2018-04-11까지를 검증 데이터로 분류할 수 있다.
본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 장치(10)의 최종 성능값은 상술한 방법에 의해 분할된 3개의 제1 내지 제3 데이터 세트(810 내지 830)의 평균값으로 나타낼 수 있다.
따라서, 본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 장치(10)는 상술한 방법에 따라 최종 주가 예측 값을 출력할 수 있다.
도 9는 절대 평균 백분율 오차를 이용하여 본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 장치의 성능을 설명하기 위한 도면을 나타낸 것이다.
본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 장치의 성능을 설명하기 위해 아래의 수학식 1에 나타난 절대평균백분율오차(Mean Absolute Percentage Error, MAPE)를 이용할 수 있다.
Figure 112018096108131-pat00001
상술한 수학식 1에서 et는 실제 값과 예측 값의 차인 오차를 나타내고, yt는 실제 값을 나타낸다. 또한, n은 데이터의 개수를 나타낸다.
상술한 수학식 1에 나타난 바와 같이 절대평균백분율오차(MAPE)는 데이터의 크기에 영향을 받지 않으므로 데이터 범위 의존성을 극복할 수 있는 지표를 나타낸다.
도 9를 참조하면, 본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 장치(10)에서 출력된 최종 주가 예측 값은 상술한 본 발명의 일 실시 예 중 다층 퍼셉트론(MLP) 기반의 레이어로 구성된 제1 주가 예측 모델, 합성곱 신경망(CNN) 기반의 레이어로 구성된 제2 주가 예측 모델, 순환신경망(RNN) 기반의 레이어로 구성된 제3 주가 예측 모델 및 다층 퍼셉트론(MLP) 기반의 레이어로 구성된 주가 예측 통합 모델을 이용하여 출력된 값으로, 본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 장치의 최종 주가 예측 값과 실제 주가 값으로부터 산출된 제1 절대평균백분율오차(Mean Absolute Percentage Error, MAPE)는 3.35%를 나타낸다.
이에 비해 제2 절대평균백분율오차는 제1 내지 제3 주가 예측 값을 출력하여 출력된 제1 내지 제3 주가 예측 값을 통합하여 최종 주가 예측 값을 출력하는 앙상블 모델링 단계에서, 주가 예측 통합 모델은 동일한 다층 퍼셉트론(MLP) 기반의 레이어로 구성된 네트워크 모델을 사용하고, 초모수만 달리하여 생성한 다층 퍼셉트론(MLP) 기반의 레이어로 구성된 제1 내지 제3 주가 예측 모델인 네트워크 모델 3개에 대해 스태킹을 적용한 주가 예측 장치(20)에서 산출된 값을 나타낸다. 상술한 방법에 의해 산출된 제2 절대평균백분율오차는 4.1%를 나타낸다.
이와 같은 방법으로 제3 절대평균백분율오차는 순환신경망(RNN) 기반의 레이어로 구성된 제1 내지 제3 주가 예측 모델인 네트워크 모델 3개에 대해 스태킹을 적용한 주가 예측 장치(30)에서 산출될 수 있으며, 산출된 제3 절대평균백분율오차는 7.09%를 나타낸다.
제4 절대평균백분율오차는 합성곱 신경망(CNN) 기반의 레이어로 구성된 제1 내지 제3 주가 예측 모델인 네트워크 모델 3개에 대해 스태킹을 적용한 주가 예측 장치(40)에서 산출될 수 있으며, 제4 절대평균백분율오차는 7.42%를 나타낸다.
마지막으로, 제5 절대평균백분율오차는 종래의 주가 예측을 하기 위해 사용된 DBN(Deep Belief Network) 모델에 밸런싱 앙상블을 적용한 주가 예측 장치(50)에서 산출될 수 있으며, 제5 절대평균백분율오차는 8.74%를 나타낸다.
상술한 제1 내지 제5 절대평균백분율오차를 비교하면, 제1 절대평균백분율오차가 3.35%로 가장 낮은 평균 오차율을 보이는 것을 확인할 수 있다.
도 10a 및 도 10b는 본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 장치의 주가 예측 결과 성능을 설명하기 위한 도면이다.
도 10a는 다층 퍼셉트론(MLP) 기반의 레이어로 구성된 주가 예측 모델만을 이용하여 예측된 예측 주가와 실제 주가를 그래프로 나타낸 것이다.
도 10b는 본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 장치 중 다층 퍼셉트론(MLP) 기반의 레이어로 구성된 제1 주가 예측 모델, 합성곱 신경망(CNN) 기반의 레이어로 구성된 제2 주가 예측 모델, 순환신경망(RNN) 기반의 레이어로 구성된 제3 주가 예측 모델 및 다층 퍼셉트론(MLP) 기반의 레이어로 구성된 주가 예측 통합 모델을 이용하여 예측된 예측 주가와 실제 주가를 그래프로 나타낸 것이다.
따라서, 도 10a 및 도 10b를 참조하면 본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 장치를 이용하여 주가를 예측한 경우, 예측 주가가 실제 주가와 더 일치하는 것을 확인할 수 있다.
신경망을 이용한 주가 예측 장치에 포함된 구성요소들이 도 1 및 도 2에서는 분리되어 도시되어 있으나, 복수의 구성요소들은 상호 결합되어 적어도 하나의 모듈로 구현될 수 있다. 구성요소들은 장치 내부의 소프트웨어적인 모듈 또는 하드웨어적인 모듈을 연결하는 통신 경로에 연결되어 상호 간에 유기적으로 동작한다. 이러한 구성요소들은 하나 이상의 통신 버스 또는 신호선을 이용하여 통신한다.
신경망을 이용한 주가 예측 장치는 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합에 의해 로직회로 내에서 구현될 수 있고, 범용 또는 특정 목적 컴퓨터를 이용하여 구현될 수도 있다. 장치는 고정 배선형(Hardwired) 기기, 필드 프로그램 가능한 게이트 어레이(Field Programmable Gate Array, FPGA), 주문형 반도체(Application Specific Integrated Circuit, ASIC) 등을 이용하여 구현될 수 있다. 또한, 장치는 하나 이상의 프로세서 및 컨트롤러를 포함한 시스템 온 칩(System on Chip, SoC)으로 구현될 수 있다.
신경망을 이용한 주가 예측 장치는 하드웨어적 요소가 마련된 컴퓨팅 디바이스에 소프트웨어, 하드웨어, 또는 이들의 조합하는 형태로 탑재될 수 있다. 컴퓨팅 디바이스는 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 프로그램을 실행하기 위한 데이터를 저장하는 메모리, 프로그램을 실행하여 연산 및 명령하기 위한 마이크로프로세서 등을 전부 또는 일부 포함한 다양한 장치를 의미할 수 있다.
도 11은 본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 방법을 설명하기 위한 흐름도이다. 신경망을 이용한 주가 예측 방법은 컴퓨팅 디바이스에 의하여 수행될 수 있으며, 신경망을 이용한 주가 예측 장치와 동일한 방식으로 동작한다
도 11을 참조하면, 컴퓨팅 디바이스는 개별주식 종목의 주가와 관련된 주가 데이터를 수집한다(S1110).
본 발명의 또 다른 일 실시 예에 따른 컴퓨팅 디바이스는 주가 데이터를 가공하여 주가 데이터를 주식 분석에 사용되는 기술적 분석 데이터로 변환할 수 있으며, 또한 상술한 주가 데이터뿐만 아니라 개별 주식 종목에 해당하는 기업의 경영에 따른 재무 상태를 표시한 재무제표 및 환율 데이터를 더 수집할 수 있다.
상술한 기술적 분석 데이터에 대한 설명은 전술하였으므로 자세한 설명은 생략하도록 한다.
컴퓨팅 디바이스는 수집된 주가 데이터를 이용하여 미리 설정된 차원을 가지는 입력 데이터를 생성한다(S1120).
본 발명의 또 다른 일 실시 예에 따른 컴퓨팅 디바이스는 수집된 주가 데이터, 주가 데이터, 각 날짜 별로 변환된 기술적 분석 데이터, 재무제표 및 환율 데이터를 이용하여 미리 설정된 차원을 가지는 입력 데이터를 생성할 수 있다. 입력 데이터를 생성하는 구체적인 방법은 전술하였으므로 자세한 설명은 생략하도록 한다.
본 발명의 일 실시 예에 따른 컴퓨팅 디바이스는 수집된 주가 데이터를 미리 설정된 학습 데이터 및 검증 데이터로 분류할 수 있다. 상술한 학습 데이터 및 검증 데이터를 분류하는 구체적인 방법은 전술하였으므로 자세한 설명은 생략하도록 한다.
컴퓨팅 디바이스는 생성된 입력 데이터를 기반으로 개별적으로 학습하여 생성한 복수 개의 주가 예측 모델들을 이용하여 예측하려는 예측 날짜의 복수 개의 주가 예측 값들을 각각 출력한다(S1130).
컴퓨팅 디바이스는 수집된 주가 데이터 중 예측 날짜의 주가를 레이블링하여 복수 개의 주가 예측 값들이 레이블링된 예측 날짜의 주가가 되도록 복수 개의 주가 예측 모델들을 각각 학습할 수 있다.
상술한 복수 개의 주가 예측 값들을 출력하는 구체적인 방법은 전술하였으므로 자세한 설명은 생략하도록 한다.
컴퓨팅 디바이스는 출력된 복수 개의 주가 예측 값들을 기반으로 학습하여 생성한 주가 예측 통합 모델을 이용하여 출력된 복수 개의 주가 예측 값들을 통합하여 예측 날짜의 최종 주가 예측 값을 출력한다(S1140).
컴퓨팅 디바이스는 상술한 최종 주가 예측 값이 레이블링된 예측 날짜의 주가가 되도록 주가 예측 통합 모델을 학습할 수 있다.
상술한 최종 주가 예측 값을 출력하는 구체적인 방법은 전술하였으므로 자세한 설명은 생략하도록 한다.
도 12는 본 발명의 또 다른 일 실시 예에 따른 신경망을 이용한 주가 예측 방법을 구체적으로 설명하기 위한 흐름도이다. 신경망을 이용한 주가 예측 방법은 컴퓨팅 디바이스에 의하여 수행될 수 있으며, 신경망을 이용한 주가 예측 장치와 동일한 방식으로 동작한다
도 12를 참조하면, 컴퓨팅 디바이스는 개별 주식 종목의 주가와 관련된 주가 데이터를 수집하고(S1210), 수집된 주가 데이터를 가공하여 기술적 분석 데이터로 변환한다(S1220).
컴퓨팅 디바이스는 각 날짜 별로 변환된 기술적 분석 데이터에 포함된 M 개(M은 자연수)의 기술적 분석 지표들 중 예측 날짜보다 N1 일(N1은 자연수) 전의 날짜에 해당하는 M1(M1은 자연수, M1≤M) 개의 기술적 분석 지표들만을 이용하여 1 X M1 인 1 차원의 제1 입력 데이터를 생성한다(S1231).
컴퓨팅 디바이스는 생성된 제1 입력 데이터를 기반으로 개별적으로 학습하여 생성한 제1 주가 예측 모델을 이용하여 예측 날짜의 제1 주가 예측 값을 출력한다(S1241). 상술한 제1 주가 예측 모델은 다층 퍼셉트론(multi-layer perceptron, MLP) 기반의 레이어로 구성될 수 있다. 제1 입력 데이터를 생성 및 제1 주가 예측 값을 출력하는 구체적인 방법은 전술하였으므로 자세한 설명은 생략하도록 한다.
컴퓨팅 디바이스는 각 날짜 별로 변환된 기술적 분석 데이터에 포함된 M개의 기술적 분석 지표들 중 예측 날짜보다 N (N은 자연수, 1<N-N1) 일전부터 예측 날짜보다 N1 일 전까지인 N2 (N2는 자연수, N2=N-N1) 일치에 해당하는 각 날짜 별 M2 (M2는 자연수, M2≤M) 개의 기술적 분석 지표들만을 이용하여 N2 X M2인 2차원의 제2 입력 데이터를 생성한다(S1232).
컴퓨팅 디바이스는 상술한 방법에 의해 생성된 제2 입력 데이터를 기반으로 개별적으로 학습하여 생성한 제2 주가 예측 모델을 이용하여 예측 날짜의 제2 주가 예측 값을 출력한다(S1242). 상술한 제2 주가 예측 모델은 합성곱 신경망(Convolutional Neural Network, CNN) 기반의 레이어로 구성될 수 있다. 제2 입력 데이터를 생성 및 제2 주가 예측 값을 출력하는 구체적인 방법은 전술하였으므로 자세한 설명은 생략하도록 한다.
컴퓨팅 디바이스는 각 날짜 별로 변환된 기술적 분석 데이터에 포함된 M 개의 기술적 분석 지표들 중 예측 날짜보다 N’ (N’은 자연수, 1<N’-N1) 일전부터 예측 날짜보다 N1 일 전까지인 N3 (N3는 자연수, N3=N’-N1) 일치에 해당하는 각 날짜 별 M3 (M3은 자연수, M3≤M) 개의 기술적 분석 지표들만을 이용하여 N3 X M3 인 2차원의 제3 입력 데이터를 생성한다(S1233).
컴퓨팅 디바이스는 2 차원의 제3 입력 데이터를 1 X M3 인 1 차원의 N3 개 데이터들로 분리하고, 분리된 N3 개 데이터들을 기반으로 개별적으로 학습하여 생성한 제3 주가 예측 모델을 이용하여 예측 날짜의 제3 주가 예측 값을 출력한다(S1243). 상술한 제3 주가 예측 모델은 장단기 메모리(Long Short Term Memory, LSTM) 셀로 구성된 순환신경망(Recurrent Neural Network, RNN) 기반의 레이어로 구성될 수 있다. 제3 입력 데이터를 생성 및 제3 주가 예측 값을 출력하는 구체적인 방법은 전술하였으므로 자세한 설명은 생략하도록 한다.
컴퓨팅 디바이스는 주가 예측 통합 모델을 이용하여 상술한 방법에 의해 출력된 제1 주가 예측 값, 제2 주가 예측 값 및 제3 주가 예측 값을 통합하여 예측 날짜의 최종 주가 예측 값을 출력한다(S1250). 상술한 주가 예측 통합 모델은 다층 퍼셉트론(MLP) 기반의 레이어로 구성될 수 있다. 최종 주가 예측 값을 출력하는 구체적인 방법은 전술하였으므로 자세한 설명은 생략하도록 한다.
도 11 및 도 12에서는 각각의 과정을 순차적으로 실행하는 것으로 기재하고 있으나 이는 예시적으로 설명한 것에 불과하고, 이 분야의 기술자라면 본 발명의 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 11 및 도 12에 기재된 순서를 변경하여 실행하거나 또는 하나 이상의 과정을 병렬적으로 실행하거나 다른 과정을 추가하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이다.
본 발명의 일 실시 예에 따른 신경망을 이용한 주가 예측 방법을 이용하여 최종 예측된 주가는 실제 주가와 비교했을 때, 절대평균백분율오차가 낮은 것을 확인할 수 있으므로 사용자가 선택한 주식 종목의 미래 주가를 보다 정확하게 예측할 수 있으며, 따라서 사용자는 예측된 주가를 보고 선택한 주식 종목을 투자할지 여부를 결정할 수 있다.
본 실시 예들에 따른 동작은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능한 매체에 기록될 수 있다. 컴퓨터 판독 가능한 매체는 실행을 위해 프로세서에 명령어를 제공하는 데 참여한 임의의 매체를 나타낸다. 컴퓨터 판독 가능한 매체는 프로그램 명령, 데이터 파일, 데이터 구조 또는 이들의 조합을 포함할 수 있다. 예를 들면, 자기 매체, 광 기록매체, 메모리 등이 있을 수 있다. 컴퓨터 프로그램은 네트워크로 연결된 컴퓨터 시스템 상에 분산되어 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 본 실시 예를 구현하기 위한 기능적인(Functional) 프로그램, 코드, 및 코드 세그먼트들은 본 실시 예가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있을 것이다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.
10: 주가 예측 장치 300: 입력 데이터 생성부
100: 샘플 데이터 수집부 400: 복수 개의 주가 예측부들
200: 주가 데이터 변환부 500: 주가 예측 통합부

Claims (16)

  1. 개별 주식 종목의 주가와 관련된 주가 데이터를 수집하는 샘플 데이터 수집부;
    각 날짜 별로 상기 개별 주식 종목의 주가, 거래량 및 거래 시간을 포함하는 상기 수집된 주가 데이터를 가공하여 주식 분석에 사용되는 기술적 분석 데이터로 변환하는 주가 데이터 변환부;
    상기 각 날짜 별로 변환된 기술적 분석 데이터를 이용하여 미리 설정된 차원을 가지는 입력 데이터를 생성하는 입력 데이터 생성부;
    상기 생성된 입력 데이터를 기반으로 개별적으로 학습하여 생성한 복수 개의 주가 예측 모델들을 이용하여 예측하려는 예측 날짜의 복수 개의 주가 예측 값들을 각각 출력하는 복수 개의 주가 예측부들; 및
    상기 출력된 복수 개의 주가 예측 값들을 기반으로 학습하여 생성한 주가 예측 통합 모델을 이용하여 상기 출력된 복수 개의 주가 예측 값들을 통합하여 상기 예측 날짜의 최종 주가 예측 값을 출력하는 주가 예측 통합부;를 포함하며,
    상기 입력 데이터 생성부는,
    상기 각 날짜 별로 변환된 기술적 분석 데이터에 포함된 M (M은 자연수) 개의 기술적 분석 지표들 중 상기 예측 날짜보다 N1 (N1은 자연수) 일 전의 날짜에 해당하는 M1 (M1은 자연수, M1≤M) 개의 기술적 분석 지표들만을 이용하여 1 X M1 인 1 차원의 제1 입력 데이터를 생성하는 제1 입력 데이터 생성부;
    상기 각 날짜 별로 변환된 기술적 분석 데이터에 포함된 M개의 기술적 분석 지표들 중 상기 예측 날짜보다 N 일(N은 자연수, 1<N-N1) 전부터 상기 예측 날짜보다 상기 N1 일 전까지인 N2(N2는 자연수, N2=N-N1) 일치에 해당하는 각 날짜 별 M2(M2는 자연수, M2≤M) 개의 기술적 분석 지표들만을 이용하여 N2 X M2인 2차원의 제2 입력 데이터를 생성하는 제2 입력 데이터 생성부; 및
    상기 각 날짜 별로 변환된 기술적 분석 데이터에 포함된 M 개의 기술적 분석 지표들 중 상기 예측 날짜보다 N’일(N’은 자연수, 1<N’-N1) 전부터 상기 예측 날짜보다 상기 N1 일 전까지인 N3(N3는 자연수, N3=N’-N1) 일치에 해당하는 각 날짜 별 M3(M3은 자연수, M3≤M) 개의 기술적 분석 지표들만을 이용하여 N3 X M3 인 2차원의 제3 입력 데이터를 생성하는 제3 입력 데이터 생성부;를 포함하고,
    상기 복수 개의 주가 예측부들은,
    상기 생성된 제1 입력 데이터를 기반으로 개별적으로 학습하여 생성한 제1 주가 예측 모델을 이용하여 상기 예측 날짜의 제1 주가 예측 값을 출력하는 제1 주가 예측부;
    상기 생성된 제2 입력 데이터를 기반으로 개별적으로 학습하여 생성한 제2 주가 예측 모델을 이용하여 상기 예측 날짜의 제2 주가 예측 값을 출력하는 제2 주가 예측부; 및
    상기 2차원의 제3 입력 데이터를 1 X M3 인 1차원의 N3 개 데이터들로 분리하고, 상기 분리된 N3 개 데이터들을 기반으로 개별적으로 학습하여 생성한 제3 주가 예측 모델을 이용하여 상기 예측 날짜의 제3 주가 예측 값을 출력하는 제3 주가 예측부;를 포함하며,
    상기 주가 예측 통합부는,
    상기 주가 예측 통합 모델을 이용하여 상기 출력된 제1 주가 예측 값, 상기 출력된 제2 주가 예측 값, 및 상기 출력된 제3 주가 예측 값을 통합하여 상기 예측 날짜의 최종 주가 예측 값을 출력하며,
    상기 제1 주가 예측 모델은, 상기 생성된 제1 입력 데이터를 입력 받는 제1 입력층 및 상기 제1 주가 예측 값을 출력하는 제1 출력층과 각각 가중치로 연결되고 상기 제1 입력층과 상기 제1 출력층 사이에 위치하는 적어도 하나의 제1 은닉층을 포함하는 다층 퍼셉트론(multi-layer perceptron, MLP) 기반의 레이어로 구성되고,
    상기 제2 주가 예측 모델은, 합성곱(convolution) 연산자를 통해 상기 생성된 제2 입력 데이터로부터 특징을 추출하여 특징 맵을 생성하는 합성곱 층(convolutional layer), 상기 생성된 특징 맵을 미리 설정된 공간적 차원으로 축소시키는 풀링 층(pooling layer) 및 상기 미리 설정된 공간적 차원으로 축소된 특징 맵으로부터 상기 제2 주가 예측 값을 출력하는 완전 연결 층(fuly connected layer)을 포함하는 합성곱 신경망(Convolutional Neural Network, CNN) 기반의 레이어로 구성되고,
    상기 제3 주가 예측 모델은, 상기 N3 일치의 시계열적 특성이 반영된 상기 분리된 N3개 데이터들을 각각 입력 받아 하나의 상기 제3 주가 예측 값을 출력하는 시계열 데이터 분석이 가능한 순환신경망(Recurrent Neural Network, RNN) 기반의 레이어로 구성되고,
    상기 주가 예측 통합 모델은, 상기 출력된 복수 개의 주가 예측 값들을 각각 입력 받는 복수 개의 입력 노드를 포함하는 제2 입력층 및 상기 최종 주가 예측 값을 출력하는 제2 출력층과 각각 가중치로 연결되고 상기 제2 입력층과 상기 제2 출력층 사이에 위치하는 적어도 하나의 제2 은닉층을 포함하는 다층 퍼셉트론(MLP) 기반의 레이어로 구성되는 것을 특징으로 하는 신경망을 이용한 주가 예측 장치.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 제1항에 있어서,
    상기 제3 주가 예측 모델은,
    시간적 순서를 고려하여 상기 분리된 N3개 데이터들을 입력 받아 상기 예측 날짜의 제3 주가 예측 값을 출력하도록 현재 메모리 셀에 이전 메모리 셀 상태를 반영할지 여부를 결정하는 망각 게이트(Forget Gate)를 포함하는 장단기 메모리(Long Short Term Memory, LSTM) 셀로 구성된 순환신경망(Recurrent Neural Network, RNN) 기반의 레이어로 구성되는 것을 특징으로 하는 신경망을 이용한 주가 예측 장치.
  9. 삭제
  10. 삭제
  11. 제1항에 있어서,
    상기 입력 데이터 생성부는,
    시계열적 특성을 고려하여 상기 수집된 주가 데이터를 미리 설정된 시간 간격으로 분할하고, 상기 분할된 주가 데이터를 미리 설정된 제1 비율에 해당하는 학습 데이터와 미리 설정된 제2 비율에 해당하는 검증 데이터로 분류하며, 상기 분류된 학습 데이터를 이용하여 상기 미리 설정된 차원을 가지는 입력 데이터를 생성하고,
    상기 복수 개의 주가 예측부들은,
    상기 분류된 검증 데이터 중 상기 예측 날짜의 주가를 레이블링하여 상기 복수 개의 주가 예측 값들이 상기 레이블링된 예측 날짜의 주가가 되도록 상기 복수 개의 주가 예측 모델들을 각각 학습하고,
    상기 주가 예측 통합부는,
    상기 최종 주가 예측 값이 상기 레이블링된 예측 날짜의 주가가 되도록 상기 주가 예측 통합 모델을 학습하는 것을 특징으로 하는 신경망을 이용한 주가 예측 장치.
  12. 제1항에 있어서,
    상기 샘플 데이터 수집부는,
    상기 개별 주식 종목에 해당하는 기업의 경영에 따른 재무 상태를 표시한 재무제표 및 환율 데이터를 더 수집하고,
    상기 입력 데이터 생성부는,
    상기 수집된 주가 데이터, 재무제표 및 환율 데이터를 이용하여 미리 설정된 차원을 가지는 입력 데이터를 생성하는 것을 특징으로 하는 신경망을 이용한 주가 예측 장치.
  13. 주가 예측 장치에 의한 신경망을 이용한 주가 예측 방법에 있어서,
    샘플 데이터 수집부에 의해 개별 주식 종목의 주가와 관련된 주가 데이터를 수집하는 단계;
    주가 데이터 변환부에 의해 각 날짜 별로 상기 개별 주식 종목의 주가, 거래량 및 거래 시간을 포함하는 상기 수집된 주가 데이터를 가공하여 주식 분석에 사용되는 기술적 분석 데이터로 변환하는 단계;
    입력 데이터 생성부에 의해 상기 각 날짜 별로 변환된 기술적 분석 데이터를 이용하여 미리 설정된 차원을 가지는 입력 데이터를 생성하는 단계;
    복수 개의 주가 예측부들에 의해 상기 생성된 입력 데이터를 기반으로 개별적으로 학습하여 생성한 복수 개의 주가 예측 모델들을 이용하여 예측하려는 예측 날짜의 복수 개의 주가 예측 값들을 각각 출력하는 단계; 및
    주가 예측 통합부에 의해 상기 출력된 복수 개의 주가 예측 값들을 기반으로 학습하여 생성한 주가 예측 통합 모델을 이용하여 상기 출력된 복수 개의 주가 예측 값들을 통합하여 상기 예측 날짜의 최종 주가 예측 값을 출력하는 단계;를 포함하며,
    상기 입력 데이터를 생성하는 단계는,
    상기 각 날짜 별로 변환된 기술적 분석 데이터에 포함된 M (M은 자연수) 개의 기술적 분석 지표들 중 상기 예측 날짜보다 N1 (N1은 자연수) 일 전의 날짜에 해당하는 M1 (M1은 자연수, M1≤M) 개의 기술적 분석 지표들만을 이용하여 1 X M1 인 1 차원의 제1 입력 데이터를 생성하는 단계;
    상기 각 날짜 별로 변환된 기술적 분석 데이터에 포함된 M개의 기술적 분석 지표들 중 상기 예측 날짜보다 N 일(N은 자연수, 1<N-N1) 전부터 상기 예측 날짜보다 상기 N1 일 전까지인 N2(N2는 자연수, N2=N-N1) 일치에 해당하는 각 날짜 별 M2(M2는 자연수, M2≤M) 개의 기술적 분석 지표들만을 이용하여 N2 X M2인 2차원의 제2 입력 데이터를 생성하는 단계; 및
    상기 각 날짜 별로 변환된 기술적 분석 데이터에 포함된 M 개의 기술적 분석 지표들 중 상기 예측 날짜보다 N’일(N’은 자연수, 1<N’-N1) 전부터 상기 예측 날짜보다 상기 N1 일 전까지인 N3(N3는 자연수, N3=N’-N1) 일치에 해당하는 각 날짜 별 M3(M3은 자연수, M3≤M) 개의 기술적 분석 지표들만을 이용하여 N3 X M3 인 2차원의 제3 입력 데이터를 생성하는 단계;를 포함하고,
    상기 복수 개의 주가 예측 값들을 각각 출력하는 단계는,
    상기 생성된 제1 입력 데이터를 기반으로 개별적으로 학습하여 생성한 제1 주가 예측 모델을 이용하여 상기 예측 날짜의 제1 주가 예측 값을 출력하는 단계;
    상기 생성된 제2 입력 데이터를 기반으로 개별적으로 학습하여 생성한 제2 주가 예측 모델을 이용하여 상기 예측 날짜의 제2 주가 예측 값을 출력하는 단계; 및
    상기 2차원의 제3 입력 데이터를 1 X M3 인 1차원의 N3 개 데이터들로 분리하고, 상기 분리된 N3 개 데이터들을 기반으로 개별적으로 학습하여 생성한 제3 주가 예측 모델을 이용하여 상기 예측 날짜의 제3 주가 예측 값을 출력하는 단계;를 포함하며,
    상기 최종 주가 예측 값을 출력하는 단계는,
    상기 주가 예측 통합 모델을 이용하여 상기 출력된 제1 주가 예측 값, 상기 출력된 제2 주가 예측 값, 및 상기 출력된 제3 주가 예측 값을 통합하여 상기 예측 날짜의 최종 주가 예측 값을 출력하며,
    상기 제1 주가 예측 모델은, 상기 생성된 제1 입력 데이터를 입력 받는 제1 입력층 및 상기 제1 주가 예측 값을 출력하는 제1 출력층과 각각 가중치로 연결되고 상기 제1 입력층과 상기 제1 출력층 사이에 위치하는 적어도 하나의 제1 은닉층을 포함하는 다층 퍼셉트론(multi-layer perceptron, MLP) 기반의 레이어로 구성되고,
    상기 제2 주가 예측 모델은, 합성곱(convolution) 연산자를 통해 상기 생성된 제2 입력 데이터로부터 특징을 추출하여 특징 맵을 생성하는 합성곱 층(convolutional layer), 상기 생성된 특징 맵을 미리 설정된 공간적 차원으로 축소시키는 풀링 층(pooling layer) 및 상기 미리 설정된 공간적 차원으로 축소된 특징 맵으로부터 상기 제2 주가 예측 값을 출력하는 완전 연결 층(fuly connected layer)을 포함하는 합성곱 신경망(Convolutional Neural Network, CNN) 기반의 레이어로 구성되고,
    상기 제3 주가 예측 모델은, 상기 N3 일치의 시계열적 특성이 반영된 상기 분리된 N3개 데이터들을 각각 입력 받아 하나의 상기 제3 주가 예측 값을 출력하는 시계열 데이터 분석이 가능한 순환신경망(Recurrent Neural Network, RNN) 기반의 레이어로 구성되고,
    상기 주가 예측 통합 모델은, 상기 출력된 복수 개의 주가 예측 값들을 각각 입력 받는 복수 개의 입력 노드를 포함하는 제2 입력층 및 상기 최종 주가 예측 값을 출력하는 제2 출력층과 각각 가중치로 연결되고 상기 제2 입력층과 상기 제2 출력층 사이에 위치하는 적어도 하나의 제2 은닉층을 포함하는 다층 퍼셉트론(MLP) 기반의 레이어로 구성되는 것을 특징으로 하는 신경망을 이용한 주가 예측 방법.
  14. 삭제
  15. 삭제
  16. 제13항에 따른 신경망을 이용한 주가 예측 방법을 컴퓨터에서 수행하기 위한 컴퓨터에서 판독 가능한 프로그램이 기록된 저장 매체.
KR1020180115960A 2018-09-28 2018-09-28 신경망을 이용한 주가 예측 장치 및 그 방법 KR102185921B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180115960A KR102185921B1 (ko) 2018-09-28 2018-09-28 신경망을 이용한 주가 예측 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180115960A KR102185921B1 (ko) 2018-09-28 2018-09-28 신경망을 이용한 주가 예측 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20200039037A KR20200039037A (ko) 2020-04-16
KR102185921B1 true KR102185921B1 (ko) 2020-12-02

Family

ID=70454744

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180115960A KR102185921B1 (ko) 2018-09-28 2018-09-28 신경망을 이용한 주가 예측 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR102185921B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102570099B1 (ko) * 2020-06-30 2023-08-23 동국대학교 산학협력단 고빈도 기상 데이터를 이용한 합성곱 신경망 기반의 기상 요소 예측 방법 및 장치
CN111932379B (zh) * 2020-09-23 2021-01-29 北京口袋财富信息科技有限公司 数据处理方法、装置、电子设备及可读存储介质
KR102322139B1 (ko) * 2020-10-30 2021-11-05 주식회사 핀업 캔들의 형성 과정을 반영한 기술적 분석 데이터를 도출하는 방법 및 이를 이용하여 주가를 예측하는 시스템
KR102532197B1 (ko) * 2021-01-04 2023-05-11 연세대학교 원주산학협력단 객체탐지모형을 적용한 주가등락 예측장치
KR102597042B1 (ko) * 2021-06-15 2023-10-31 김상율 머신러닝 알고리즘을 활용한 주식시장 예측 장치 및 방법
KR102485506B1 (ko) * 2022-02-08 2023-01-05 리벨리온 주식회사 데이터 분포를 기초로 기계학습 모델을 선택하는 방법 및 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101458004B1 (ko) * 2013-12-26 2014-11-04 주식회사 코스콤 인공 신경망 모형을 이용한 주가 등락 예측 시스템 및 주가 등락 예측 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101458004B1 (ko) * 2013-12-26 2014-11-04 주식회사 코스콤 인공 신경망 모형을 이용한 주가 등락 예측 시스템 및 주가 등락 예측 방법

Also Published As

Publication number Publication date
KR20200039037A (ko) 2020-04-16

Similar Documents

Publication Publication Date Title
KR102185921B1 (ko) 신경망을 이용한 주가 예측 장치 및 그 방법
Unler et al. A discrete particle swarm optimization method for feature selection in binary classification problems
Dash Performance analysis of a higher order neural network with an improved shuffled frog leaping algorithm for currency exchange rate prediction
KR102161256B1 (ko) 주식 포트폴리오 구성을 위한 주식 종목 선택 장치 및 그 방법
Ribeiro et al. Deep belief networks for financial prediction
Azayite et al. Hybrid discriminant neural networks for bankruptcy prediction and risk scoring
Ng et al. LG-Trader: Stock trading decision support based on feature selection by weighted localized generalization error model
Chevallier et al. Forecasting Inflection points: Hybrid methods with multiscale machine learning algorithms
Li et al. Asset returns in deep learning methods: An empirical analysis on SSE 50 and CSI 300
Denk et al. Avoid filling Swiss cheese with whipped cream: imputation techniques and evaluation procedures for cross-country time series
Sen et al. An analysis of crude oil prices in the last decade (2011-2020): With deep learning approach
Pandey et al. Machine learning–based classifiers ensemble for credit risk assessment
Wongkhamdi et al. A comparison of classical discriminant analysis and artificial neural networks in predicting student graduation outcomes
Dharwadkar et al. Customer retention and credit risk analysis using ANN, SVM and DNN
Pozorska et al. Company bankruptcy prediction with neural networks
Saif et al. An expert system with neural network and decision tree for predicting audit opinions
Kelany et al. Deep learning model for financial time series prediction
Chirita et al. Usefulness of artificial neural networks for predicting financial and economic crisis
Binu et al. A Cloud-Based Data Analysis and Prediction System for University Admission
Janikova et al. Prediction of production line performance using neural networks
Manthoulis et al. Bank failure prediction: a comparison of machine learning approaches
Giacomel et al. Improving financial time series prediction through output classification by a neural network ensemble
Mohapatra et al. Forex forecasting: A comparative study of llwnn and neurofuzzy hybrid model
Nayak et al. Feasibility study of machine learning & AI algorithms for classifying software requirements
Kumar Stock Market Prediction using LSTM and Markov Chain Models: A Case Study of Royal Bank of Canada Stock

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant