본문 바로가기

BLOG/딥러닝

LSTM을 이용한 시계열 데이터 분석(실습)

【5】RNN 기본 다지기 / 실습으로 익히는 순환신경망

LSTM을 이용한 시계열 데이터 분석 (실습)

 

이전에 실습했던 내용은 SimpleRNN을 사용했고 이번에는 LSTM을 이용한 시계열 데이터 처리를 배워보자

 

데이터셋은 SimpleRNN 실습 때 사용했던 것을 재사용한다.

 

data = np.sin( np.pi * np.arange(0, 100)* 2.025 ) + np.random.random(100)

x = np.array([data[i+j] for i in range(len(data)-10) for j in range(10)])

x_train = x[:700].reshape(-1,10,1)

x_test = x[700:].reshape(-1,10,1)

y = np.array([data[i+10] for i in range(len(data)-10)])

y_train = y[:70].reshape(-1,1)

y_test = y[70:].reshape(-1,1)

 

데이터셋 설명은 따로 하지 않고 바로 모델을 보자

 

model = models.Sequential()

model.add(layers.LSTM(8,input_shape = (10,1)))

model.add(layers.Dense(1))

 

 

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

model.fit(x_train,y_train,epochs=500,verbose=0)

 

모델을 보게 되면 이전 모델을 가져온 걸로 볼 수 있다.

하지만 SimpleRNN이 아닌 LSTM으로 설정되어 있다.

이러면 LSTM 모델이 된다.

 

그래프 그리는 것은 생략한다.

이는 사용한 데이터가 많은 양의 데이터가 아니기에 그래프를 그리더라도 크게 차이를 느낄 수 없다.

 

 

 

 


작성자 김강빈 kkb08190819@gmail.com / 이원재 ondslee0808@gmail.com