前提・実現したいこと
https://qiita.com/tsunaki/items/a5f3f975a31dc45fc9c9
を参考に株価予想をしようとしています。
http://k-db.com/
のサービスが終了しているので、自分で作成したcsvデータを読み込んでいるのですが、サンプルコード通りにpandasで読み込んでas_matrixを使ってnumpyに切り替えているつもりなのですが、エラーが出ます。
データのロードのところくらいしか変更していないのですが、なぜエラーになるのでしょうか。また、どのように修正したらよいのでしょうか。
発生している問題・エラーメッセージ
AttributeError: 'numpy.float64' object has no attribute 'as_matrix'
該当のソースコード
全部載せると長いのですが一応全部載せます。
python
# -*- coding: utf-8 -*- import numpy import pandas import matplotlib.pyplot as plt from sklearn import preprocessing from keras.models import Sequential from keras.layers.core import Dense, Activation from keras.layers.recurrent import LSTM class Prediction : def __init__(self): self.length_of_sequences = 10 self.in_out_neurons = 1 self.hidden_neurons = 300 def load_data(self, data, n_prev=10): X, Y = [], [] for i in range(len(data) - n_prev): X.append(data.iloc[i:(i+n_prev)].as_matrix()) Y.append(data.iloc[i+n_prev].as_matrix()) retX = numpy.array(X) retY = numpy.array(Y) return retX, retY def create_model(self) : model = Sequential() model.add(LSTM(self.hidden_neurons, \ batch_input_shape=(None, self.length_of_sequences, self.in_out_neurons), \ return_sequences=False)) model.add(Dense(self.in_out_neurons)) model.add(Activation("linear")) model.compile(loss="mape", optimizer="adam") return model def train(self, X_train, y_train) : model = self.create_model() # 学習 model.fit(X_train, y_train, batch_size=10, epochs=100) return model batch_xs=pandas.read_csv('batch_xs.csv',header=None) test_xs=pandas.read_csv('test_xs.csv',header=None) x_train, y_train = prediction.load_data(batch_xs.iloc[:,0], prediction.length_of_sequences) x_test, y_test = prediction.load_data(test_xs.iloc[:,0], prediction.length_of_sequences) if __name__ == "__main__": prediction = Prediction() model = prediction.train(x_train, y_train) predicted = model.predict(x_test) result = pandas.DataFrame(predicted) result.columns = ['predict'] result['actual'] = y_test result.plot() plt.show()
まだ回答がついていません
会員登録して回答してみよう