それをディッシュ!!1つのステップで、Tensorflow戦闘2!!LSTMで(コードとデータの完全なセットを持つ)株価予測

 キーワード:tensorflow2、LSTM、時系列予測の株式

2.0は、いくつかの時間のためにリリースされているTensorflow、新しいAPIのさまざまな使いやすい確かで、見つけることができる公式文書に加えて、研究材料は多いが、ほとんどは、ブログやコードFOUNDの多くを見つけるためにあなたの定量分析の一部を与えていませんtensorflowの面で、我々はまだバージョン1.xと2.xを使用しているしばらくの間、その書き込みに、上のコードを見つけ、お互いを奨励していません。

インポートのNPとしてnumpyの
 インポートPLTのようmatplotlib.pyplot
 インポートのPdとしてパンダ
 インポート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)
60時間ステップ及び1つの出力のデータ構造を作成 
X_train = []
y_train = []
 のための I における範囲(60、2035 )。
    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 =真、 input_shape =(X_train.shape [1]、1 )))
regressor.add(tf.keras.layers.Dropout( 0.2 ))
第LSTM層と、いくつかのドロップアウト正則化の追加 
regressor.addを(tf.keras.layers.LSTM(単位= 50、return_sequences = TRUE))
regressor.add(tf.keras.layers.Dropout( 0.2 ))
第LSTM層と、いくつかのドロップアウト正則化の追加 
regressor.addを(tf.keras.layers.LSTM(単位= 50、return_sequences = TRUE))
regressor.add(tf.keras.layers.Dropout( 0.2 ))
第LSTM層と、いくつかのドロップアウト正則化の追加 
regressor.addを(tf.keras.layers.LSTM(単位= 50 ))
regressor.add(tf.keras.layers.Dropout( 0.2 ))
出力層の追加 
regressor.addを(tf.keras.layers.Dense(単位= 1 ))
RNNのコンパイル 
regressor.compileを(オプティマイザ= ' アダム'、損失= ' mean_squared_error ' トレーニングセットにRNNをフィッティング 
regressor.fit(X_train、y_train、エポック= 100、BATCH_SIZE = 32 

パート3 -予測を行うと結果を可視化2017の実際の株価の取得 
dataset_test = pd.read_csv(tatatest.csvを
real_stock_price = dataset_test.iloc [:, 1:2 ] .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