최강AI 안내

홈으로/최강AI 안내
제목주가예측 1호2020-03-30 01:47:43
작성자

주가예측 1호


☐ 개요
  ○ 주가예측 1호는 과거의 일별 데이터(시가, 고가, 저가, 종가)에 기반하여 향후 n일간의 일별 목표가를 예측하는 프로그램으로 크롬 브라우저에 최적화되어 있다.


☐ 데이터
  ○ 학습을 수행하고 예측을 하기 위해서는 반드시 과거 데이터가 입력되어야 한다.
  ○ 기본적으로 500거래일간의 KOSPI200 연결지수 일별 데이터가 입력되어 있는데, 사용자가 다른 종목의 CSV 데이터 파일을 업로드하면 해당 종목에 대한 학습과 예측을 수행할 수 있다. 주식, 선물, 옵션, 상품 등 일별 "시가, 고가, 저가, 종가"가 있는 어떤 종목도 관계없다.
  ○ CSV 파일을 업로드하려면 화면에서 "샘플 CSV파일"을 눌러 샘플 파일을 다운로드를 하여 내용을 살펴보고 동일한 포맷으로 작성하면 된다. 첫 번째 라인에 "Date,Open,High,Low,Close"이라고 입력되어 있는데 이 부분은 그대로 유지해야 한다. 두 번째 라인부터 일별 데이터를 입력하는데 오래된 날짜가 위로 오도록 하면 된다. 각 라인에는 해당일의 "날짜, 시가, 고가, 저가, 종가"를 순서대로 쉼표로 구분하여 입력한다. (예: 2018-03-16,323.2,323.95,320.8,323.15)
  ○ 입력할 수 있는 날짜수는 300일에서 1000일까지로 제한을 하였다. 300일은 의미 있는 결과를 도출하기 위해 필요한 최소한의 날짜수이다. 데이터가 많으면 많을수록 딥러닝에서는 효과적일 수 있지만 일반인 PC의 성능을 감안하여 1000일로 제한을 하였다. 1000일 정도만 되더라도 학습을 수행하면 보통 PC에서 10분 이상의 시간이 소요될 수 있다. 데이터를 나누어 학습하고 모델을 저장 후 업데이트하는 방식은 본 버전에서는 지원하지 않는다.


☐ 학습 소요시간
  ○ 학습에 소요되는 시간은 데이터의 양과 사용자 컴퓨터 사양/환경에 따라 다르다.
  ○ 기본으로 입력되어 있는 500여일간의 KOSPI200 연결선물 데이터를 가지고 2018년 구입한 필자의 PC(윈도우10, 크롬 브라우저)에서 20회 반복학습 시 소요되는 시간은 약 5분 정도다.
  ○ 반면에 구입 후 10년이 넘은 오래된 노트북(크롬OS, 크롬 브라우저)에서 동일한 작업을 수행했을때는 약 2분 정도가 소요되었다.


☐ 예측결과
  ○ 예측결과는 향후 n일간의 일별 목표가이다.
  ○ n일은 데이터의 내용에 따라 AI가 자동으로 정한다. 향후 3일치가 도출될 수도 있고 7일치가 도출될 수도 있다.
  ○ 설정값에 따라 결과는 상이하게 나타날 것이다. 최적의 설정값을 찾기 위해서는 딥러닝에 대한 기본적인 이해가 필요한데, 일단은 기본 설정에서 "학습률"과 "학습 반복횟수"만 조금씩 변경해 보는 것을 추천한다.


☐ 결과 화면구성
  ○ 학습수행 결과화면은 크게 네 부분으로 나누어 볼 수 있다.

  1. 설정: 학습과 예측에 사용한 설정값을 확인할 수 있다. 각 값은 학습 버튼을 누르기 전에 변경할 수 있는데, 해당 값에 대한 지식 없이 변경하면 학습이 제대로 수행되지 않고 비현실적인 결과가 도출되기도 한다. 학습률은 보통 0.001~0.1 사이로 설정한다. 학습 반복횟수가 너무 적을 경우 학습이 제대로 되지 않아 의미 없는 결과가 도출될 것이고, 너무 많을 경우에는 과최적화의 위험이 있다. 손실 그래프가 더 이상 하강하지 않고 (거의) 평평해지는 시점까지로 횟수를 정하는 것이 요령이다. 물론 종목을 변경하거나 데이터 내용이 크게 바뀌면 기존의 설정값도 다시 정하는 것이 좋다.



  2-1. 히스토그램: 입력한 데이터와 예측 데이터에 대한 도수분포 그래프이며 분포, 중심, 퍼짐, 치우침 등을 비교할 수 있다. 양쪽 데이터의 히스토그램이 유사한 형태라면 비교적 유효하다고 할 수 있다.
  2-2., 손실 그래프: 손실(loss)은 머신러닝이나 딥러닝에서 사용하는 핵심 개념 중 하나로 그 내용에 대해서는 다른 게시물에서 다루도록 하겠다. 다만 여기서는 그래프의 형태가 알파벳 대문자 L자 형태여야 한다는 것을 강조한다. L자 형태를 보이지 않는다면 학습률 설정을 변경해야 한다. 학습 반복횟수만큼 손실 값이 조정될 터인데 값이 더 이상 변하지 않거나 아주 작게 변하는 시점을 포착하는 것이 중요하다. 대략적으로 그 시점의 Epoch 값을 학습 반복횟수로 정하면 된다. 손실 그래프 하단에 "학습이 완료되었습니다"라는 안내가 나타나기 전까지는 학습이 진행되고 있는 것이니 완료될 때까지 기다려야 한다.



  3. 일봉 및 목표가 합성 차트: 입력된 일봉에 일자별 목표값을 합성한 차트로 주가와 목표값 간의 상관성을 시각적으로 확인할 수 있다. 최종일(입력값) 이후에는 목표값 라인만 연장되어 있는데, 이 부분이 AI가 예측한 향후 주가 흐름이다. 입력 데이터가 적을수록 예측값의 정확도보다는 방향성에 의미를 두는 것이 좋다.



  4. 예측결과: 학습이 완료된 후 가장 하단의 "AI 예측 결과"를 클릭하면 나타나는 테이블이다. 입력한 최종일로부터 +n일치 동안의 목표값을 수치로 보여준다.