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

来源:互联网 发布:淘宝运费险退到哪里了 编辑:程序博客网 时间:2024/05/20 16:00

单变量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_csvfrom pandas import datetime from sklearn.metrics import mean_squared_errorfrom math import sqrtfrom matplotlib import pyplot #load datadef 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.valuestrain, 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()