RBF神经网络在药品销售预测中的应用
2013-12-03亳州职业技术学院信息工程系安徽亳州236800
盛 魁 (亳州职业技术学院信息工程系,安徽 亳州236800)
药品是预防、诊断、治疗人类疾病的必备物质,在维护人类健康中扮演着重要角色。为了合理生产药品、恰当采购药品和正确引进药品,在药品销售过程中,对药品的销售量和销售趋势进行研究和预测显得十分重要。影响药品销售预测的精度的因素非常多,如医药管理政策的改变、国家宏观经济状况、新药上市、突发事件、季节变化及新的治疗手段产生等[1]。传统的统计分析方法和线性预测方法都有一定的局限性,难以处理药品销售这一复杂的非线形关系,从而导致预测精度低。径向基函数 (Radial Basis Function,RBF)神经网络具有结构简单、泛化能力较强、学习速度快、拟合精度较高和不易陷入局部极小等优点,在非线性系统的预测方面得到广泛应用[2]。下面,笔者对RBF神经网络在药品销售预测中的应用进行了研究。
1 RBF神经网络原理与聚类学习算法
1.1 RBF神经网络原理
RBF神经网络是一种可以模拟人脑中相互覆盖接收域和局部调整的神经网络结构,它能以任意精度逼近任一连续函数[3]。RBF神经网络是一个3层神经网络[4]:第1层为输入层,由信号源节点组成;第2层为隐含层,由径向基函数神经元构成;第3层为输出层,网络输出为隐含层输出的线性组合。RBF网络的输入空间到隐含层空间的变换是非线性的,而从隐含层空间到输出层空间的变换是线性的[5]。因此,RBF网络输出形式为:
式中,x为输入样本;M表示隐含层的节点数;ci为第i隐节点的基函数中心;wij表示第i个隐含节点到第j个输出节点的权值;‖x-ci‖是向量x-ci的欧式范数;φ为隐含单元的变换函数,φ形式有多种,笔者采用 Gauss函数[6]:
式中,σi为i隐节点的均方差或宽度。
1.2 RBF聚类学习算法
在进行药品销售预测时,构造和训练一个RBF神经网络的核心就是使映射函数通过适当学习,确定出每个隐含层神经元基函数的中心、方差以及隐含层到输出层的权值的过程,从而完成所需要的输入到输出的映射[7]。RBF神经网络的非线性映射能力体现在隐层基函数上,其特性主要由基函数的中心确定[8]。根据径向基函数中心选取方法的不同,RBF网络有多种学习方法,笔者采用自组织聚类方法选取中心[9]。该方法的学习过程分为如下步骤:①非监督学习,即根据k-均值聚类算法[10]及所有的输入样本决定隐层各节点的中心值和方差;②有监督学习,即在确定好隐层的参数后,依据网络训练样本,采用最小均方算法和矩阵伪逆计算法确定输出层的权值。设样本数为N,具体算法步骤如下。
1)确定聚类中心ci和均方差σj①初始化聚类中心ci。从输入样本xj(j=1,2,…,N)中选择M个样本作为聚类中心ci(i=1,2,…,M),通常将其初始化为第一个训练样本。②将输入的训练样本集合按最近邻规则分组。将xj(j=1,2,…,N)分配给中心为ci并形成输入样本聚类集合θi(i=1,2,…,M),且满足di=min‖xj-ci‖)。③重新调整聚类中心。计算各个聚类集合θi中训练样本的平均值,即新的聚类中心为θ中的输入样本数)。④判断。重复上述步骤,直至聚类中心的分布的变化小于预定i的阈值ε,则所得的ci为RBF网络最终的基函数中心,否则返回②进入下一轮的中心求解。⑤计算均方差σj。RBF的聚类中心确定以后,其均方差为所选取数据中心之间的最大距离)。
2)确定权值w ①确定输出矩阵A。设输入为xj时,第i个隐节点的输出φij=φ(‖xj-ci‖),则隐含层输出矩阵为A= [φij]n×m;② 计算权值w。若RBF当前权值为w= (w1,w2,…,wm),则网络输出向量为=Aw。令ε=‖d-‖为逼近误差,若确定了期望输出d=(d1,d2,…,dm)和A,利用最小化公式ε= ‖d-Aw‖ 求出输出权值w=A+d,其中A+为A的伪逆,A+= (ATA)-1AT。
图1 药品销售预测流程图
2 药品销售预测过程
药品销售预测是在对影响药品市场供求变化的多种因素及过去和现在的销售资料进行分析和研究的基础上,运用科学的方法对未来药品市场产品的供求发展趋势进行估计和推测,包括药品销售数据选取、数据预处理、建立预测模型和预测结果分析等内容,具体流程如图1所示。
2.1 数据样本的选取
收集的药品销售数据是用来训练和测试,好坏直接影响到预测结果的精确度。设药品销售的时间序列值为X = (x1,x2,…,xn),欲通过序列X的前N个时刻的值,预测后M个时刻的值。可以将序列的前N个时刻的数据作为滑动窗,并将其映射为M个值。以亳州市某医药销售公司的某种感冒药为例,采用以年为单位的方式进行预测。
2.2 数据预处理
为了保证网络在训练过程中收敛,神经网络要求输入的数据必须不大于1,否则传递函数无法处理[11],收集到的药品销售数据增长值并没有落在 [0,1]围内,在网络训练之前要将输入样本数据进行归一化处理,这样不但避免了输入数据落入饱和区域,也保持了数据的原有特征。归一化运算计算公式为:
式中,X表示预处理后的数据;x表示药品销售原始数据;xmax和xmin表示药品销售原始数据的最大值和药品销售原始数据的最小值。
当RBF神经网络处理完毕,为了使原始数据与输出数据在同一个范围内,通过反归一化运算还原原始数据,反归一化运算计算公式如下:
根据以上原则,对1992~2011年某药品实际销售量数据进行归一化的样本如表1所示。
2.3 预测评价标准
为了衡量药品销售预测模型性能的优劣,采用预测精度准确率 (ACCU)和平均绝对百分误差 (MAPE)作为预测模型的性能评价指标[12]:
式中,n表示预测样本数量;xi表示药品销售的实际值表示药品销售的的预测值。
2.4 预测与分析
表1 原始样本处理
将每4年作为1个周期,前4年的药品销售数据作为RBF神经的输入,当前药品销售作为RBF神经网络的输出,采用基于k-均聚类算法的RBF神经网络构建药品销售预测模型,用前16年的数据作为学习样本,后4年数据作为测试样本,检验模型预测效果。以Matlab软件为数据平台,利用C++语言进行编程,并采用多元回归模型、支持向量机 (SVM)模型和BP神经网络模型作为参照模型,4种模型对测试集的预测结果如表2所示。从表2可以看出,采用利用RBF神经网络模型预测的结果更接近实际销售值,预测结果更准确。为了进一步考察各模型的预测精度,将RBF模型预测结果分别与其他3个模型的ACCU和MAPE进行对比分析,结果如表3所示。从表3可以看出,采用RBF神经网络模型的预测精度准确率最高而平均绝对百分误差最低,可以更有效地对药品销售进行预测。
表2 2010~2011年某感冒药销售实际数据与各种预测结果对比表
表3 不同预测模型评价标准对比表
3 结 语
传统的药品销售预测方法存在一定局限性,无法准确反映药品销售的非线性变化规律,从而影响了预测精度。RBF神经网络具有结构简单、训练简洁、自适应能力强、收敛速度快、能逼近任意复杂的非线性函数的特性,将其运用到药品销售预测中,由此提出RBF神经网络预测模型并进行药品销售预测。研究结果表明,利用RBF神经网络预测模型预测药品销售的误差小,可以更有效地对药品销售进行预测。由于现实中影响药品销售的因素比较多,如何改善RBF神经网络的学习算法,使其具有更好的预测能力,是今后需要进一步探讨的问题。
[1]王晨光,相秉仁,谢少斐,等 .基于主成分分析的BP神经网络在药品销售预测中的应用 [J].药物生物技术,2009,16(4):385-387.
[2]李月英,申东日,陈义俊,等 .基于RBF神经网络的非线性系统的预测 [J].计算机测量与控制,2006,14(3):319-321.
[3]陈伟 .基于群体智能算法的人工神经网络优化及其应用 [D].无锡:江南大学,2007.
[4]Norgaard M.Neural network based system identification toolbox [D].Technical University of Denmark,2000.
[5]华王秀,陈继红 .基于RBF神经网络的销售预测模型的研究与应用 [J].南通大学学报报 (自然科学版),2004(4):84-86.
[6]苏美娟 .径向基神经网络学习算法研究 [D].苏州:苏州大学,2007.
[7]郭丹 .径向基神经网络在木材销售量预测中的应用 [J].价值工程,2011(6):100-101.
[8]曹建云,陆国平,杨奕,等 .径向基函数网络泛化能力研究及其应用 [J].系统工程与电子技术,2006,18(1):72-74.
[9]高隽 .人工神经网络原理及仿真实例 [M].北京:机械工业出版社,2007.
[10]赖玉霞,刘建平 .k-means算法的初始聚类中心的优化 [J].计算机工程与应用,2008,44(10):147-149.
[11]张德丰.Matlab神经网络应用设计 [M].北京:机械工业出版社,2009.
[12]John E H,Dean W W.销售预测 [M].北京:清华大学出版社,2006.