SlideShare a Scribd company logo
1 of 22
Copyright 2018. 박성민 all rights reserved.
dueras@naver.com
…..
…..
KODEX200의 시가, 고가, 저가, 종가를 위 부터 날짜순으로 정렬한 후 날짜가 있는 열과
항목이 있는 행을 제거 한 후 csv 파일로 저장.( 2015. 12. 07 ~ 2018. 05. 18 데이터 )
입력 데이터 reshape -> [598, 1, 4]
입력 데이터 <= 입력 데이터 전체에 대해 입력 데
이터 중 최댓값으로 나누기.
출력 데이터 reshape -> [598, 1]
출력 데이터 <= 출력 데이터 전체에 대해 출력 데
이터 중 최댓값으로 나누기.
학습률 = 0.005
신경망 구조
LSTM 사용 (2048). 입력 크기 = [1, 4].
활성화 함수 = tanh
출력 1개의 값. 활성화 함수 = Linear
Rmsprop & mse 사용
학습 실행시키는 함수
배치 크기 = 64, epoch = 50
예측할 입력 값을 받아 예측 후 결과 값 리턴
p_x = 예측에 사용할 데이터(reshape & 최댓값 나누기)
예측 실행 & 예측 값 리턴
실제 종가 데이터와 예측한 종가 데이터의 그래프
x축은 날짜. 1일 증가 할 때 마다 x축 1 증가.
실제 종가 그래프
예측 종가 그래프
x축은 날짜 증가. 1일 증가시 x축 1 증가.
y축은 종가 데이터.
위의 그래프는 실제 종가에 대한 그래프, 아래의 그래프는 예측 값에 대한 종가 그래프
Main 부분
Lstm 학습 실행
Data 읽기 & 처리
LSTM으로 5/21 종가 예측
5/21 실제 종가 = 31645
2015.12.07~2018.05.18 실제 종가 & 예측 종가 그래프
학습률 0.05로 100 epoch 학습시킨 결과
위의 그래프는 실제 종가 그래프
아래의 그래프는 학습된 모델에 대한 종가 그래프
Loss = 0.0030
5.21에 대한 예측 종가는 31789.6원이고
5.21의 실제 종가는 31645원 이다.
학습률을 변경하고 학습을 더 많이 시키면 더 좋은
결과가 나오게 할 수 있다.
학습 데이터에 대해 최댓값을 나눈 코드
학습 데이터에 대해 최댓값을
나누지 않은 코드
학습률 = 0.05로 100epoch 학습
학습률 = 0.05로 100epoch 학습
학습 데이터에 대해 최댓값을 나눈 결과
학습 데이터에 대해 최댓값을
나누지 않은 결과
학습 데이터에 대해 최댓값을 나눈 경우가 더 잘 학습 된 결과를 보여준다.
아래의 경우가 학습 데이터의 크기가 크기 때문에 loss가 더 크게 나타 날 수 있음.
결과 예측 값을 이용한 그래프 비교도 해 볼 필요가 있다.
학습 데이터에 대해 최댓값을 나눈 그래프
아래가 학습 된 그래프
학습 데이터에 대해 최댓값을
나누지 않은 코드
아래가 학습 된 그래프
학습 데이터에 대해 최댓값을 나눈 경우가 더 잘 학습 된 모양의 그래프를 보여준다
입력 데이터들 간에 값의 차이가 크면, 데이터 분포 그래프가 삐뚤어진
모양을 가지게 되어 학습이 잘 이루어지지 않을 수 있다.
일정 범위 안에 데이터가 분포 할 수 있도록 normalization 해주는 것이 좋다.
최댓값을 나누는 것 뿐만 아니라 standardization(z-표준화)과 같은
다양한 normalization 방법이 존재한다.
LSTM신경망 크기가 2048인 코드
LSTM신경망 크기가 1024인 코드
신경망 크기가 2048인 경우의 결과
신경망 크기가 1024인 경우의 결과
신경망의 크기가 큰 경우가 평균적으로 더 잘 학습 된 결과를 보여준다
(가중치의 초기화 값으로 인해 학습 때 마다 결과 다르게 나타 날 수 있음)
신경망 크기가 2048인 경우의 그래프 신경망 크기가 1024인 경우의 그래프
Loss의 차이가 크지 않기 때문에 그래프의 차이는 크게 나타나지 않는다.
신경망의 크기가 클 수록 복잡한 경우를 학습 할 수 있지만
필요 이상으로 신경망이 커지는 경우
학습 결과값의 차이가 크게 나타나지 않음.
(개인적인 생각.)
입력 데이터들 간에 값의 차이가 크면, 데이터 분포 그래프가 삐뚤어진
모양을 가지게 되어 학습이 잘 이루어지지 않을 수 있다.
일정 범위 안에 데이터가 분포 할 수 있도록 normalization 해주는 것이 좋다.
신경망의 크기가 클 수록 복잡한 경우를 학습 할 수 있지만 필요
이상으로 신경망이 커지는 경우 학습 결과값의 차이가 크게 나타나지 않음.
(개인적인 생각.)
여러 개의 입력 데이터를 사용 할 때 데이터를 일정 범위
안에 분포시키기 위해 normalization이 필요한 경우
가 있다는 것을 알게 되었다.
시가, 고가, 저가, 종가 데이터 이외에 주가에 영향을 주
는 기타 데이터를 추가 해주면 얼마나 더 정확한 결과 값
이 나올지 의문을 가지게 되었다.
머신러닝 프로젝트 - LSTM을 이용한 주가(KODEX200) 예측

More Related Content

What's hot

Excel lesson formulas and functions
Excel lesson formulas and functionsExcel lesson formulas and functions
Excel lesson formulas and functionswildman099
 
Excel Shortcuts & Formulas
Excel Shortcuts & FormulasExcel Shortcuts & Formulas
Excel Shortcuts & FormulasBikash Roy
 
Excel: Freezing Panes
Excel: Freezing PanesExcel: Freezing Panes
Excel: Freezing Panesmaclark14
 
DBMS Multiple Choice Questions
DBMS Multiple Choice QuestionsDBMS Multiple Choice Questions
DBMS Multiple Choice QuestionsShusil Baral
 
Introduction to database-Normalisation
Introduction to database-NormalisationIntroduction to database-Normalisation
Introduction to database-NormalisationAjit Nayak
 
Word practical questions for exercises
Word practical questions for exercisesWord practical questions for exercises
Word practical questions for exercisesHari993901
 
Dbms lifecycle. ..Database System Development Lifecycle
Dbms lifecycle. ..Database System  Development LifecycleDbms lifecycle. ..Database System  Development Lifecycle
Dbms lifecycle. ..Database System Development LifecycleNimrakhan89
 
develop and use complex spreadsheets .pdf
develop and use complex spreadsheets .pdfdevelop and use complex spreadsheets .pdf
develop and use complex spreadsheets .pdfNigussieBerhanu2
 
Ms excel excersices
Ms excel excersicesMs excel excersices
Ms excel excersicesHEENA PRUTHI
 
Relational keys
Relational keysRelational keys
Relational keysSana2020
 
Introduction to database design with Idef1X entity relationship (ER) diagrams
Introduction to database design with Idef1X entity relationship (ER) diagramsIntroduction to database design with Idef1X entity relationship (ER) diagrams
Introduction to database design with Idef1X entity relationship (ER) diagramsMark A
 
Systems Life Cycle
Systems Life CycleSystems Life Cycle
Systems Life Cycleshiplakeict
 
Program logic and design
Program logic and designProgram logic and design
Program logic and designChaffey College
 

What's hot (20)

Excel lesson formulas and functions
Excel lesson formulas and functionsExcel lesson formulas and functions
Excel lesson formulas and functions
 
Excel Shortcuts & Formulas
Excel Shortcuts & FormulasExcel Shortcuts & Formulas
Excel Shortcuts & Formulas
 
Ms access
Ms accessMs access
Ms access
 
Excel: Freezing Panes
Excel: Freezing PanesExcel: Freezing Panes
Excel: Freezing Panes
 
DBMS Multiple Choice Questions
DBMS Multiple Choice QuestionsDBMS Multiple Choice Questions
DBMS Multiple Choice Questions
 
Introduction to database-Normalisation
Introduction to database-NormalisationIntroduction to database-Normalisation
Introduction to database-Normalisation
 
Word practical questions for exercises
Word practical questions for exercisesWord practical questions for exercises
Word practical questions for exercises
 
Dbms lifecycle. ..Database System Development Lifecycle
Dbms lifecycle. ..Database System  Development LifecycleDbms lifecycle. ..Database System  Development Lifecycle
Dbms lifecycle. ..Database System Development Lifecycle
 
Flow chart
Flow chartFlow chart
Flow chart
 
develop and use complex spreadsheets .pdf
develop and use complex spreadsheets .pdfdevelop and use complex spreadsheets .pdf
develop and use complex spreadsheets .pdf
 
Ms excel excersices
Ms excel excersicesMs excel excersices
Ms excel excersices
 
'Spreadsheet'
'Spreadsheet''Spreadsheet'
'Spreadsheet'
 
Relational keys
Relational keysRelational keys
Relational keys
 
Microsoft Excel Seminar
Microsoft Excel SeminarMicrosoft Excel Seminar
Microsoft Excel Seminar
 
Introduction to database design with Idef1X entity relationship (ER) diagrams
Introduction to database design with Idef1X entity relationship (ER) diagramsIntroduction to database design with Idef1X entity relationship (ER) diagrams
Introduction to database design with Idef1X entity relationship (ER) diagrams
 
Charts in MS Excel
Charts in MS ExcelCharts in MS Excel
Charts in MS Excel
 
Excel text function
Excel text functionExcel text function
Excel text function
 
Systems Life Cycle
Systems Life CycleSystems Life Cycle
Systems Life Cycle
 
Program logic and design
Program logic and designProgram logic and design
Program logic and design
 
Beginning Python Programming
Beginning Python ProgrammingBeginning Python Programming
Beginning Python Programming
 

Similar to 머신러닝 프로젝트 - LSTM을 이용한 주가(KODEX200) 예측

Development of a forecasting model for expected profit for lineage users
Development of a forecasting model for expected profit for lineage usersDevelopment of a forecasting model for expected profit for lineage users
Development of a forecasting model for expected profit for lineage usersHWANGTAEYONG
 
R을 이용한 데이터 분석
R을 이용한 데이터 분석R을 이용한 데이터 분석
R을 이용한 데이터 분석simon park
 
R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1happychallenge
 
딥러닝으로 구현한 이상거래탐지시스템
딥러닝으로 구현한 이상거래탐지시스템딥러닝으로 구현한 이상거래탐지시스템
딥러닝으로 구현한 이상거래탐지시스템ChoDae
 
20140522 uc집계 정민철_발표자료_최종
20140522 uc집계 정민철_발표자료_최종20140522 uc집계 정민철_발표자료_최종
20140522 uc집계 정민철_발표자료_최종민철 정민철
 
2011 미니탭(Minitab) 교재(랜드코리아)
2011 미니탭(Minitab) 교재(랜드코리아)2011 미니탭(Minitab) 교재(랜드코리아)
2011 미니탭(Minitab) 교재(랜드코리아)Elvin Jung
 
Deep Learning from scratch 4장 : neural network learning
Deep Learning from scratch 4장 : neural network learningDeep Learning from scratch 4장 : neural network learning
Deep Learning from scratch 4장 : neural network learningJinSooKim80
 
2017 빅콘테스트
2017 빅콘테스트2017 빅콘테스트
2017 빅콘테스트Sanghyun Kim
 
HR Analytics - 퇴직가능성예측모델
HR Analytics - 퇴직가능성예측모델HR Analytics - 퇴직가능성예측모델
HR Analytics - 퇴직가능성예측모델Seong-Bok Lee
 
데이터분석과저널리즘 정제에서 분석까지
데이터분석과저널리즘 정제에서 분석까지데이터분석과저널리즘 정제에서 분석까지
데이터분석과저널리즘 정제에서 분석까지Gee Yeon Hyun
 
하둡 타입과 포맷
하둡 타입과 포맷하둡 타입과 포맷
하둡 타입과 포맷진호 박
 
Deep Learning with Python 2-1
Deep Learning with Python 2-1Deep Learning with Python 2-1
Deep Learning with Python 2-1PartPrime
 
딥러닝을 위한 Tensor flow(skt academy)
딥러닝을 위한 Tensor flow(skt academy)딥러닝을 위한 Tensor flow(skt academy)
딥러닝을 위한 Tensor flow(skt academy)Tae Young Lee
 
boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)SANG WON PARK
 
하둡 에코시스템 위에서 환상적인 테이크오프 - DSTS 2019
하둡 에코시스템 위에서 환상적인 테이크오프 - DSTS 2019 하둡 에코시스템 위에서 환상적인 테이크오프 - DSTS 2019
하둡 에코시스템 위에서 환상적인 테이크오프 - DSTS 2019 Kenneth Ceyer
 
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기Joeun Park
 
R 스터디 세번째
R 스터디 세번째R 스터디 세번째
R 스터디 세번째Jaeseok Park
 

Similar to 머신러닝 프로젝트 - LSTM을 이용한 주가(KODEX200) 예측 (20)

Development of a forecasting model for expected profit for lineage users
Development of a forecasting model for expected profit for lineage usersDevelopment of a forecasting model for expected profit for lineage users
Development of a forecasting model for expected profit for lineage users
 
R을 이용한 데이터 분석
R을 이용한 데이터 분석R을 이용한 데이터 분석
R을 이용한 데이터 분석
 
분석6기 4조
분석6기 4조분석6기 4조
분석6기 4조
 
R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1
 
딥러닝으로 구현한 이상거래탐지시스템
딥러닝으로 구현한 이상거래탐지시스템딥러닝으로 구현한 이상거래탐지시스템
딥러닝으로 구현한 이상거래탐지시스템
 
20140522 uc집계 정민철_발표자료_최종
20140522 uc집계 정민철_발표자료_최종20140522 uc집계 정민철_발표자료_최종
20140522 uc집계 정민철_발표자료_최종
 
2011 미니탭(Minitab) 교재(랜드코리아)
2011 미니탭(Minitab) 교재(랜드코리아)2011 미니탭(Minitab) 교재(랜드코리아)
2011 미니탭(Minitab) 교재(랜드코리아)
 
Deep Learning from scratch 4장 : neural network learning
Deep Learning from scratch 4장 : neural network learningDeep Learning from scratch 4장 : neural network learning
Deep Learning from scratch 4장 : neural network learning
 
2017 빅콘테스트
2017 빅콘테스트2017 빅콘테스트
2017 빅콘테스트
 
HR Analytics - 퇴직가능성예측모델
HR Analytics - 퇴직가능성예측모델HR Analytics - 퇴직가능성예측모델
HR Analytics - 퇴직가능성예측모델
 
데이터분석과저널리즘 정제에서 분석까지
데이터분석과저널리즘 정제에서 분석까지데이터분석과저널리즘 정제에서 분석까지
데이터분석과저널리즘 정제에서 분석까지
 
하둡 타입과 포맷
하둡 타입과 포맷하둡 타입과 포맷
하둡 타입과 포맷
 
Deep Learning with Python 2-1
Deep Learning with Python 2-1Deep Learning with Python 2-1
Deep Learning with Python 2-1
 
딥러닝을 위한 Tensor flow(skt academy)
딥러닝을 위한 Tensor flow(skt academy)딥러닝을 위한 Tensor flow(skt academy)
딥러닝을 위한 Tensor flow(skt academy)
 
boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)
 
하둡 에코시스템 위에서 환상적인 테이크오프 - DSTS 2019
하둡 에코시스템 위에서 환상적인 테이크오프 - DSTS 2019 하둡 에코시스템 위에서 환상적인 테이크오프 - DSTS 2019
하둡 에코시스템 위에서 환상적인 테이크오프 - DSTS 2019
 
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기
[PyCon KR 2018] 땀내를 줄이는 Data와 Feature 다루기
 
DSAC M2 #1
DSAC M2 #1DSAC M2 #1
DSAC M2 #1
 
캡스톤디자인
캡스톤디자인캡스톤디자인
캡스톤디자인
 
R 스터디 세번째
R 스터디 세번째R 스터디 세번째
R 스터디 세번째
 

머신러닝 프로젝트 - LSTM을 이용한 주가(KODEX200) 예측

  • 1. Copyright 2018. 박성민 all rights reserved. dueras@naver.com
  • 2.
  • 3.
  • 4.
  • 5. ….. ….. KODEX200의 시가, 고가, 저가, 종가를 위 부터 날짜순으로 정렬한 후 날짜가 있는 열과 항목이 있는 행을 제거 한 후 csv 파일로 저장.( 2015. 12. 07 ~ 2018. 05. 18 데이터 )
  • 6. 입력 데이터 reshape -> [598, 1, 4] 입력 데이터 <= 입력 데이터 전체에 대해 입력 데 이터 중 최댓값으로 나누기. 출력 데이터 reshape -> [598, 1] 출력 데이터 <= 출력 데이터 전체에 대해 출력 데 이터 중 최댓값으로 나누기. 학습률 = 0.005
  • 7. 신경망 구조 LSTM 사용 (2048). 입력 크기 = [1, 4]. 활성화 함수 = tanh 출력 1개의 값. 활성화 함수 = Linear Rmsprop & mse 사용
  • 8. 학습 실행시키는 함수 배치 크기 = 64, epoch = 50 예측할 입력 값을 받아 예측 후 결과 값 리턴 p_x = 예측에 사용할 데이터(reshape & 최댓값 나누기) 예측 실행 & 예측 값 리턴
  • 9. 실제 종가 데이터와 예측한 종가 데이터의 그래프 x축은 날짜. 1일 증가 할 때 마다 x축 1 증가. 실제 종가 그래프 예측 종가 그래프 x축은 날짜 증가. 1일 증가시 x축 1 증가. y축은 종가 데이터. 위의 그래프는 실제 종가에 대한 그래프, 아래의 그래프는 예측 값에 대한 종가 그래프
  • 10. Main 부분 Lstm 학습 실행 Data 읽기 & 처리 LSTM으로 5/21 종가 예측 5/21 실제 종가 = 31645 2015.12.07~2018.05.18 실제 종가 & 예측 종가 그래프
  • 11. 학습률 0.05로 100 epoch 학습시킨 결과 위의 그래프는 실제 종가 그래프 아래의 그래프는 학습된 모델에 대한 종가 그래프 Loss = 0.0030 5.21에 대한 예측 종가는 31789.6원이고 5.21의 실제 종가는 31645원 이다. 학습률을 변경하고 학습을 더 많이 시키면 더 좋은 결과가 나오게 할 수 있다.
  • 12. 학습 데이터에 대해 최댓값을 나눈 코드 학습 데이터에 대해 최댓값을 나누지 않은 코드 학습률 = 0.05로 100epoch 학습 학습률 = 0.05로 100epoch 학습
  • 13. 학습 데이터에 대해 최댓값을 나눈 결과 학습 데이터에 대해 최댓값을 나누지 않은 결과 학습 데이터에 대해 최댓값을 나눈 경우가 더 잘 학습 된 결과를 보여준다. 아래의 경우가 학습 데이터의 크기가 크기 때문에 loss가 더 크게 나타 날 수 있음. 결과 예측 값을 이용한 그래프 비교도 해 볼 필요가 있다.
  • 14. 학습 데이터에 대해 최댓값을 나눈 그래프 아래가 학습 된 그래프 학습 데이터에 대해 최댓값을 나누지 않은 코드 아래가 학습 된 그래프 학습 데이터에 대해 최댓값을 나눈 경우가 더 잘 학습 된 모양의 그래프를 보여준다
  • 15. 입력 데이터들 간에 값의 차이가 크면, 데이터 분포 그래프가 삐뚤어진 모양을 가지게 되어 학습이 잘 이루어지지 않을 수 있다. 일정 범위 안에 데이터가 분포 할 수 있도록 normalization 해주는 것이 좋다. 최댓값을 나누는 것 뿐만 아니라 standardization(z-표준화)과 같은 다양한 normalization 방법이 존재한다.
  • 16. LSTM신경망 크기가 2048인 코드 LSTM신경망 크기가 1024인 코드
  • 17. 신경망 크기가 2048인 경우의 결과 신경망 크기가 1024인 경우의 결과 신경망의 크기가 큰 경우가 평균적으로 더 잘 학습 된 결과를 보여준다 (가중치의 초기화 값으로 인해 학습 때 마다 결과 다르게 나타 날 수 있음)
  • 18. 신경망 크기가 2048인 경우의 그래프 신경망 크기가 1024인 경우의 그래프 Loss의 차이가 크지 않기 때문에 그래프의 차이는 크게 나타나지 않는다.
  • 19. 신경망의 크기가 클 수록 복잡한 경우를 학습 할 수 있지만 필요 이상으로 신경망이 커지는 경우 학습 결과값의 차이가 크게 나타나지 않음. (개인적인 생각.)
  • 20. 입력 데이터들 간에 값의 차이가 크면, 데이터 분포 그래프가 삐뚤어진 모양을 가지게 되어 학습이 잘 이루어지지 않을 수 있다. 일정 범위 안에 데이터가 분포 할 수 있도록 normalization 해주는 것이 좋다. 신경망의 크기가 클 수록 복잡한 경우를 학습 할 수 있지만 필요 이상으로 신경망이 커지는 경우 학습 결과값의 차이가 크게 나타나지 않음. (개인적인 생각.)
  • 21. 여러 개의 입력 데이터를 사용 할 때 데이터를 일정 범위 안에 분포시키기 위해 normalization이 필요한 경우 가 있다는 것을 알게 되었다. 시가, 고가, 저가, 종가 데이터 이외에 주가에 영향을 주 는 기타 데이터를 추가 해주면 얼마나 더 정확한 결과 값 이 나올지 의문을 가지게 되었다.