개요
- 오늘은 LSTM을 배운 날!
- LSTM을 이용해 딥 러닝 주가 예측 머신을 만드는 튜토리얼이 많아 따라해보며 실습해보기로 한다.
- 나름 얼마 전 테슬라로 재미 좀 보고, 애플을 사랑하는 가치 투자 주주로써 애플을 활용하여 주가 예측을 해 볼 예정이다.
EDA & 전처리 & FE
- 주가 데이터는 야후 파이넨셜을 이용하여 다운로드했다.
1 |
|
1 |
|
시각화
1 |
|
정규화
1 |
|
학습 데이터셋 생성
window_size
: 얼마동안의 주가 데이터에 기반하여 다음날 종가를 예측할 것인가를 정하는 parameter로써, 과거 20일을 기반으로 내일 데이터를 예측한다고 가정하면 window_size=20이 된다.test_size
: 과거부터 200일 이전의 데이터를 학습하게 되고, test를 위해 이후 200일의 데이터로 모델이 주가를 예측하도록 한 다음, 실제 데이터와 오차가 얼마나 있는지 확인한다.
1 |
|
피쳐 레벨 정의
1 |
|
케라스 활용 LSTM 모델 생성
1 |
|
실제 & 예측 시각화
1 |
|
결론
- 시각화 결과를 보고 그럴싸해 보이지만, 많은 허점이 있다.
- 팩폭을 맞은 블로그 포스팅 바로가기
- 간단하게 요약해보자면, 위 모델은 그저 예측 주가가 그 전날의 주가를 그대로 표시한다는 것이다.
- 컴퓨터에게 ‘28일의 주식가격’을 물어보면 ‘27일의 주식가격’이라고 답변하는 것과 같다.
- 모델이 loss값이 최소화하려고 할때 가장 적은 모델이 그저 ‘내일 주식가격은 오늘 주식가격과 똑같을 것이다’가 된다.
- 잘못된 건 아니지만, 쓸모가 전혀 없다.
해결책
- 전날 가격보다, 외부 정보가 중요할 수 있다.
- 전날 거래량
- SNS 언급량
- 전날 나스닥지수 증감량
- 관련 업종 주가추이
생각
- 예쁘고 쓸모 없는 모델을 만들었다.
- 하지만 LSTM을 이해하는데 큰 도움이 되었다고 생각한다(재미와 더불어).
- 주가 예측은 현실적으로 어려우니(현실적으로 가능했으면 딥러닝을 배운사람들은 때부자가 됐겠다.) 일획천금 노릴 생각하지말고 열심히 살자.