그것을 요리! ! 한 단계에서, Tensorflow 전투 2! ! LSTM에서 (전체 코드 세트 및 데이터) 주식 예측

 키워드 : tensorflow2, LSTM, 시계열 예측 재고

2.0이 얼마 동안 릴리스되었습니다 Tensorflow, 찾을 수있는 공식 문서에 추가 학습 자료가 많습니다 새로운 API의 다양한 사용하기 쉬운 사실이지만, 대부분의 블로그 및 코드 FOUND 많이 찾는 당신에게 정량 분석의 일부를 포기하지 않았다 tensorflow 측면에서 우리는 여전히 버전 1.x를 사용하고 2.x는 그렇게 잠시 동안 쓰기에,에 코드를 발견하지 않은, 서로를 격려한다.

수입 순이익 등 NumPy와
 수입 PLT의 같은 matplotlib.pyplot
 수입 부분 방전 등의 팬더
 수입 TF 같은 tensorflow
 # tensorflow.keras에서 레이어를 가져올 
에서 sklearn.preprocessing 오기 MinMaxScaler 

# 데이터 전처리 부 - 1 
# 라이브러리 오기 
dataset_train = pd.read_csv ( ' NSE-을 TATAGLOBAL.csv ' ) 
training_set = dataset_train.iloc [:, 1 : 2 ] .values
 #의 인쇄 (dataset_train.head ()) 
#의 피쳐 스케일링 된 
SC = MinMaxScaler은 (feature_range = (0, 1  ))
training_set_scaled= sc.fit_transform (training_set)
 # 1 (60)과 시간 단계 1 개 출력 데이터 구조를 생성 
X_train를 = [] 
y_train = []
 에 대한 I 에서 (2035 년 60 범위 ) 
    X_train.append (training_set_scaled [I - 60 : I 0] ) 
    y_train.append (training_set_scaled [I 0]) 
X_train, y_train = np.array (X_train) np.array (y_train)
 # 재편 
X_train = np.reshape (X_train (X_train.shape [0] X_train.shape [1], 1 )) 

#의 파트 2 - RNN 구축 
# 초기화하는 RNN
회귀 =tf.keras.Sequential ()
 # 제 LSTM 층 일부 드롭 아웃 정규화 추가 
regressor.add을 (tf.keras.layers.LSTM (단위 = 50 return_sequences = TRUE, input_shape = (X_train.shape [1], 1 )) ) 
(tf.keras.layers.Dropout (regressor.add 0.2 ))
 #을 제 LSTM 층 일부 드롭 아웃 정규화 추가 
(= tf.keras.layers.LSTM (단위 = 50 return_sequences regressor.add를 TRUE)) 
regressor.add (tf.keras.layers.Dropout ( 0.2 ))
 # 제 LSTM 층 일부 드롭 아웃 정규화 추가 
regressor.add를 (= 50 = return_sequences tf.keras.layers.LSTM (단위 는 true)) 
regressor.add (tf.keras .layers.Dropout ( 0.2))
 # 네번째 LSTM 층 일부 드롭 아웃 정규화 추가 
regressor.add을 (tf.keras.layers.LSTM (단위 = 50 )) 
(tf.keras.layers.Dropout (regressor.add 0.2 ))
 #를 출력 레이어 추가 
회귀를 .add (tf.keras.layers.Dense (단위 = 1 ))
 # RNN의 컴파일 
regressor.compile (최적화 = ' 아담 ' , 손실 = ' mean_squared_error ' )
 # 트레이닝 세트에 RNN 피팅 
regressor.fit (X_train을 y_train, 에포크는 = 100, 32 = BATCH_SIZE ) 

#의 부 - 3의 결과를 예측을하고 시각화 
# 2017의 실제 주가 얻기 
dataset_test = pd.read_csv ( ' tatatest.csv ' ) 
real_stock_price = dataset_test.iloc [2 :, 1 .values] 

# 2017의 예측 주가 얻기 
dataset_total = pd.concat을 ((dataset_train를 [ ' 열기 ' ] dataset_test [ ' 오픈 ' ), 축 = 0) 
입력 = dataset_total [LEN (dataset_total) - LEN (dataset_test) - 60 :]. 값 
입력 = inputs.reshape (-1, 1 ) 
입력 = sc.transform (입력) 
X_test = []
위한 I  범위 (60, 76 :) 
    X_test.append ([I 입력 - 60 : I 0]) 
X_test = np.array (X_test) 
X_test = np.reshape (X_test (X_test.shape [0] X_test .shape [1], 1 )) 
predicted_stock_price = regressor.predict (X_test) 
predicted_stock_price = sc.inverse_transform (predicted_stock_price) 

# 결과의 시각화 
plt.plot을 (real_stock_price, 색 = ' 레드 ' , 라벨 = ' 리얼 TATA 주가 ' ) 
plt.plot (predicted_stock_price, 컬러 = ' 블루' 레이블 = ' 예측 TAT 주가 ' ) 
plt.title ( ' TATA 주가 예측 ' ) 
plt.xlabel ( ' 시간 ' ) 
plt.ylabel ( ' TATA 주가 ' ) 
plt.legend () 
plt.show ()

프로젝트 비교 데모,하지만 당신은 기본 프레임 워크를 달성 할 수있는, 그리고 다른 관련 글에서 배운, 우리는 학습의 토론을 환영합니다

사용 세트 타타 데이터는 정말 오랜 시간을 찾고, 울고, (데이터 세트 인덱스가없는 많은 코드를 읽기) 매우 찾기 어렵다.

제발 이동 https://www.cnblogs.com/xingnie/p/12219474.html

추천

출처www.cnblogs.com/xingnie/p/12219611.html