1
模式识别与智能计算的MATLAB实现
1.8.3 6.3 支持向量机在模式识别中的应用

6.3 支持向量机在模式识别中的应用

例6.1 企业家综合素质的高低是决定企业市场竞争成败的关键。综观国内外关于企业家的理论成果,对企业家素质特性的研究已十分深入,对企业家素质的看法也更为公允。但如何客观、准确地对企业家素质作出评价,一直是企业管理中尚未彻底解决的难点问题。试用支持向量机,对表6.1中的企业家综合素质作出更为有效的评价,其中Ii为各项指标。

表6.1 企业家素质评价指标数据

alt

(数据来自:卢毅,彭燕.基于企业生命周期理论的企业家素质评价方法[J].科学学与科学技术管理.2006,04)


:在MATLAB中,向量机的训练、分类函数分别是svmtrain和svmclassify。一个向量机只能解决两类分类问题,而本例是一个三类分类问题且每类样本数较少,所以用三个分类器,核函数为较为简单的一阶多项式。

alt

例6.2 油藏的形成是动态地质条件时间与空间匹配的结果,是一个复杂的非线性系统。在油田勘探开发过程中,需要对油田系统建模,以利于调整部署和确定油田生产投资的规模与决策方向。目前,建立非线性系统模型并没有统一的方法,用得较多的有神经网络及遗传算法等技术。但是,这些算法的有效性都是建立在大量训练样本量的基础之上的,尤其是神经网络技术容易出现过学习等现象。

选取某油田某地区的油藏进行油气水分布规律的研究。该区各油井的不同特征见表6.2。试判断另外四口油井的情况。

表6.2 各油井各参数值

alt

(数据来自:刘斌,等.支持向量机在油层含油识别中的应用[J].控制工程.2006,Jul. 13(4))


:与例6.1类似的程序,用1代表水层,2代表干层,3代表差层,4代表油层,采用线性核函数,可求得分类结果如下。与实际结果相比,3号未知样分类错误。从训练样本集的数据可看出,第三类样本的第二个指标值较小,与第二类差别不大,所以在少训练样本的情况下,易发生错误。

alt

例6.3 手写体数字的识别在社会经济的许多方面有着广泛的应用。有多种技术可以实现对手写体数字的识别。试用支持向量机方法实现对手写体数字的识别。

:手写体数字的识别实际上就是一个多类的分类问题,因此利用支持向量机完全可以完成这项工作。

首先选取一定数目的0~9这10个数字的手写体数字图片作为训练样本,为了使其具有代表性,每个数字都应有相当数目的图片,图6.4即为其中的一组照片。由于初始图片中每个数字的区域大小不统一,而且不是二值图像,所以需要进行处理,以适应数学处理。即对每幅图片反色后进行二值化处理,以获得每个数字的特征向量值,并截取包含完整数字的最小区域,并将该区域转化成16×16像素大小的图像。转化后的图像是黑底白字的图,图中数字区域的像素为1,背景区域的则为0。

alt

图6.4 手写体数字照片

对所有的训练图像处理后,就可以构造并训练得到一系列支持向量机,并完成对0~9这10个数字的识别。

程序如下:

alt

支持向量机训练结束后,便可对未知数字手写体的图片进行测试。同样首先对未知数字手写体的图片进行反色、二值化、截取指定区域并转化成统一大小等步骤的处理,处理结束后,便可以用训练好的支持向量机进行识别:

alt

例6.4 在支持向量机的应用中,其中的核参数和惩罚系数的选择对结果有很大的影响。为了提高支持向量机的分类效果或回归预测精度,可以采用遗传算法、粒子群算法和蚁群算法等优化方法对其中的核参数和惩罚系数等参数进行优化。下面试用遗传种算法对数字手写体支持向量机的分类进行优化。

:首先编写如下的适应度函数。

alt

打开遗传算法的GUI,便可以进行计算。由于涉及图片的处理,计算速度较慢。可得到如下的计算结果:x=0.3273 0.1746。

再利用优化得到的参数,利用支持向量机进行识别,可以看出识别率得到了明显的提高。

例6.5 支持向量机不仅可以用于分类问题,也可以用于回归预测。考虑样本,其中(x1,y1),…,(xl,yl)是训练样本,鉴于大多数情况下样本呈非线性关系,估计函数f可按如下方法确定:将每一个样本点用一个非线性函数Φ映射到高维特征空间,再在高维特征空间进行线性回归,从而取得在原空间非线性回归效果,即回归函数f可表示为

f(x)=w·Φ(x)+b

其中,x∈Rn为输入向量,w∈Rn为权值矢量,b∈R为偏差。

为了得到后两个参数,采用结构化风险最小原则,可以将原来的问题转化为

alt

其中,║ω║2是描述函数f的复杂度,C>0是常量,用于决定模型复杂度和经验风险的折中度。ξialt是松弛变量,引入的ε是不敏感损失函数。

对于解上述凸优化问题,其核心思想是用拉格朗日乘子法把上面的优化问题化为其对偶形式:

alt

在此对偶式中引入核函数,使得在非线性映射函数Φ未知的情况下能够用高维空间的输入数据在高维特征空间完成内积运算。引入的核函数必须满足Mercer定理。

此优化问题可以用二次规则解决。由于支持向量机回归通过最小化避免了数据的欠拟合和过拟合,因此支持向量机是一个更为灵活和通用的解决回归问题的工具。

下面试用支持向量机对春运客流量进行预测。下列为某市火车站2003年春节前后20天的旅客数据。

alt

:选用前面18个数据作为训练值,后2个数据作为检验。

对于时间序列的预测,一般首先要确定时间窗口m的值,即利用前m个序列值来预测后面的序列值。可以采用求自相关系数来确定m。

alt

可以由r值确定自相关系数的大小,从而确定m值。在此例中选择m=4。这样就可确定输入数据矩阵:

alt

然后就可以用下列支持向量机回归函数进行预测:

alt

为了更好地得到预测结果,首先用遗传算法对支持向量机中的相关参数进行优化。编写下列适应度函数:

alt

打开遗传算法GUI界面,输入相关的参数就可以计算,得到如下的结果:

核参数sigma=8.64,惩罚系数C=19.77,μ=1.52。

利用上述参数进行预测,结果如下,预测精度可以满意。

alt

如果训练数据能更多些,并利用交叉法进行检验,则预测精度会更好。

例6.6 我国煤矿依据瓦斯涌出量分类的统计数据,高瓦斯矿井占35%,这些高瓦斯矿严重威胁着采煤工作面的安全。瓦斯涌出量的准确预测对于通风系统的设计、瓦斯防治、安全管理有着重要意义。表6.3是某煤矿回采工作面瓦斯涌出量与影响因素统计表,其中煤层深度、煤层厚度、煤层瓦斯含量、煤层间距、日进度、日产量分别表示为x1~x6,x0为瓦斯涌出量。试利用支持向量机对其进行预测。

表6.3 煤矿回采工作面瓦斯涌出量与影响因素统计表

alt

:将表中1~13组样本作为训练样本,14~18组样本作为检验样本,并利用最小二乘支持向量机LSSVM进行计算。

LSSVM(Least Square SVM)是标准SVM的一种新扩展,优化指标采用平方项,并用等式约束代替标准支持向量机的不等式约束,即将二次规划问题转化为线性方程组求解,降低了计算的复杂性,加快了求解速度和抗干扰能力。

LSSVM的求解线性方程组为

alt

其中,y=[y1,y2,…,ynTalt=[1,1,…,1]T,a=[a1,a2,…,anT,Ω为一方阵,其中Ωij=Φ(xi·xj)为核函数。

利用下载的LSSVMlab1.8进行计算。首先利用遗传算法对参数进行优化,得到优化参数,然后再利用支持向量机进行预测,精度可以满足要求。

alt