キーワード: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()
プロジェクトの比較デモが、これであなたは基本的なフレームワークを達成することができ、私は他の関連エッセイで学んできた、私たちは学習の議論を歓迎します
使用セットタタデータは本当に長い時間を探して、泣いて、(データ・セット・インデックスが存在しないコードをたくさん読んで)見つけることは非常に困難です。