캐글 주가 예측 - kaegeul juga yecheug

IT 개발자_S

머신러닝을 이용한 주식 예측 -기본편 (삼성전자 주식 예측) 본문

IT/머신러닝

머신러닝을 이용한 주식 예측 -기본편 (삼성전자 주식 예측)

Soso12 2020. 12. 18. 23:45

● 머신러닝 LSTM 모델을 사용할 수 있다.

● LSTM 을 활용하여 주식 예측의 흐름을 읽을 수 있다.

LSTM 머신러닝 모델을 사용하여 삼성전자 주가의 흐름을 예측해보는 실습을 진행하겠습니다.

먼저 RNN 순환신경망은 과거에 입력된 데이터를 나중에 입력된 데이터의 관계를 고려하는 방법으로

LSTM(Long Short Term Memory) 반복되면서 과거의 단계를 다음단계로 넘길지 안넘길지를 파악하여 손실을 줄여주는 방법을 사용하여 예측을 진행해 보겠습니다.

먼저 데이터 준비하기 야후 파이낸스 접속후 SAMSUNG 서치 후 Download

캐글 주가 예측 - kaegeul juga yecheug

실습환경 코랩 

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from keras.models import Sequential
from keras.layers import LSTM, Dropout, Dense, Activation
# from keras.callbacks import TensorBoard, ModelCheckpoint, ReduceLROnPlateau
import datetime

data_low = pd.read_csv('/content/drive/MyDrive/colab/머신러닝/data/005930.KS.csv')


data = data_low

data= data.dropna()
data.isnull().sum()

keara, matplotlib 라이브러리 import 후 다운받은 csv 파일을 불러온다.

해당 파일을 read 할때 dorpna 를 사용하여 null 값을 제거하여 null 처리를 진행해준다.

high_prices = data['High'].values
low_prices = data['Low'].values
mid_prices = (high_prices + low_prices) / 2

고가 , 저가의 중간 값이 mid_prices 를 구해준다.

seq_len = 50
sequence_length = seq_len + 1

result = []
for index in range(len(mid_prices) - sequence_length):
    result.append(mid_prices[index: index + sequence_length])

50개의 데이터를 연속적으로 읽어 다음 데이터를 파악하는 RNN구조의 데이터를 만든다.

normalized_data = []
normalized_data_price = []

for window in result:
    normalized_window = [((float(p) / float(window[0])) - 1) for p in window]

    normalized_data.append(normalized_window)

    normalized_data_price.append(normalized_window_price)

result = np.array(normalized_data)
#result = np.array(normalized_data_price)

row = int(round(result.shape[0] * 0.9))
train = result[:row, :]


x_train = train[:, :-1]
x_train = np.reshape(x_train, (x_train.shape[0], x_train.shape[1], 1))
y_train = train[:, -1]

x_test = result[row:, :-1]
x_test = np.reshape(x_test, (x_test.shape[0], x_test.shape[1], 1))
y_test = result[row:, -1]

x_train.shape, x_test.shape

 normalized_window = [((float(p) / float(window[0])) - 1) for p in window]  : 정규화 작업

window 50개의 저장된 데이터를 정규화하여 window[0] 을 기준으로 나눈다.

해당 데이터의 0.9 즉 90% train 데이터 나머지 10% test 데이터로 사용한다.

model = Sequential()

model.add(LSTM(50, return_sequences=True, input_shape=(50, 1)))

model.add(LSTM(64, return_sequences=False))

model.add(Dense(1, activation='linear'))

model.compile(loss='mse', optimizer='rmsprop')

model.summary()

모델 LSTM 모델을 사용하여 머신러닝 모델을 만든다. 출력은 1 이므로 Dense 1로 선언.

model.fit(x_train, y_train,
    validation_data=(x_test, y_test),
    batch_size=20,
    epochs=10)

모델 피팅하는 작업을 진행한다.

pred = model.predict(x_test)

fig = plt.figure(facecolor='white', figsize=(20, 10))
ax = fig.add_subplot(111)
ax.plot(y_test, label='True')
ax.plot(pred, label='Prediction')
ax.legend()
plt.show()

실제 matpliot 를 통해 예측모델과 실제 모델의 추이를 살펴본다.

캐글 주가 예측 - kaegeul juga yecheug

전체적인 흐름이 비슷하다는 것을 알수 있다.

해당 소스코드 및 강의는 github.com/kairess/stock_crypto_price_prediction 를 참조하였습니다.

kairess/stock_crypto_price_prediction

Contribute to kairess/stock_crypto_price_prediction development by creating an account on GitHub.

github.com

캐글 주가 예측 - kaegeul juga yecheug

올해 첫 캐글 AI 대회 참가팀 3852개 중 2위 수상

AI 기술리더십 기반 솔루션 ‘AI Pack’ 상반기 론칭

[파이낸셜뉴스] 인공지능(AI) 스타트업 업스테이지는 ‘AI 올림픽’ 캐글 대회에서 2위에 올라 금메달을 받았다고 25일 밝혔다. 업스테이지는 네이버 전 클로바 AI 리더 김성훈, 네이버 전 클로바 OCR/Visual 리더 이활석, 네이버 전 파파고 번역기 모델링 리더 박은정 등이 함께 설립한 AI 전문기업이다.

캐글은 구글이 보유한 데이터전문가 커뮤니티이자 AI 대회 플랫폼이다. 전 세계 AI 전문가의 객관적인 능력을 가늠할 수 있도록 등급과 랭킹 시스템을 운용한다. 다양한 기업들의 문제를 AI로 해결하는 경진대회 결과를 바탕으로 순위와 등급을 매긴다. 5개 등급으로 나뉘며 최고 등급인 그랜드마스터는 전 세계에 248명뿐이다.

이번 캐글 AI 경진대회는 글로벌 금융기업인 옵티버(Optiver)가 주최한 ‘주가 변동성 예측(Optiver Realized Volatility Prediction) 대회’이다. 주식 시장에서 주가 단기 변동성을 머신러닝(기계학습) 알고리즘으로 예측해 매수와 매도 물량의 최적 가격을 설정하는 것을 목표로 챌린지가 진행됐다.

지난 6월부터 약 7개월에 걸쳐 진행된 이번 대회에는 3852개 팀이 참여해 AI 기술력을 겨뤘으며, 업스테이지 김윤수 그랜드마스터가 전체 순위 2위로 금메달을 획득했다. 업스테이지는 예측 정합성을 높이기 위해 머신러닝 알고리즘 성능을 개선, 상위 0.05% 결과를 이뤘다.

특히 이번 대회에 입상한 업스테이지 김윤수 그랜드마스터는 지난해 최연소로 국내에서 6번째 캐글 그랜드마스터로 이름을 올린 바 있다. 서울대 학부생인 김윤수 그랜드마스터는 지난해 업스테이지 AI인재양성 프로그램인 ‘글로벌 레지던시(Global Residency)’ 과정에 참여해 업스테이지 전문가들의 멘토링을 통해 실전 현장을 경험, AI 기술 개발 관련 실무 역량을 쌓았다. 이를 기반으로 지난해부터 세계 AI 경진대회에서 5개 금메달을 획득, 캐글 글로벌 랭킹 19위에 올랐다.

캐글 주가 예측 - kaegeul juga yecheug

업스테이지 김윤수 캐글 그랜드마스터. 업스테이지 제공

김윤수 그랜드마스터는 “지난해 대회 1위를 차지한 쇼피대회와 그랜드마스터에 오른 커먼릿 대회 후 또 하나의 금메달을 획득해 기쁘다”면서 “업스테이지 글로벌 레지던시에 합류한 뒤 캐글 그랜드마스터 김상훈 리더와 함께 일하며 많은 도움을 얻었고 앞으로 더 좋은 AI개발자가 되기 위해 노력하겠다”고 전했다.

한편, 업스테이지는 최신 AI 기술을 다양한 업종에 손쉽게 적용할 수 있는 ‘AI 팩(Pack)’을 개발해 올 상반기 출시할 계획이다.

AI Pack은 △이미지에서 원하는 정보를 추출해 이용할 수 있는 광학문자인식(OCR) 기술 △의미가 유사한 정보를 검색할 수 있는 고성능 자연어처리 검색 기술 △고객 정보와 제품 및 서비스 특징을 고려한 추천 기술 등 AI 기술을 맞춤형으로 활용 할 수 있도록 돕는 원스톱 솔루션이다. 업스테이지 AI Pack을 통해 기업들은 데이터 가공과 AI 모델링 뿐 아니라 지속적인 업데이트를 통해 항상 최신 AI 기술을 현업에서 이용할 수 있다.

김미희 기자

※ 저작권자 ⓒ 파이낸셜뉴스, 무단전재-재배포 금지