基于改进BP神经网络的饮料销售预测模型研究

2019-01-17 05:49董宝力
成组技术与生产现代化 2018年3期
关键词:约简粗糙集灰色

宋 颂,董宝力

(浙江理工大学 机械与自动控制学院,浙江 杭州 310018)

销售预测用于指导企业计划部门下达滚动计划和生产计划,采购部门依据滚动计划对原材料供应商提出要求,生产部门依据生产计划来组织生产.因此,准确的销售预测对企业十分重要.饮料产品生命周期短,企业主要根据预测的产品销售量采购原材料并安排生产,如果预测的结果与实际情况差异过大,就会导致企业的产品交期延迟、生产计划变动、库存增加等问题.

常用的销售预测方法包括时间序列预测法、指数平滑法、线性回归法等.这些方法在各种行业均有所应用,但这些方法的缺陷是只能应用于线性数据,难以应用在多因素的非线性数据上.饮料销售预测建模受多因素影响,如室外平均温度、季节指数、节假日数、人均消费水平、促销活动次数等.人工神经网络对于受多因素影响的预测有较好的效果.刘卫校运用多维灰色模型对影响因素进行处理,并结合神经网络建立了销售预测模型[1].刘振华等针对多种因素影响的溶洞发育规模,运用BP神经网络进行了预测[2].王新普等提出一种改进灰色预测方法,对BP神经网络进行优化[3].Wang X等提出一种混合多群体遗传算法——反向传播神经网络算法,并建立了预测模型[4].Liu X L等运用灰色预测方法并结合神经网络建立了预测模型[5].Gomes L F A M等研究了3种时间序列和神经网络相结合的预测方法[6].陈志礼等采用遗传算法和核密度估计法改进BP神经网络建立了预测模型[7].Du W等采用一种多目标进化算法对神经网络的权重进行优化,建立了预测模型[8].张金梦等运用遗传算法对BP神经网络权值和阈值进行优化,并建立了预测模型[9].肖成等对小波BP神经网络进行训练,并用MATLAB软件进行了仿真预测[10].上述研究只针对算法本身进行改进,对输入神经网络的数据未预先处理或仅进行纵向处理,模型输入的数据中仍存在冗余,而这些冗余数据会对BP神经网络的辨识和预测能力产生较大的不良影响,降低BP神经网络的训练速度和泛化能力.

影响预测的因素既有线性的又有非线性的.本文采用灰色关联分析、粗糙集属性约简对影响因素进行横向和纵向双维度数据处理,以来提高BP神经网络的训练速度和泛化能力;通过附加动量项、优化误差函数提高BP神经网络的学习收敛速度,以避免误差局部极小值的出现,提高预测的精度;并运用改进BP神经网络模型对某饮料企业销售历史数据进行实例验证.

1 模型构建

BP神经网络的输入数据存在冗余,算法学习收敛的速度低,误差存在局部极小值.针对这些问题,可构建一个由灰色粗糙集与BP神经网络结合的饮料销售预测模型.灰色关联分析和粗糙集属性约简可以处理饮料销售预测影响因素中节假日数、促销活动次数等非线性、不完整的数据,提高输入数据的有效性和神经网络的训练速度.通过附加动量项可提高BP神经网络的学习收敛速度,优化误差函数可避免误差局部极小值的出现.模型构建流程如图1所示.

图1 模型构建流程

(1) 收集饮料销售历史数据F和影响因素数据(包括室外平均气温A、消费指数B、促销活动次数C、节假日数D、季节指数E),构建二维决策表.季节指数计算公式如下:

E=G/H

(1)

式中:G为各年同季销售量平均值;H为同年各季销售量平均值.

(2) 对行数据进行灰色关联分析,计算并比较每月数据的灰色关联系数ζi(g),剔除无效月数据.g为数据月份总数.

(3) 对列数据进行粗糙集属性约简,离散化处理,分析二维决策表生成的分辨矩阵M(s),计算分辨函数,得出最小析取范式,并剔除冗余因素.

(4) 通过优化误差函数、附加动量项来提高BP神经网络的学习收敛速度,将灰色粗糙集处理过的二维决策表输入神经网络,得到预测结果.

(5) 对该模型预测与BP神经网络模型预测、线性回归分析预测的结果进行比较.均方误差(Mean-Square Error,MSE)的计算公式如下:

(2)

式中:yn为预测值;tn为实际值.

2 模型求解

2.1 灰色关联分析

饮料销售预测中节假日数、促销活动次数等为非线性数据,数据特征表现为决策多目标、判定标准不明确等.针对这些特点,可运用灰色关联分析对饮料销售预测数据进行前期处理,计算不同因素之间的灰色关联系数,将各因素按照灰色关联系数的大小进行排列,剔除关联系数小、冗余的月数据,实现二维决策表的横向处理.

(1) 收集饮料销售历史数据和影响因素数据.由平均气温A、消费指数B、促销活动次数C、节假日数D、季节指数E、销售数据F构建二维决策表.

(2) 确定参考数据列.参考数据列是一个理想的比较标准,由各指标的最优值或最劣值构成,且可根据评价指标来选择参考值.本文以最优值为参考值,可记作:

X0=(X11,X21,X31,X41,X51,X61)

(3)

式中:X0为元素集合;Xnm为各属性元素.

(3) 对数据进行无量纲化处理.影响因素的性质不同,使得数据的量纲也不同,为了结论具有可比性,需在灰色关联分析时对数据进行无量纲化处理.本文运用均值化法进行数据的无量纲化处理.无量纲化的数据表可形成如下矩阵:

(4)

(5) 计算关联系数和关联序.关联系数计算公式如下:

ζi(g)=

(n=1,2,…,n;m=1,2,…,m) (5)

式中:θ为分辨系数.

对各行数据的关联系数进行排序,排列好的顺序为关联序.根据关联序比较各月份关联系数的大小,剔除冗余数据.

2.2 粗糙集属性约简

冗余数据会影响BP神经网络预测的准确性,导致预测误差增大.饮料销售预测影响因素中促销活动次数、室外平均气温等呈现高度非线性和不确定性变化.针对影响因素的特点,本文对粗糙集进行了属性约简.粗糙集属性约简可以克服模型受主观因素影响过大的缺点.基于属性依赖性、区分矩阵、区分函数、约简、核等概念,对BP神经网络的输入数据进行预处理,去除冗余属性,可简化BP神经网络的网络结构,提高训练速度.采用分辨矩阵法对饮料销售的影响因素进行属性约简,能够实现二维决策表的纵向处理.

(1) 由二维决策表计算分辨矩阵M(s)即

(Xnm)n×n).这里:

n,m=1,2,…,N

(6)

式中:a为属性;C为条件属性集.

(2) 计算核Core(R)的公式如下:

Core(R)=∧{Xnm|Xnm≠Φ且Xnm=at,at∈C,

1≤t≤m,n=2,3,…,N;m=1,2,…,n-1}

(7)

(3) 生成分辨函数,即:

f(a1,a2,…,am)=∧{∨a|a∈Xnm,

其中Xnm≠φ,n=2,3,…,N;m=1,2,…,n-1}

(8)

构建分辨函数,即:

F=a1∧(a1∨a2)∧(a1∨a2∨a3)∧…∧(a1∨a2∨…an)

(9)

(4) 求解分辨函数的最小析取范式.

分辨矩阵M(s)中元素Xnm,是能够区分所有属性的集合.当决策属性相同时,分辨矩阵中元素Xnm的取值为空集.分辨矩阵是一个主对角线对称的n阶方阵,在计算分辨矩阵时,只考虑上半角或下半角即可.分辨矩阵对应的唯一分辨函数f(am)是一个具有m元变量a1,a2,…,am的布尔函数.它是(∨Xnm)的和取,(∨Xnm)是矩阵项Xnm各元素的析取.分辨函数的析取范式中每个和取对应一个约简,核为分辨矩阵中所有单元素组成的集合,即约简后的影响因素项.

2.3 BP神经网络求解

BP神经网络算法学习过程的收敛速度较低,且误差容易陷入局部极小值误区.结合饮料销售预测的特点,本文通过设定误差函数、附加动量项对BP神经网络算法进行了优化改进.传统BP神经网络因未考虑误差函数的高次项而容易出现局部极小值.优化误差函数后BP神经网络能够根据预测值与实际值的误差来动态调整学习率,提高学习速度,从而避免局部极小值的出现.优化误差函数为:

(10)

式中:δnm为等效误差分量.

BP神经网络训练时,权值变化过快会影响其学习收敛速度.采用附加动量项的方法,可将上次误差计算中权值调整量的一部分叠加至本次误差计算的权值调整量上,从而减小学习过程的震荡,改善收敛性能,提高收敛速度.附加动量项为:

Δwi j(k+1)=(1-mc)p▽f(wi j(k))+mcΔwi j(k)

(11)

式中:p为学习速率;k为训练次数;mc为动量因子;▽f(wi j(k))为误差函数的梯度;wi j为权值.

建立BP神经网络模型时,选用一个隐含层就可满足该饮料销售预测模型的数据精度要求[11].BP神经网络模型的结构包括输入层、隐含层和输出层.其中,输入层是经过灰色粗糙集属性约简的饮料销售影响因素的数据,输出层即销售数据.

隐含层神经元个数为:

(12)

式中:b为输入层影响因素节点数;c为输出层销售数据节点数;h为1~10之间的常数.

(1) 导入BP神经网络数据.以灰色关联分析和粗糙集属性约简后的二维决策表作为输入数据,导入模型.

(2) 将约简后饮料销售的历史数据分为训练集和测试集(以销售历史的前期多组数据作为训练集,剩余数据作为测试集,可验证预测的准确性),并对数据进行归一化处理.

(3) 确定BP神经网络的训练参数、迭代次数、学习率和目标值.

(4) 设定误差函数,附加动量项.

(5) 确定BP神经网络模型的隐含层节点数,并选择传递函数和训练函数.输入层到隐含层的传递函数为双曲正切tanh函数.该函数的特点在于它能够将区间(-∞,+∞)的数据映射到区间(0,1)内.隐含层至输出层的传递函数为purelin线性函数.该函数使整个网络的输出为任意值。训练函数采用梯度下降算法(该算法具有自适应学习能力),可提高预测结果的稳定性和精度。本文所用traingdx训练函数的自适应学习速率公式为:

(13)

3 实例验证

按照饮料行业销售情况统计惯例,将公历划分为四季:第一季为3~5月,第二季为6~8月,第三季为9~11月,第四季为12~2月.某饮料企业2015~2017年的历史销售数据及季节指数如表1所示.

表1 某饮料企业2015~2017年的历史销售数据及季节指数

首先计算各年同季销售量平均值G和同年各季销售量平均值H,然后运用式(1)计算季节指数E.以计算的季节指数E以及所选销售地区2015~2018年各月份的室外平均温度A、消费指数B、促销活动数C、节假日数D作为影响因素,结合历史销售数据F可构建二维决策表(表2).对表2进行灰色关联分析,并用均值化法对其数据进行无量纲化处理,以最优值序列作为参考序列,通过式(5)计算灰色关联系数并进行排序(表3).

表2 二维决策表

表3 灰色关联系数排序结果

由表3可知,15/03、16/12、17/03、17/12这几个月份对应的灰色关联系数较小,无法有效反映销售预测影响因素的决策性,相应数据应作为冗余数据被剔除.

灰色关联分析后剔除冗余数据,对留下34个月份的数据进行粗糙集属性约简.首先对连续数据进行离散化处理,对离散化后二维决策表采用分辨矩阵法约简,然后根据式(6)计算分辨矩阵.所得部分分辨矩阵如图2所示.

序号X1X2X3X4X5X6X7X8X9X10X11X12X1X2X3X4ABEABEACX5ABEABEACX6ABCEABCEAEACECEX7ABDEABDEACDEADEADEACDX8ABDEABDEACDEADEADEACDX9ABCEABCEAEACECEACDEACDEX10ABEABEACEAEEADEADEX11ABDEABDEACDEACDEAEAEACDADX12ABDEABDEABCDEABEABEABCDEABDEABE

图2部分分辨矩阵

在分辨矩阵的基础上,依据式(8)可生成如下分辨函数:

(A∨B∨E)∧(A∨B∨E)∧(A∨C)∧(A∨B∨E)∧…∧(B∨C∨D∨E)∧(A∨B∨C∨E)=D∨E∨B∨A.

由分辨函数得到的最优约简结果为室外平均温度、消费指数、节假日数、季节指数.将灰色关联分析横向约简和粗糙集属性纵向约简后数据作为改进BP神经网络的学习数据,可得表4所示的约简后二维决策表.

表4 约简后二维决策表

以表4中4个影响因素作为输入神经元,根据式(12)选取6个神经元个数的隐含层,并将表4中前30组数据作为训练数据,后4组数据作为验证数据.根据式(10)设定优化误差函数,并按式(11)计算附加动量项.本文采用的饮料销售预测模型中,改进BP神经网络训练函数的参数设定如下:学习速率为0.001,迭代次数为1 000次,目标值为0.001.基于改进BP神经网络进行饮料销售预测的结果如图3所示.

图3 基于改进BP神经网络进行饮料销售预测的结果

针对预测结果,运用式(2)计算预测值和实际值的均方误差,可得MSE=0.019 3.本文预测模型(灰色粗糙集BP神经网络)、传统BP神经网络、线性回归分析3种预测方法的预测结果比较如表5所示.

灰色粗糙集BP神经网络的训练速度为8 s,而未经灰色粗糙集处理的BP神经网络的训练速度为10 s;灰色粗糙集BP神经网络预测结果的均方误差为0.019 3,显著小于传统BP神经网络预测结果的均方误差0.141 9和线性回归分析预测结果的均方误差0.184 5.因此,相比未经前期数据处理的BP神经网络预测和线性回归分析预测,采用灰色粗糙集BP神经网络预测模型对饮料销售预测的精度更高,准确性更好.

表5 本文预测模型、传统BP神经网络、线性回归预测结果的比较 10万箱

4 结束语

本文运用灰色粗糙集BP神经网络预测模型对饮料销售进行了预测.针对饮料销售预测影响因素的非线性和不完整性,运用灰色粗糙集从横向和纵向两个维度对二维决策表进行预处理,以提高神经网络的训练速度和泛化能力。同时,对BP神经网络进行优化误差函数并附加动量项,以提高BP神经网络的学习收敛速度、减小预测误差。对某饮料企业历史销售数据进行的仿真表明:灰色粗糙集BP神经网络模型对于饮料销售预测具有较高的预测精度.

猜你喜欢
约简粗糙集灰色
基于Pawlak粗糙集模型的集合运算关系
浅灰色的小猪
基于二进制链表的粗糙集属性约简
基于粗糙集的不完备信息系统增量式属性约简
实值多变量维数约简:综述
基于模糊贴近度的属性约简
灰色时代
她、它的灰色时髦观
多粒化粗糙集性质的几个充分条件
双论域粗糙集在故障诊断中的应用