前提・実現したいこと
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
1# -*- coding: utf-8 -*- 2 3import numpy 4import pandas 5import matplotlib.pyplot as plt 6 7from sklearn import preprocessing 8from keras.models import Sequential 9from keras.layers.core import Dense, Activation 10from keras.layers.recurrent import LSTM 11 12class Prediction : 13 14 def __init__(self): 15 self.length_of_sequences = 10 16 self.in_out_neurons = 1 17 self.hidden_neurons = 300 18 19 def load_data(self, data, n_prev=10): 20 X, Y = [], [] 21 for i in range(len(data) - n_prev): 22 X.append(data.iloc[i:(i+n_prev)].as_matrix()) 23 Y.append(data.iloc[i+n_prev].as_matrix()) 24 retX = numpy.array(X) 25 retY = numpy.array(Y) 26 return retX, retY 27 28 def create_model(self) : 29 model = Sequential() 30 model.add(LSTM(self.hidden_neurons, \ 31 batch_input_shape=(None, self.length_of_sequences, self.in_out_neurons), \ 32 return_sequences=False)) 33 model.add(Dense(self.in_out_neurons)) 34 model.add(Activation("linear")) 35 model.compile(loss="mape", optimizer="adam") 36 return model 37 38 def train(self, X_train, y_train) : 39 model = self.create_model() 40 # 学習 41 model.fit(X_train, y_train, batch_size=10, epochs=100) 42 return model 43 44batch_xs=pandas.read_csv('batch_xs.csv',header=None) 45test_xs=pandas.read_csv('test_xs.csv',header=None) 46 47x_train, y_train = prediction.load_data(batch_xs.iloc[:,0], prediction.length_of_sequences) 48x_test, y_test = prediction.load_data(test_xs.iloc[:,0], prediction.length_of_sequences) 49 50 51if __name__ == "__main__": 52 53 prediction = Prediction() 54 model = prediction.train(x_train, y_train) 55 56 predicted = model.predict(x_test) 57 result = pandas.DataFrame(predicted) 58 result.columns = ['predict'] 59 result['actual'] = y_test 60 result.plot() 61 plt.show() 62
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/13 10:50