Python时间序列LSTM预测系列教程(1)-单变量

单变量LSTM预测模型(1)


教程原文连接


香皂销售预测


数据下载


https://datamarket.com/data/set/22r0/sales-of-shampoo-over-a-three-year-period

数据处理


1、删除数据中最下面的说明行
2、最好修改第一列(时间信息)的格式为 yyyy/mm/dd,否则按照默认格式,在 datetime.strptime() 的时候容易出错

源码解析


from pandas import read_csv
from pandas import datetime 
from sklearn.metrics import mean_squared_error
from math import sqrt
from matplotlib import pyplot
 
#load data
def parser(x):
    return datetime.strptime(x, '%Y/%m/%d')
series = read_csv('data_set/shampoo-sales.csv', header=0, parse_dates=[0], index_col=0, squeeze=True, date_parser=parser)
 
#分成训练和测试集合   
X = series.values
train, test = X[0:-12], X[-12:]
 
'''
步进验证模型:
其实相当于已经用train训练好了模型
之后每一次添加一个测试数据进来
1、训练模型
2、预测一次,并保存预测结构,用于之后的验证
3、加入的测试数据作为下一次迭代的训练数据
'''
history = [x for x in train]
predictions = list()
for i in range(len(test)):
    predictions.append(history[-1])#history[-1],就是执行预测
    history.append(test[i])#将新的测试数据加入模型
   
#预测效果评估
rmse = sqrt(mean_squared_error(test, predictions))
print('RMSE:%.3f'%rmse)
 
#画出预测+观测值
pyplot.plot(test)
pyplot.plot(predictions)
pyplot.show()






你可能感兴趣的:(Python,LSTM,时间序列预测,RNN)