LSTM
数据准备
数据缩放
normalizaiton——将数据放缩到0~1的区间
standardization——将数据放缩为均值0,标准差1
准备变长序列
使用keras中的pad_sequance()函数,可以在序列开头或结尾填充给定数据,默认填充0.0
[1,2,3,4],
[1,2,3],
[1]
变为
[1 2 3 4]
[1 2 3 0]
[1 0 0 0]
序列裁剪
可以从序列首裁剪也可以从序列尾部,默认truncating=‘pre’
定义模型
(1)主要使用Sequential()类下的LSTM()和Dense(),如:
layers = [LSTM(2),Dense(1)]
model = Sequential(layers)
维度转换,如将2D转为3D:
data = data.reshape((data.shape[0], data.shape[1], 1))
定义优化算法和损失函数
algorithm = SGD(lr=0.1, momentum=0.3)
model.compile(optimizer=algorithm, loss= mse )
或者
model.compile(optimizer= sgd , loss= mean_squared_error , metrics=[ accuracy ])
拟合模型
history = model.fit(X, y, batch_size=10, epochs=100, verbose=0)
评估模型
使用测试评估集在模型上进行评估:
loss, accuracy = model.evaluate(X, y, verbose=0)
模型预测
使用predicte()函数
predictions = model.predict(X, verbose=0)