일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Pytorch Lecture
- 모두의 딥러닝 예제
- C언어 공부
- MFC 프로그래밍
- 딥러닝
- 가우시안 필터링
- 팀프로젝트
- 케라스 정리
- c++공부
- 딥러닝 공부
- 김성훈 교수님 PyTorch
- 해리스 코너 검출
- pytorch
- c언어
- 파이토치
- object detection
- matlab 영상처리
- tensorflow 예제
- 모두의 딥러닝
- c++
- 컴퓨터 비전
- 파이토치 강의 정리
- 골빈해커
- 딥러닝 스터디
- c언어 정리
- 미디언 필터링
- 파이토치 김성훈 교수님 강의 정리
- TensorFlow
- pytorch zero to all
- 영상처리
- Today
- Total
ComputerVision Jack
[스터디 - RNN 예제] 본문
[RNN Dataset]
이번 스터디에선 Amazon 주식 dataset을 사용하여 내일의 주식 가격을 예측해보는 시간을 보냈습니다.
csv 파일을 보시면 시계열로 데이터가 나열되어 있음을 확인할 수 있습니다.
우선 판다스의 데이터 전처리 과정을 통해서 데이터를 수정하겠습니다.
우선 date는 크게 영향을 줄거 같지 않아 제거한 후, Close와 Adj Close는 비슷하여 하나로 통합 후, Y라는 변수로 추가하였습니다.
<코드>
def MinMaxScalar(data):
numerator = data - np.min(data, 0)
denominator = np.max(data, 0) - np.min(data, 0)
return numerator / (denominator + 1e-7)
#데이터의 값을 MinMaxScalar() 함수를 통하여 비슷한 값으로 맞춰줍니다.
seq_length = 28
data_dim = 5
hidden_dim = 20
output_dim = 1
learning_rate = 0.01
iterations = 700
#하이퍼 파라미터 설정
def build_dataset(time_series, seq_length):
dataX = []
dataY = []
for i in range(0, len(time_series) - seq_length):
_x = time_series[i:i + seq_length, :]
_y = time_series[i + seq_length, [-1]] # Next close price
print(_x, "->", _y)
dataX.append(_x)
dataY.append(_y)
return np.array(dataX), np.array(dataY)
#추출할 사이즈 만큼 dataX와 dataY를 수정합니다.
trainX, trainY = build_dataset(train_set, seq_length)
testX, testY = build_dataset(test_set, seq_length)
#train set과 test set을 구분합니다.
X = tf.placeholder(tf.float32, [None, seq_length, data_dim])
Y = tf.placeholder(tf.float32, [None, 1])
cell = tf.contrib.rnn.BasicLSTMCell(
num_units=hidden_dim, state_is_tuple=True, activation=tf.nn.softsign)
outputs, _states = tf.nn.dynamic_rnn(cell, X, dtype=tf.float32)
Y_pred = tf.contrib.layers.fully_connected(
outputs[:, -1], output_dim, activation_fn=tf.identity)
#모두의 딥러닝에서 학습한 방법처럼 RNN을 구현합니다.
loss = tf.reduce_sum(tf.square(Y_pred - Y))
optimizer = tf.train.AdamOptimizer(learning_rate)
train = optimizer.minimize(loss)
#cost 함수와 optimizer 최적화를 사용합니다.
import matplotlib.pyplot as plt
%matplotlib inline
plt.figure(figsize = (10, 10))
plt.plot(testY , label = 'Y')
plt.plot(test_predict, label = 'Pre')
plt.xlabel("Time Period")
plt.ylabel("Stock Price")
plt.show()
#위의 학습한 결과를 matplotlib.pyplot을 이용하여 시각화 해보겠습니다.
recent_data = np.array([data[len(data) - seq_length : ]])
print("recent_Data.shape", recent_data.shape)
print("recent_data :", recent_data)
#test set의 최근 데이터를 이용하여 학습된 모델에 입력으로 넣어줍니다.
def reverese_min_max_scaling(org_x, x):
org_x_np = np.asarray(org_x)
x_np = np.asarray(x)
return (x_np * (org_x_np.max() - org_x_np.min() + 1e-7)) + org_x_np.min()
#다시 min_max_scalar_reverser 과정을 통하여 역으로 그 값을 변환합니다.
'DeepLearning Study > 모두의 딥러닝 예제' 카테고리의 다른 글
[스터디 CNN 예제] (0) | 2020.05.12 |
---|---|
[스터디 - SoftMax 예제] (0) | 2020.05.07 |
[스터디 - Logistic Regression 예제] (0) | 2020.05.06 |
[스터디 - Linear Regression 예제] (0) | 2020.05.06 |