基于LSTM神经网络模型的钢铁价格预测

【摘 要】由于钢铁价格具有影响因子难以确定和非线性的特点,在数据挖掘预测分析是,传统的预测方法只能够对钢铁价格进行小数据量的分析,导致预测精度低、速度慢且效率低下。随着大数据的深入研究,将神经网络与spark相结合,能满足用户对实时数据处理的需求。在多个深度学习神经网络模型中,基于长短期记忆单元(Long Short-term memory,LSTM)的递归神经网络(recurrent neural network,RNN)模型因为其能有效利用序列数据中长距离依赖信息的能力,非常適用于价格指数的预测中。文章利用python和lstm,结合近几年钢铁交易价格的走势数据,对数据进行回归拟合,生成训练模型,然后将得出的模型用来对未来的钢铁交易价格进行预测,使用均方误差(MSE)对预测数据和原始数据进行误差分析与处理,并与支持向量回归(SVR)模型进行对比。

【关键词】大数据;LSTM;RNN;MSE;SVR;价格指数预测

【Abstract】Because of the characteristics of steel prices is difficult to determine the impact factor and nonlinear, in data mining prediction analysis, analysis of the traditional prediction methods can only be a small amount of data on steel prices, resulting in low prediction accuracy, slow speed and low efficiency.With the deep research of large data, the combination of neural network and spark can meet the needs of users for real-time data processing. In multiple depth learning neural network models, The recurrent neural network model based on long and short memory units is very suitable for the prediction of price index because it can effectively utilize the ability of long distance dependence information in sequence data. The use of Python and LSTM, combined with the trend of steel price data in recent years, the data fitting, the generation of the training model, then the model is used to predict the future price of steel trading, analysis and handle the error of forecast data and the original data using mean square error, and with the support vector regression model comparison.

【Key words】Big Data;LSTM;RNN;MSE;SVR;Price index forecasting

0 前言

钢铁生产在国民经济中具有举足轻重的地位,是社会发展的重要物质保障。中国近50年来在钢铁行业有着突飞猛进的发展。钢铁价格的波动对国民经济以及相关行业带来深远的影响。导致钢铁价格波动的因素有很多,既有来自宏观经济的影响,又有生产成本、供求关系、国际贸易、国家政策等诸多因素。因此,钢铁价格的预测是当前国内外数据挖掘、机器学习应用研究的热点。目前,对钢铁价格预测研究的算法主要有线性回归法、小波分解算法、支持向量机法、聚类分析法等[1]。

在大数据时代,一个好的预测方法可以为决策者提供强有力的决策依据。其不仅可以准确地预测价格的走势,还可以预测顾客对商品的需求,从而让生产者有效地安排生产、减少企业的库存、合理安排物流、提高企业的生产效率、提高顾客对企业的满意程度、综合提高企业的竞争力。目前用于预测的方法有很多,主要的预测方法有:移动平均预测法、指数平滑预测法、趋势外推预测法、回归预测法、灰色预测法、移动自回归预测法、机器学习法[2]。

本文基于近10年钢铁交易价格数据,分别从单因子和双因子方面,将LSTM与SVR这两个模型进行对比分析,得出最优预测模型。

1 研究对象

对近十年钢铁交易价格数据进行数据处理,分别得到单因子(图1)与双因子(图2)两份csv数据。其中单因子为钢铁交易价格,双因子为钢铁交易价格与对应的成交量。

2 研究方法

长短期记忆人工神经网络(Long-Short Term Memory,LSTM)是一种改进的时间循环神经网络(Recurrent Neural Network,RNN)。LSTM可以学习时间序列长短期依赖信息,由于神经网络中包含时间记忆单元,因此适用于处理和预测时间序列中的间隔和延迟事件。

循环神经网络(RNN)可以被看做是同一神经网络的多次复制,每个神经网络模块会把消息传递给下一个(见图3)。

LSTM 通过刻意的设计来避免长期依赖问题,其每个神经元中包含四个交互的层(见图4),分别为忘记门层、输入门层、更新门层以及输出门层。

3 应用分析

3.1 LSTM模型单因子预测

首先,基于序贯模型(keras)搭建三层RNN神经网络模型,每层神经网络结构中均包含LSTM神经网络单元。其中第一层为1个输入单元,50个输出单元;第二层为50个输入单元,100个输出单元;最后一层为100个输入单元,1个输出单元。误差函数为均方误差(mse)函数,激活函数为rmsprop。

接下来,对3078条每日的钢铁价格数据进行模型训练,现将数据归一化,处理为-1到1区间内的数,便于训练模型的确立。每5条数据分为一组训练数据,后一条数据为标签数据。模型重复训练100次,得以下结果(图5):

均方误差为:0.00847638923468,最终预测值为:3666.215308904648

根據多次改变模型层数,重复训练次数等方面得出的结果分析,随着训练次数的减少,模型拟合不理想;训练次数增加,模型会过拟合。因此,对于单因子数据,取100次训练次数,能得到较好的预测模型。

3.2 LSTM模型双因子预测

首先,因为序贯模型(keras)只适用于单因子,因此需要自定义模型结构。分别定义获取训练集函数与获取测试集函数,训练集个数与测试集个数比为10:1,并分别将它们归一化。再定义神经网络变量,即输入层、输出层的权重、偏置。最后定义LSTM神经网络,确定输入与输出数据维度。对模型进行100次重复训练后,进行预测,得以下结果(图6):

均方误差为:0.00428824,最终预测值为:3746.97504515

因为多因子关联影响的原因,不同训练次数,导致模型拟合效果不同。因此,接下来分别对不同训练次数进行预测对比,以下是200次、300次、400次以及500次重复训练的误差值、预测值以及训练时间(表1)。

对比单因子和不同训练次数下双因子的误差值,在重复训练300次时,模型拟合最好,预测值也最接近真实值。因此可以将此模型保存,存在实用价值。

3.3 SVR模型双因子预测

作为对比,本文也使用支持向量回归(SVR)模型,对相同双因子数据进行分析预测。SVR模型分别从RBF、Linear以及Polynomial这三个核函数进行训练预测,得出以下结果(图7):

与LSTM模型相比,SVR耗时长、精度低、实用性低,因此不提倡使用此模型。

4 总结

钢铁的价格变化波动不定,传统的预测方法仅仅能够对少量的数据进行预测分析。本文采用了LSTM神经网络预测算法,建立了新的预测模型,对钢铁交易价格的数据进行预测分析。实验结果表明,LSTM神经网络可以有效地预测钢铁的价格走势,不仅比传统的预测方法速度更快,而且精度更高,具有很好的应用前景。

【参考文献】

[1]朱靖翔,张滨,乐嘉锦.基于内存计算的钢铁价格预测算法研究.东华大学计算机科学与技术学院,上海201620.

[2]彭岩,王万森,王旭仁.基于机器学习的风险预测方法研究[J].计算机科学,2009,36(4):205-207.

[责任编辑:朱丽娜]