본문 바로가기

주식 데이터 모델링

(14)
간단한 모델링 코드 공유 - github https://github.com/Gorosia/Stock_Prediction_Basic 이제까지 포스팅한 글들, 코드를 바탕으로 주식 모델링 관련 간단한 코드들을 작성해서 github에 공유해두었습니다. 필요한 라이브러리나, 사용방법등은 gitgub에 공유해두었습니다. 한국 주식들 크롤링 해서, 기술적 지표들 만들고, 간단한 모델링 진행하는 코드 입니다. 물론 결과가... 좋지는 않지만 원하시는 모델 구조를 만들던가 하는 데 바탕이 될 수는 있을 거 같네요.
딥러닝으로 캔들스틱 차트 이용해서 주식 예측 - 예제코드 지난번 논문을 읽고 그 논문관련 코드를 작성해보았습니다. 이미 코드가 전부 공개되어 있긴 하지만, 공부를 위해서는 역시 내가 원하는 식으로 작성해보는게 도움이 될 것 같아서였습니다. 코드를 간단하게 바꿔보고자 하는 마음도 있었습니다. 코드는 크게 3가지 파트로 구성하였습니다. 1. 주식 데이터를 캔들스틱 차트로 바꾸기 2. 차트와 라벨을 이용해서 데이터 제너레이터 생성 3. 모델 훈련 1. 주식데이터를 캔들스틱 차트로 바꾸기 Colab을 이용했기 때문에 코드 상단에 구글드라이브 폴더를 mount 하는 부분이 있습니다. 이부분은 local에서 진행할떄나 colab에서 진행할때나 어쨌든 주식 데이터가 있는 곳을 지정해주면 됩니다. 이부분의 코드는 DeepCandle 소스코드를 참고했습니다. 기존 소스코드는 ..
딥러닝으로 캔들스틱 차트 이용해서 주식 예측 - 논문요약 Using Deep Learning Neural Networks and Candlestick Chart Representation to Predict Stock Market 위의 제목을 한 논문이 있습니다. 이름부터 꽤 흥미가 있어서 논문을 읽어보았습니다. 1. 소개와 이전연구 논문의 주된 내용은 주식 데이터를 Candlestick chart로 바꿔서 딥러닝을 통해 학습 했다는 내용입니다. 그 이전에도 캔들스틱 차트를 이용해서 머신러닝, 인공신경망 등을 학습한 연구가 있었습니다. 최근에는 딥러닝을 통해 주식 시장을 예측할때, 뉴스 데이터, 재무 데이터, SNS에서 가져온 감정 데이터 등 주가 외의 데이터를 이용하는 경우도 많았습니다. 이 논문의 contribution은, 캔들스틱 차트를 데이터로 사용하고..
주식 정규화 전 EDA - 주식은 60일 거래일 동안 얼마나 오르고 떨어질까 딥러닝 모델링을 위해서는 데이터를 정규화 해주는 것이 좋습니다. 정규화를 안해도 학습이 되는 경우가 있긴합니다. 그러나 딥러닝은 gradient descent 방식을 통해 학습을 합니다. 정규화를 진행시켜주어야 이러한 학습이 잘 작동을 하고, 대부분의 경우 아주 쉬운 문제일지라도 정규화를 해주지 않으면 학습이 안 될 수도 있습니다. 주식 데이터도 딥러닝을 통해 학습하기전에 정규화를 해주는 것이 좋겠죠. 그렇다면 어떤 방식으로 정규화를 해야할까요? 라는 문제는 다음에 포스팅하겠습니다. 어떻게 정규화를 할지를 고민하다가, EDA를 하게 되었지만 글 순서는 반대가 되었군요. 저는 주식의 데이터를 0~1로 정규화 하고자 합니다. 그리고 Min-max 방식으로 진행할 것인데, 그렇다면 어떤 값을 min과 max값..
시계열 데이터 분석에 딥러닝을 사용할 이유 3가지 주식 데이터는 시간에 따른 데이터가 존재하는 시계열 데이터 입니다. 그래서 시계열 데이터를 분석할 때 사용하는 방법을 주식 데이터에도 적용하곤 합니다. 데이터를 전처리 하는 과정에서 시차(lag)를 고려하기도 하고, ARIMA 모형, 회귀 모델 등을 이용합니다. 딥러닝 방식으로는 LSTM을 사용합니다. 그렇기 때문에 시계열 데이터 분석에 딥러닝을 사용하는 이유를 알 게 된다면, 주식 데이터를 분석할때도 유용하게 활용할 수 있겠죠. 참고한 글에서는 이유로 3가지를 말합니다. 이 세가지 이유에 대해 글에서 설명한 내용, 그리고 저의 생각이나 경험들을 바탕으로 이유에 대해 글을 써보도록 하겠습니다. 1. Deep learning neural networks are capable of automatically ..
LightGBM으로 주식 모델링 해보기 [머신러닝] - Classification, 머신러닝으로 모델링이 가능한가? 이번에는 전 글에 이어서 주식 모델링을 분류 방식으로 해결해보도록 하겠습니다. 분류 문제는 두가지 방식으로 진행하겠습니다. 1) 전날에 비해 금일 종가가 상승 or 하락 2) 전날에 비해 금일 종가가 3% 이상 상승 or 그 외 1번은 바로 이해가 되실겁니다. 2번 같은 문제를 만든 이유는, 좀더 특별한 신호를 찾아볼 수 있을까? 라는 의미에서 만들었습니다. 1번 문제의 경우에는 전체 데이터 셋에서 거의 반반으로 볼 수 있습니다. 2번째 문제의 경우에는 1700개의 row 중 184개, 즉 약 10%의 row만 해당하는 군요. 이정도면 시도는 해볼 수 있겠습니다. 위 정보를 바탕으로 label을 만들어준뒤에 모델링을 하도록 합니다. . label_tf = np.where(data[1:1741]["Adj"..
LightGBM으로 주식 모델링 해보기 [머신러닝] - Regression 머신러닝 기법에는 회귀분석, 의사결정나무 등 많은 기법이 있습니다. 데이터의 종류, 데이터의 갯수, task 종류 등을 고려해서 머신러닝 기법을 선택해야 합니다. 그 상황에 가장 적합한 머신러닝 기법을 선택하는 것이 실력 이겠죠. 그래도 일반적으로 사용되는 기법들이 있습니다. 회귀문제에서는 회귀분석을 가장 먼저 사용해보고, 분류 문제에서는 트리모형, Xgboost 등을 먼저 사용해봅니다. 사용하는 방법도 쉽고 좋은 성능을 보여주기 때문입니다. 오늘 주식 모델링에서 사용할 머신러닝 알고리즘은 LightGBM 입니다. LightGBM은 2년 전에 마이크로소프트에서 논문으로 내놓은 알고리즘 입니다. 그 이전까지 분류 알고리즘의 최강자 였던 XGBoost와 비교해서 예측 성능은 비슷하거나 더 좋고, 속도도 빠르..
SAEs와 LSTM으로 주식 예측하기 - [A deep learning framework for financial time series using stacked autoencoders and long-short term memory] - 논문요약 이번에는 논문의 내용만 간단히 요약해보겠습니다. A deep learning framework for financial time series using stacked autoencoders and long-short term memory 라는 논문 입니다. 이번 논문은 수집 하기 쉬운 일자별 데이터를 사용합니다. 그리고 저자들이 사용한 데이터를 공개하기도 했구요. Wavelet Transform으로 데이터의 노이즈를 제거하고, stacked autoencoder로 feature를 생성하고, lstm으로 다음날의 종가를 예측했다고 합니다. 2017년에 나온 논문이고, 논문 인용수는 현재 기준으로 152회나 되었습니다. 0. Introduction 주식 예측은 noise가 굉장히 많아 어렵다고 하고, ANN..