Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 输入5行数据,在Keras LSTM中分类(预测)第6行_Python_Keras_Deep Learning_Recurrent Neural Network - Fatal编程技术网

Python 输入5行数据,在Keras LSTM中分类(预测)第6行

Python 输入5行数据,在Keras LSTM中分类(预测)第6行,python,keras,deep-learning,recurrent-neural-network,Python,Keras,Deep Learning,Recurrent Neural Network,我想将数据集的5行输入到LSTM,并对Y的第6行进行分类。我通过重塑数据进行了输入: X = X.reshape(6000,5,5) 但我如何预测第六排的Y?Y应该是什么形状?我在谷歌上读了很多书,搜索了很多东西,但老实说,我无法理解代码,因为他们在使用数据之前对数据进行了自定义 我的完整代码: import pandas as pd from sklearn.preprocessing import LabelEncoder,MinMaxScaler from keras.layers im

我想将数据集的5行输入到
LSTM
,并对Y的第6行进行分类。我通过重塑数据进行了输入:

X = X.reshape(6000,5,5)
但我如何预测第六排的Y?Y应该是什么形状?我在谷歌上读了很多书,搜索了很多东西,但老实说,我无法理解代码,因为他们在使用数据之前对数据进行了自定义

我的完整代码:

import pandas as pd
from sklearn.preprocessing import LabelEncoder,MinMaxScaler
from keras.layers import Dense,RNN,LSTM,Activation,Dropout,SimpleRNN,Bidirectional
from keras.optimizers import RMSprop,Adam
from keras.wrappers.scikit_learn import KerasClassifier
from keras.models import Sequential
from sklearn.model_selection import train_test_split
import numpy as np

df = pd.read_csv('./EURUSD_DATAFRAME.csv')
BinEncoder = LabelEncoder()
scalar = MinMaxScaler()

df['pos'] = df['pos'].astype('int')
dat = df.values




X = dat[0:30000,0:5]
Y = dat[0:6000,5]


X[:,4]= BinEncoder.fit_transform(X[:,4])
X[:,0:4] = scalar.fit_transform(X[:,0:4])
X[:,4] = X[:,4].astype('int')
Y = BinEncoder.fit_transform(Y)

X = X.reshape(6000,5,5)
#MODEL 3
 model = Sequential()
 model.add(LSTM(1024,input_shape=(5,5),return_sequences=True,kernel_initializer='normal'))
 #model.add(Activation('tanh'))
 model.add(Dropout(0.2))
 model.add(LSTM(512))
 model.add(Dropout(0.3))
 model.add(Dense(1))
 model.add(Activation('sigmoid'))
 model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['accuracy'])
 model.fit(X,Y,batch_size=100,epochs=10,validation_split=0.2)
 p = model.predict(X)
# print(classifier.score(X,Y))
# ----

我正在分类编码为1或0的Y

这很简单。使用内置的keras函数:这将把它变成一个热表示,如[0,1]和[1,0]

 from keras.utils import to_categorical

 y = to_categorical(y, num_classes=2)

并将最后一个密集层中的单位数更改为num_类,在您的示例中为2。我认为你应该用softmax来分类而不是sigmoid。此外,我建议您在lstm层或更高级的LeakyRelu层之间使用“relu”激活,这非常简单。使用内置的keras函数:这将把它变成一个热表示,如[0,1]和[1,0]

 from keras.utils import to_categorical

 y = to_categorical(y, num_classes=2)

并将最后一个密集层中的单位数更改为num_类,在您的示例中为2。我认为你应该用softmax来分类而不是sigmoid。此外,我建议您在lstm层或更高级的LeakyRelu层之间使用“relu”激活。对不起,我真的不明白您的意思是什么?您的输入形状是(6000,5,5),输出形状是(6000,2)?那么你说的第六排是什么意思呢?

对不起,我真的不明白你说的这是什么意思?您的输入形状是(6000,5,5),输出形状是(6000,2)?第六排是什么意思?

谢谢,我的一个问题解决了。我如何输入5行作为输入,并预测第6行?谢谢,我的一个问题解决了。我如何输入5行作为输入,并预测第6行?分类器获得5行数据作为输入,然后预测(分类)第6行标签。我想我知道了,您输入了5个特征、行,并期望模型预测第6行的标签。在这种情况下,你不需要做任何事情,因为nn会找到你的输入x和标签y之间的映射,因为这就是它们的制作原因。我对此非常困惑,我如何从前面的5行中预测第6行标签!!!非常感谢你!!分类器得到5行数据作为输入,然后它预测(分类)第6行标签。我想我得到了,你输入了5个特征,行,并期望模型预测第6行标签。在这种情况下,你不需要做任何事情,因为nn会找到你的输入x和标签y之间的映射,因为这就是它们的制作原因。我对此非常困惑,我如何从前面的5行中预测第6行标签!!!非常感谢你!!