본문 바로가기

DeepLearning

(10)
딥러닝으로 걷는 시계열 예측 [CH11] KOSPI200 데이터를 이용한 삼성전자 주가 예측 실제 주가를 RNN으로 구성해보자 1. 주가 데이터 모집 삼성전자의 주식 가격과 KOSPI200의 가격을 이용해, 내일의 삼성전자 주가를 예측하는 모델을 만들어 보자. 성능 비교하기 - 삼성전자 한 가지만을 가지고 DNN, LSTM으로 구성한 모델과 입력 데이터가 두 가지 (삼성전자, KOSPI200 지수)이므로 두 가지 데이터를 단순 DNN, LSTM으로 구성한 모델과 비교 - 앙상블(다:1)로 구성해서 비교 데이터는 삼성전자 주가 데이터와 KOSPI20지수를 csv파일로 다운로드 받는다 2. 데이터 저장 데이터를 효과적으로 사용하기 위해 csv 파일을 불러와서 numpy파일로 저장하여 작업한다 3. panda를 numpy로 변경 후 저장 pandas 데이터를 numpy로 바꾸는 방법은 pandas 데..
딥러닝으로 걷는 시계열 예측 [CH10] RNN 모델 정리 RNN 모델에 split_xy로 자른 데이터셋을 적용하여 모델의 인풋과 아웃풋의 shape별로 정리해보자! shape만 맞다면 어떤 모델(Dense모델 또는 RNN모델)이든지 바뀌가며 사용할 수 있다는 점! 1. MLP DNN 모델 (다:1) RNN을 DNN으로 변환이 가능하다는 것을 알 수 있다. https://github.com/yenyen31/Artificial-Intelligence-in-Finance/blob/main/CH10/10_1.py GitHub - yenyen31/Artificial-Intelligence-in-Finance: Artificial-Intelligence-in-Finance Artificial-Intelligence-in-Finance. Contribute to yenye..
딥러닝으로 걷는 시계열 예측 [CH08] 케라스 모델의 파라미터들과 기타 기법들 1. Verbose : model.fit과 predict에서 사용하는 파라미터 CH07에서 사용한 LSTM 소스에 model.fit에 verbose를 추가하는 소스로 변경하면 터미널 창에서 결과를 확인하면 훈련하는 모습이 보이지 않고 바로 결과가 나타난다. verbose=0으로 설정하면 훈련하는 모습이 나타나지 않는다. 시간을 단축할 수 있는 장점이 있다. verbose=1이면 진행 상황들을 보여주고, 훈련되고 있는 모습 2가지를 화면에 보여준다. 2. EarlyStoppig 모델 학습을 시키면 오히려 성능이 떨어지는 과적합 단계로 빠지게 된다. 케라스에서는 어느 정도의 결괏값이 나오게 되면 멈추게 하는 기능이 제공된다. 이 기능은 fit에서 사용한다. EarlyStopping을 import하고 earl..
딥러닝으로 걷는 시계열 예측 [CH07] RNN 1) RNN이란? RAN(순환신경망, Recurent Neural Network)은 주로 시계열 문적, 자연어 처리 등 순서가 있는 데이터에 사용하면 좋은 결과가 있는 모델이다. 실제로 주식, 파생상 품, 기상, 전력량 등을 계산할 때 매우 유효하고 캐글이나 해커톤 등의 대회에서 시계 열 문제를 다룰 때 많이 사용된다. https://www.youtube.com/watch?v=PahF2hZM6cs&ab_channel=MinsukHeo%ED%97%88%EB%AF%BC%EC%84%9D 영상에 자세하게 나와있어서 링크 첨부! 2) SimpleRNN 가장 기본적인 RNN x의 행의 수 = y의 벡터 크기 1~5까지의 인풋으로 6이 나오고, 2~6까지의 인풋으로 7이 아웃풋, 마지막 3~7까지의 인풋으로 8이 나..
딥러닝으로 걷는 시계열 예측 [CH06] 회귀 모델 총정리 앙상블에서 나올 수 있는 4가지 구조로 진행. 다:1, 다:다, 1:다 형태로 모델을 만들 것이다. 모델들끼리 앙상블되는 구조들을 주의해서 확인하자! 전체 데이터들은 train과 test로 분리하고, 각 데이터의 train은 각 7개, test는 각 3개, predict용 데이터는 각 3개를 이용한다. (train_test_split을 이용한 데이터 자르는 작업, 전처리 작업은 생략. test, validation은 test셋으로 함께 진행) 1. Sequential 모델 1) Sequential 1:1 모델 코드 내용은 깃허브 주석 참고! 🚀 트러블 슈팅 🚀 30번 라인에서 x_predict = np.array([11, 12, 13]) TypeError: array() takes from 1 to 2 ..
딥러닝으로 걷는 시계열 예측 [CH05] 앙상블 https://codingsmu.tistory.com/151 1. concatenate 2개 이상의 모델을 합치는 방법 단순하게 2개의 모델을 엮어주는 역할을 한다. ex. 인풋이 (10,3)은 모델1과 인풋이 (10,3)인 모델2를 엮을 경우 concatenate 시점에서는 그냥 단일 모델처럼 (10,6)의 형태로 엮인다. ✔️ 합쳐지는 레이어 부분에서 노드들이 단순하게 더하기 형태로 합쳐진다. concatenate는 두군데 존재한다. keras.layers와 keras.layers.merge 이 두 곳중에 아무 곳에서나 import 해주면 됨 concatenate() 함수에 매개변수로 상단 2개의 모델 최하위 레이어의 이름을 리스트 방식으로 입력한다. ✔️ concatenate이 아닌, Concate..
딥러닝으로 걷는 시계열 예측 [CH04] 회귀 모델의 판별식 #1. 회구 모델의 판별식 RMSE(평균 제곱근 오차)는 회귀 분석을 평가할 때 가장 많이 쓰는 지표 중 하나이다. RMSE는 원래 데이터에서 평균을 뺀 값을 제곱하여 모두 더한 뒤 전체 개수로 나눈 값에 루트를 씌운 것이다. R2(결정계수)는 회귀 분석에서 가장 많이 사용하는 지표이다. 대략 0~1 사이의 수치가 값으로 표현된다. RMSE는 낮을수록 좋은 지표이고, R2는 높을수록 좋은 지표이다. R2는 사이킷 런에서 함수 형태로 제공해주기 때문에 사이킷 런을 import해서 그대로 사용하면 된다. R2 구하는 코드 from sklearn.metrics import r2_score r2_y_predict = r2_score(y_test, y_predict) print("R2 : ", r2_y_predi..
딥러닝으로 걷는 시계열 예측 [CH03] 회귀 모델 acc는 1이 나올 수 없다. 회귀 모델에서는 쳥가 지표가 acc가 아니다. 머신에게 값을 주었을 때 훈련 결과를 통한 예측값은 소수 몇 자리까지 이어진다. acc = 1이라는 결과는 acc = 0.99999... 의 결과를 1로 표기한 것이다. 2차 함수같은 모양을 띈 모델과 데이터는 미분을 통해 1차 함수로 바꿔줘야 한다. 회귀 분석은 선형이기 때문에 딱 맞아 떨어지는 값이 아니다. 따라서 결괏값과 예측 분석을 하는 함수를 다른 것으로 쓰게 된다. CH01의 기존 소스 컴파일 부분을 아래와 같이 변경해주면 model.compile(loss='mse', optimizer='adam', metrics=['mse']) 머신이 훈련할 때 보여주는 부분이 acc 대신 mse로 표현하겠다는 뜻이다. https:..