基于ACO—SVM方法的职工工资增长预测研究
2016-05-16张振强
张振强
[摘 要]在岗职工年平均工资一直以来都是一项重要的经济指标,其在某种程度上能够反映工作人员的收入水平,预测职工工资增长可以成为政府制定工资政策的重要依据,因此成为了时下民生领域较为关注的问题。文章介绍了支持向量机(SVM)的基本原理和算法,以及如何运用蚁群算法快速优化支持向量机的初始化参数,以便提高模型预测精确度。最后文章以1985—2014年福建省在岗职工年平均工资的相关变量数据为样本进行训练和测试。
[关键词]蚁群算法;支持向量机;平均工资
[DOI]10.13939/j.cnki.zgsc.2016.16.033
1 研究方法
支持向量机(SVM)是Vapnik等人于1995年提出的一种机器学习方法,建立在统计学习理论的VC维理论和结构风险最小原理基础上,在模型复杂性和学习能力之间进行了折中,具有较强的泛化能力和精确性。[1]因为它在小样本、非线性及高维模式识别等方面有较大优势,克服了神经网络过于学习、欠学习、局部极小等问题,已成为继神经网络研究之后机器学习理论领域新的热点。
1.1 SVM算法回归模型
在支持向量机的回归模型中,输入的样本x首先通过非线性映射φ(x),映射到一个高纬度的特征空间中,然后在这个高纬特征空间中建立一个线性模型来估计回归函数,其公式如下所示:
其中,ω为权向量;b为阈值。对于给定的训练数据集(y1,x1),(y2,x2),…,(ye,xe),采用ε不敏感损失函数,对应的支持向量机称为ε-支持向量机,则其约束优化问题可表示为:
式(2)的优化问题可通过引入拉格朗日函数将其转化为对偶问题,通过解对偶问题得到式(1)的解:
由式(2)~式(4)可知,控制C,ε和λ就可以控制支持向量机的推广能力,因此,合理并且快速地选择上述3个参数能够极大影响SVR实际应用中的效果。[2][3]
1.2 蚁群算法数学模型
蚁群算法是一种生物智能算法,该算法模拟了蚁群寻找食物过程中的运动规律来求解最短路径问题。在此以TSP商旅问题为例说明蚁群算法的基础模型。
设TSP规模为n(即有n个城市),蚁群中蚂蚁的总数目为m,τij(t)表示t时刻路径(I,j)上的信息量。蚂蚁k在行进过程中,根据各条路径上的信息素强度及路径的启发信息来计算状态转移概率。pkij(t)表示t时刻蚂蚁k从城市i转移到城市j的状态转移概率:
式中allowedk表示蚂蚁k下一步允许选择的城市,α为信息启发式因子,β为期望启发式因子,ηij(t)为启发函数。
为了避免信息素残留过多引起残留的信息掩盖启发信息,在每只蚂蚁走完或者完成对所有n个城市的遍历后,要对残留信息进行信息素挥发处理。即t+n时刻在路径(i,j)上的信息量可按如下规则进行调整:
式中ρ为信息素挥发系数,为了防止信息的无限积累,ρ的取值范围为ρ∈[0,1)。Δτij(t)表示路径(i,j)上的信息素增量,Δτkτij(t)表示第k只蚂蚁留在路径(i,j)上的信息量。[4]
1.3 如何通过蚁群算法优化SVM初始化参数
与TSP问题不同,用于SVM参数优化的蚁群算法搜索出来的最终路径代表函数的最优值,通过C,ε和λ在蚁群系统中的节点值体现,信息素是遗留在蚂蚁所走过的每个节点(相当于TSP问题中的城市)上。并且用于SVM参数优化的蚁群系统不是根据路径长度来更新信息素的浓度,而是根据目标函数值来更新信息素物质的浓度;目标函数中包含各蚂蚁所走过的所有节点的信息以及系统当前性能指标信息。[5]
蚁群算法对SVM参数优化的具体过程如下:
以3个参数作为待优化的变量,这3个变量值都用7个十进制有效数位表示。根据这些参数的取值情况,令ε和λ的7个数位中小数点前各占3位,小数点后各占4位。C的7个数位中小数点前占4位,小数点后占3位。为了便于采用蚁群算法,SVM参数优化蚂蚁运行图,采用10行×21列的平面结构,如下图所示。10行代表0~9的10个值,21列表示C,ε和λ的各参数的7个数位。每隔7列分别对应一个参数。因此,用于SVM参数优化的蚁群算法可以描述为:m只蚂蚁从蚂蚁巢穴出发去寻找食物。每只蚂蚁从第1个集合出发,根据集合中每个元素的信息素状态,通过赌轮盘的规则从每个集合中选择一个元素,并对所选元素的信息素作相应调节,当该蚂蚁走完全部节点后,提取三个参数的数值,计算目标函数的结果,最后将每轮的最佳路径采用精英蚁群的策略进行信息素加强。这一过程反复进行,直到全部蚂蚁收敛到同一路径或者达到迭代的最大次数时为止。
10行×21列的平面结构图
2 实证研究
2.1 数据收集与数据处理
本文以福建省在岗职工年平均(Y)为研究对象,根据年平均工资的相关文献,并结合福建省统计年鉴,最终选取公共财政总收入(x1)、公共财政支出(x2)、居民消费价格指数(x3)、商品零售价格指数(x4)、农业生产资料价格指数(x5)、平均每人消费性支出(x6)、平均每人全年可支配收入(x7)、全社会固定资产投资额(x8)、从业人员数(x9)、城镇登记失业率(x10)、人均GDP(x11)、第一产业总产值(x12)、第二产业总产值(x13)以及三产业总产值(x14)为解释变量。本文选取1985—2014年的数据进行实证研究,研究数据来自福建省统计局每年发布的统计年鉴。
数据归一化是数据分析的一项基础性工作,由于本文选取的14个影响因素具有不同的量纲和量纲单位,如果不对其进行归一化很可能会影响模型训练和测试的结果,因此为了消除各个因素之间量纲影响,需要进行数据归一化处理,以便解决因素之间的可比性。
2.2 模型实证结果
通过蚁群算法优化支持向量机的参数获得C,λ和ε,分别为C=1245.35,λ=0.950589,ε=0.24588。
2.2.1 训练样本
本文选择1985—2008年的数据为训练样本,将上述的参数代入训练获得训练结果,如表1所示。
根据表1的结果,除了1989年的相对误差达到了8.43%,其余年份的相对误差都在可接受的范围之内,因此训练结果较为理想。
2.2.2 测试样本
在通过选择的样本训练确立了支持向量机的回归预测模型,将训练好的模型进行样本测试,输入2009—2014年的数据,得到表2的结果。
根据表2的结果,2009—2014年在岗职工年平均工资预测值的相对误差在可以接受的范围内。因此,证明了所建立的支持向量机模型可以用来预测在岗职工年平均工资。
3 结 论
在岗职工年平均工资一直以来都是一项重要的经济指标,其在某种程度上能够反映工作人员的收入水平。随着社会经济的不断发展,有关部门相继以平均工资为基础制定了一系列政策,如社会保险金征收、基本养老金和退休金发放、最低工资标准、人身损害司法赔偿等,都与平均工资数据相关。本文提出了一种基于支持向量机的在岗职工年平均工资预测方法,并且利用蚁群算法对支持向量机进行参数优化,以提高模型的准确率。文章中使用了福建省1985—2014年的数据进行实证,获得了不错的结果。可见,利用该模型预测在岗职工年平均工资是有一定的参考意义的,同时也为探索福建省在岗职工的年平均工资的未来变化趋势提供可靠的参考依据,以便协助相关部门进行决策。
参考文献:
[1]顾亚祥,丁世飞.支持向量机研究进展[J].计算机科学,2011(2).
[2]徐达,武新星,胡俊彪,等.最小二乘支持向量机回归预测模型研究与实现[A].全国先进制造技术高层论坛暨第八届制造业自动化与信息化技术研讨会论文集[C].2009.
[3]闫国华,朱永生.支持向量机回归的参数选择方法[J].计算机工程,2009(14).
[4]高芳,韩璞,翟永杰.基于变异操作的蚁群算法用于连续函数优化[J].计算机工程与应用,2011(4).
[5]倪丽萍,倪志伟,李锋刚,等.基于蚁群算法的SVM模型选择研究[J].计算机技术与发展,2007(9).
[6]闫来英,吕扬.江西省在岗职工平均工资水平预测[J].中国商贸,2011(35).