基于MATLAB的SVR回归模型的设计与实现TheDesignandImplementationofSVRRegressionModelBasedonMATLAB 学生姓名: 王新蕾 学生学号: 专业名称: 电子信息科学与技术 指导教师: 张艳(讲师)计算机与信息工程学院2014年6月10日独创性声明本人声明所呈交的
是本人在指导教师指导下进行的研究工作和取得的研究成果,除了文中特别加以引用标注之处外,论文中不包含其他人已经发表或撰写过的研究成果,没有伪造数据的行为。毕业论文作者签名:签字日期:毕业论文版权使用授权书本毕业论文作者完全了解学校有关保留、使用论文的规定。同意学校保留并向有关管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权天津城建大学可以将本论文的全部或部分内容编入有关数据进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本论文。(保密的毕业论文在解密后适用本授权说明)毕业论文作者签名:指导教师签名:签字日期:签字日期:摘要支持向量机是根据统计学习理论提出的一种新的学习方法,近年来受到了国内外学术界的广泛重视,并已在模式识别和函数估计中得到广泛应用。支持向量机理论的最大特点是由有限的训练集样本得到的小的误差保证对独立的测试集仍保持小的误差。从而通过支持向量机(SVM)理论,可以建立支持向量回归(SVR)预测模型,以解决各种实际问
。 SVR算法是模式识别中应用比较广泛的算法模型之一,它是支持向量机在函数逼近和回归估计中的应用。在SVR回归分析中,使用支持向量机可以使回归函数尽量平滑,其泛化能力强。 本文论述了支持向量回归的基本原理和思想,介绍了支持向量回归算法以及所用到的几种常见的核函数(即线性内核、多项式内核、径向基函数内核、高斯内核)。本设计主要实现的功能有:数据集的创建、内核函数的选取、参数的设置、训练集的回归、数据集的保存与打开。通过不同核函数的选取以及相应参数的设置对输入数据集进行回归。此模型主要解决非线性回归模型的预测。通过实验改变各个参数的不同取值对训练集进行回归,并分别统计出支持向量的个数,回归性能,程序运行时间。最后对回归的结果进行分析,得出各参数对回归性能的影响。关键词:支持向量回归;训练算法;核函数;线性判别ABSTRACTSupportvectormachine(SVM)isanewmethodofstudybasedonstatisticallearningtheorywhichhasattractedextensiveattentionsbyacademiccirclesbothathomeandabroadinrecentyears.Ithasbeenwidelyusedinpatternrecognitionandfunctionestimation.Thebiggestcharacteristicofsupportvectormachine(SVM)theoryisthatasmallerrorlimitedbythetrainingsetofsamplecanensuretheindependenttestset’ssmallerror.Thusasupportvectorregression(SVR)forecastingmodelcanbebuiltbysupportvectormachine(SVM)theoryanditcansolvevariouspracticalproblems.SVRalgorithmmodelisoneofpatternrecognitionalgorithm,whichismorewidelyusedinapproximationoffunctionandtheapplicationoftheregressionestimate.IntheSVRregressionanalysis,usingsupportvectormachine(SVM)cansmoothregressionfunctionasfaraspossible.Itsgeneralizationabilityisstrong.Thispaperdiscussesthebasicprincipleofsupportvectorregressionandintroducessupportvectorregressionalgorithmandseveralcommonkernelfunctions(thelinearkernel,polynomialkernelandradialbasisfunction(RBF)kernel,theGaussiankerneletc.).Thisessaysuccessfullymakesthesefunctionswork:thecreationofdatasets,theselectionofkernelfunction,parametersettings,returnofthetrainingset,thepreservationandopenofthedataset.Weaccomplishthereturnofinputofdatasetthroughtheselectionofdifferentkernelfunctionsandthesettingofcorrespondingparameter.Thismodelismainlytosolvethenonlinearregressionmodelprediction.Then,thesameissueisdonethroughtheexperimenttochangethevaluesofdifferentparameters,andthestatistics,thenumberofsupportvectorregression,performanceofprogramrunningtimeareaccounted.Finally,wehaveanalysistheresultsofregressionandgainedtheinfluenceofvariousparametersonthereturnperformance.Keywords:SupportVectorRegression;TrainingAlgorithms;KernelFunction;LinearDiscriminationAnalysis目录第1章绪论 1课题研究背景 1国内外研究现状 1课题研究目的 2课题研究使用的开发工具 3论文组织结构 3第2章支持向量机回归原理 5支持向量机 5支持向量回归 5回归初步形式 5线性支持向量回归 6非线性支持向量回归 6支持向量回归核函数 7支持向量回归算法 8支持向量回归的算法的基础 8回归算法 10关于算法的几点说明 11第3章基于Matlab实现SVR的总体设计 13总体设计思想 13功能模块的划分及相关流程图 13主要功能模块的划分 13实现程序的主要
图 13支持向量回归模型的流程图 14第4章基于支持向量回归模型的实现 16模型的功能描述 16运行结果 17主界面 17功能描述界面 17运行过程及结果 18命令窗口的显示结果 244.3系统的性能分析及结论 24第5章总结 27致谢 28参考文献 29第1章绪论支持向量机(SVM)是在统计学习理论基础上提出的一种新的学习方法。支持向量机(SVM)是一种比较好的实现了结构风险最小化思想的方法。它的优点是理论完备、训练时间短、全局优化强、适应性好、泛化性能好等。SVM已经成为目前国内外研究的热点。本课题研究的SVR是支持向量机在函数回归中的应用。课题研究背景基于支持向量的学习是现代智能技术中的重要方面,研究从观测数据(样本)出发寻找规律,利用这些规律对未来数据或无法观测的数据进行预测.包括模式识别、神经网络等在内,现有支持向量机器学习方法共同的重要理论基础之一是统计学.传统统计学研究的是样本数目趋于无穷大时的渐近理论,现有学习方法也多是基于此假设.但在实际问题中,样本数往往是有限的,因此一些理论上很优秀的学习方法实际中表现却可能不尽人意。 与传统统计学相比,统计学习理论(StatisticalLearningTheory或SLT)是一种专门研究小样本情况下机器学习规律的理论.V.Vapnik等人从六、七十年代开始致力于此方面研究,到九十年代中期,随着其理论的不断发展和成熟,也由于神经网络等学习方法在理论上缺乏实质性进展,统计学习理论开始受到越来越广泛的重视。 统计学习理论是建立在一套较坚实的理论基础之上的,为解决有限样本学习问题提供了一个统一的框架.它能将很多现有方法纳入其中,有望帮助解决许多原来难以解决的问题(比如神经网络结构选择问题、局部极小点问题等);同时,在这一理论基础上发展了一种新的通用学习方法——支持向量机(SupportVectorMachine或SVM),它已初步表现出很多优于已有方法的性能。通过结果风险最小化准则和核函数方法,较好地解决了模式分类器复杂性核推广性之间的矛盾,引起了模式识别领域学者的极大关注。从此迅速的发展起来,现在已经在许多领域(生物信息学,文本分类、手写体识别、人脸检测等)都取得了成功的应用,并且在研究过程中,取得了与传统方法可比或更好的结果,还丰富了自身的内容(如快速训练算法等),从而更加推动了它在其他模式识别领域的应用。由于其出色的学习性能,该技术已成为当前国际机器学习界的研究热点,在模式识别、回归估计、函数逼近等领域有了广泛的应用。本课题就是研究它在回归估计中的应用。国内外研究现状支持向量机一经提出,就得到国内外学者的高度关注。虽然支持向量机发展时间很短,但是由于它的产生是基于统计学习理论的,因此具有坚实的理论基础。近几年涌现出的大量令人瞩目的理论研究成果,更为其应用研究奠定了坚实基础。如Anthonyetal.(1999)等人给出了关于硬邻域支持向量机学习误差的严格理论界限,Shawe-Taylor(2000)和Cristianini(2000)也给出了类似的关于软邻域支持向量机和回归情况下的误差界限;Westonetal.(1998)和Vapnik(1995,1998)等研究了支持向量机的泛化性能及其在多值分类和回归问题的扩展问题;Smola(1998)和Schoelkopf(1999)提出了支持向量机一般意义下的损失函数数学描述;脊回归是由Tikhonov提出的一种具有特殊形式的正则化网络,Girosi(1990)、Poggio(1975)等将其应用到正则化网络的学习中,Smolaetal.(1999)研究了状态空间中脊回归的应用,Girosi(1990)、Smola(1998)、Schoelkopf(1999)等讨论了正则化网络和支持向量机的关系。随着支持向量机理论上深入研究,出现了许多变种支持向量机,如Smolaetal.(1999)提出的用于分类和回归支持向量机。另外,一些学者还扩展了支持向量机概念,如Mangasarian(1997)等人的通用支持向量机(GeneralisedSVMs)。虽然SVM方法在理论上具有很突出的优势,但与其理论研究相比,应用研究尚相对比较滞后,到目前,SVM已用于数据分类、回归估计、函数逼近等领域.应用最为广泛的当属模式识别领域,在模式识别方面最突出的应用研究是贝尔实验室对美国邮政手写数字库进行的实验,这是一个可识别性较差的数据库,人工识别平均错误率是%,用决策树方法识别错误率是%,两层神经网络中错误率最小的是%,专门针对该特定问题设计的五层神经网络错误率为%(其中利用了大量先验知识),而用三种SVM方法得到的错误率分别为%、%和%,且其中直接采用了16×16的字符点阵作为SVM的输入,并没有进行专门的特征提取。说明了SVM方法较传统方法有明显的优势,同时也得到了不同的SVM方法可以得到性能相近的结果。实验还观察到,三种SVM求出的支持向量中有80%以上是重合的,它们都只是总样本中很少的一部分,说明支持向量本身对不同方法具有一定的不敏感性(遗憾的是这些结论仅仅是有限的实验中观察到的现象,如果能得到证明,将会使SVM的理论和应用有更大的突破)。围绕这一字符识别实验,还提出了一些对SVM的改进,比如引入关于不变性的知识、识别和去除样本集中的野值、通过样本集预处理提高识别速度等,相关的应用还包括SVM与神经网络相结合对笔迹进行在线适应.除此之外,MIT用SVM进行的人脸检测实验也取得了较好的效果,可以较好地学会在图像中找出可能的人脸位置.其它有报道的实验领域还包括文本识别、人脸识别、三维物体识别、遥感图像分析等,在函数回归估计方面主要用于非线性系统识别问题、时间序列预测、机场游客吞吐量的预测问题及多维自由曲面的重建问题等。课题研究目的此课题的设计目的在于训练及提高自己能综合运用所学专业知识分析、解决实际问题的能力;掌握文献检索、
查询的基本方法以及获取新知识的能力;系统的利用支持向量回归相关理论知识和编程技能,利用MATLAB开发平台和相关的统计学工具箱及支持向量回归算法,设计改进并实现基于MATLAB的SVR回归模型的实验系统,通过运用M文件编写回归算法、GUI组件编写主界面、编写程序和装载数据文件完成实验界面的各个功能。从而熟悉了MATLAB编程、GUI组件编写用户界面以及回归算法的程序实现,同时也了解了支持向量回归算法在实际问题预测模型中的应用。课题研究使用的开发工具此课题主要运用MATLAB开发平台,MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台。它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或编程以完成各自的计算。本课题研究用MATLAB程序编写回归算法和GUI组件编写用户界面来实现支持向量回归模型的设计。开发工具的优点:1.编程效率高:Matlab是一种面向科学与工程计算的高级语言,允许用数学形式的语言来编写程序,这样就更接近我们书写计算算法公式的思维方式。Matlab语言是一种解释执行的语言,与其他语言相比,它把编辑,编译,连接和执行融为一体,提高了程序的运行速度,同时也便于修改和调试。2.高效方便的矩阵和数组运算:在回归过程中,输入的数据集,运算的变量以及很多参数都是以数组,向量形式出现的,运算这些数据复杂,易出错而且费时,所以方便高效的数组向量运算就显得尤为重要,而Matlab恰好具有这样便利的功能。并且Matlab语言还像其他语言一样规定了矩阵的算术运算符,关系运算符,逻辑运算符,条件运算符及赋值运算符。这给编写程序带来很大方便。在支持向量回归算法中包含了大量的数学模型和复杂的运算公式,所以用Matlab语言进行代码编写比较简单,编程效率比较高。3.方便的绘图功能:本课题借助于Matlab的绘图功能,能较为方便的建立支持向量回归过程中的演示图形。Matlab有一系列绘图函数命令,功能强大,使用方便。在执行绘图函数时是通过使用不同的图形对象来实现图形创建功能的这些图形对象包括直线、文本、曲面等等。Matlab创建一个图形对象时总会给该对象制定一个独一无二的标识符,这个标识符就称为句柄。通过使用句柄,用户可以方便地访问句柄所指定的对象,通过修改对象的属性使图形完全符合用户的要求。论文组织结构本论文主要针对回归型SVM在算法性能和推广能力两方面进行一些探讨,全文共分5章,安排如下:第1章主要研究SVM研究背景和国内外研究现状,介绍了课题研究背景以及可以研究所用的开发工具。第2章详细推导了线性情况下回归机算法,然后引入了核函数将线性算法推广到非线性算法。还介绍了VC维数、结构风险最小化。第3章此章介绍了本课题的总体设计思路和功能模块的划分及相关流程图。第4章介绍支持向量回归模型的实现,及结果分析。第5章对支持向量回归进行了分析与总结。第2章支持向量机回归原理回归预测研究从观测数据出发寻找规律,利用这些规律对未来数据或无法观测的数据进行回归预测。回归预测的目的是根据给定的训练样本集来估计某系统输入和输出之间的依赖关系,即寻找最优函数,使它能够反映训练集的数据走向趋势,从而实现对未知输出做尽可能准确的预测。支持向量机支持向量机是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中有许多特有的优势,并能推广应用到函数拟合等其他机器学习问题中[。支持向量机方法是建立在统计学习理论的VC维原理基础上的,根据有限的样本信息在模型的复杂性和学习能力之间寻求最佳折衷,以期获得最好的推广能力。VC维数:模式识别方法中VC维的直观定义是:对一个指示函数集,如果存在h个样本能够被函数集中的函数按所有可能的2h种形式分开,则称函数集能够把h个样本打散;函数集的VC维就是它能打散的最大样本数目h。若对任意数目的样本都有函数能将它们打散,则函数集的VC维是无穷大。有界实函数的VC维可以通过用一定的阈值将它转化成指示函数来定义。VC维反映了函数集的学习能力,VC维越大则学习机器越复杂(容量越大),目前尚没有通用的关于任意函数集VC维计算的理论,只对一些特殊的函数集知道其VC维。Vapnik和Chervonenkis在1968年又发现了下面的规律:VC维对于一个指示函数集,如果其生长函数是线形的,则它的VC维为无穷大;而如果生长函数以参数为h的对数函数为界,则函数集的VC维是有限的且等于h。VC就是取Vapnik和Chervonenkis名字的首字而成。所以,学习机器所实现的指示函数集的VC维有限就是ERM方法一致性的一个充分必要条件,这一条件不依赖于概率测度。而且,一个有限的VC维意味着快的收敛速度。支持向量回归在引入支持向量回归之前,首先要对回归问题进行形式化,并因此抽象出学习机的形式化概念。线形情形,支持向量回归问题可形象的理解为在误差带内寻求一个最为平坦的直线,此直线回归训练,并具有最小的损失。对于非线形情形,同支持向量机识别,通过向高维空间映射,将问题转化为高维空间(Hilbert空间)的线形回归问题,并且使用核函数来求得最优解。回归初步形式回归问题是个古老的数学问题,在工程上也有大量的应用背景。在传统经典的回归中,尽管存在着多种估计的方法,但研究的大部分集中在最小二乘法。这种分析方法称为综合分析,其主要目的是将数据聚集在一起,并综合出数据的一个拟合模型。接着同样重要的一个阶段是案例分析。这里数据被用于检验拟合模型对被研究的关系是否合适、有用。其结果可能导致对原先指定的拟合模型的修改,此后,回复至综合分析。在具体实施中,则大量的借助统计学的理论和技术。如参数估计与假设检验等一些知识。而本设计主要讨论的回归方法则侧重于Vapnik的统计学习理论,从问题的模型确立到问题解决途径上可能和经典的回归不大一样,但本质是一致的。回归问题可形式化为:给定一个训练集合,其元素有某个未知的分布观测得到(此处的观测可能夹杂某种噪声):with和一个函数族基本回归问题是要找到一个函数,此函数风险最小化表达式:其中,C是损失函数,它指出和之间的差错将如何被惩罚,因为未知,不能直接对进行估值,而是要通过计算如下的经验风险:并通过对R进行限界。其中为所谓的泛化错误上界,根据Vapnik的理论,它依赖于用来进行回归的函数族。线性支持向量回归支持向量回归建立在统计学学习理论的基础之上,并维持以上提出的学习机的模型但采取完全不同的策略。在这里取为维超平面:损失函数一般有多种形式,根据实际问题的不同可选用不同的损失函数。此处给一般情形:含有误差带的损失函数,这样的函数满足以下形式:并且对非0时的损失函数要求具备凸性。 学习的结果使得在的周围形成一个精度为的误差带。其线性支持向量回归机的结果是线形的。非线性支持向量回归对于非线性回归,保持以上的策略不变,但首先对输入数据进行非线性预处理。使用非线性映射把数据从原空间映射到一个高维特征空间,再在高维特征空间进行线性回归。同理,在非线性空间中也只考虑高维特征空间的点积运算:,而不必明确知道是什么。其关键问题是核函数的采用。此时,非线性支持向量机回归具有以下模型:取为:损失函数和能力控制策略同线性支持向量回归,其求解结果具有如下形式:因此,支持向量机回归通过将最小化经验风险和能力控制规约在一个目标中,一并将其转化为一个凸二次优化问题的求解途径不仅实现了结构风险最小化的原则,而且由于严格的凸性要求使问题求解在可行域中总能搜索到最优解,而不会陷入局部最小。在非线性情形,使用核函数技巧,通过只计算输入空间的数量积避免了维数灾难问题。从求解结果我们可以看出,最终的解,决定于输入模式的数量积,而与输入模式的维数无关,其计算规模正比于输入模式中支持向量的个数。因而可有效地处理高维空间的问题,而不受到维数的限制。支持向量回归核函数支持向量机的一个引人注目的特点是用核函数代替向量间的内积运算来实现非线性变换,而不需要非线性的具体形式。研究人员根据这一思想改造经典的线性算法并构造出对应的基于核函数的非线性形式。支持向量回归模型最重要的一个参数就是核函数。选择什么样的核函数,就意味着将训练样本映射到什么样的空间去进行线性划分。支持向量机回归算法的技巧在于不直接计算复杂的非线性变换,而是计算非线性变换的点积,即核函数,从而大大简化了计算。通过把核函数引入到一些学习算法,可以方便地把线性算法转换为非线性算法,我们将其与支持向量机一起称为基于核函数的方法。在高维特征空间实际上只需要进行点积运算,可以用原空间中的函数实现的,甚至没有必要知道变换的形式。根据泛函的有关理论,只要一种核函数满足Mercer条件,它就对应某一变换空间中的点积。因此,在最优分类面中采用适当的点积函数就可以实现某一非线性变换后的线性分类,而计算复杂度却没有增加。张铃证明了核函数存在性定理,并提出了寻找核函数的算法。核函数存在性定理表明:给定一个训练样本集,就一定存在一个相应的函数,训练样本通过该函数映射到高维特征空间的相是线性可分的。进一步研究了支持矢量机的支持向量集与核函数的关系,研究表明对非线性可分情况,对一个特定的核函数,给定的样本集中的任意一个样本都可能成为一个支持向量。这意味这在一个支持向量机下观察到的特征在其它支持向量机下(其它核函数)并不能保持。因此,对解决具体问题来说,选择合适的核函数使很重要的。SVM由训练样本集和核函数完全描述,因此采用不同的核函数就可以构造实现输入空间中不同类型的非线性决策面的学习机,导致不同的支持向量算法。本课题研究的几种核函数如下:线性内核多项式内核径向基函数内核Bsplines内核支持向量回归算法支持向量回归的算法的基础1.寻求方向约束最优化的一种方法是在可行空间按一定的方向逐步搜索,逼真最优点,这就涉及到寻求最优方向的问题。对给定问题的可行域S中点x,对于某个非零n维向量存在,当时使得:的方向被称为x处的寻优方向,而对于正定的归整约束,理论上可保证在一定的迭代次数后收敛。2.对偶差另一种约束最优化的方法是从对偶理论入手,利用对偶差和KKT条件来寻找最优点。对于可行的主变量和对偶变量,凸最小化问题的主目标函数的解常常比(凸最大化的)对偶目标函数的解要大。当且仅当在最优化解处这两个解才相等。因此对偶差常被作为衡量目标函数变量的当前解和最优解距离的一种度量,此理论来自Lagrange函数的鞍点特性。以此为基础的算法则通过逐步加强KKT条件,并通过对偶差来进行评估,来逼真最优点。3.不敏感损失函数支持向量机方法是从解决模式识别问题发展起来的,在支持向量分类机中,一般来说,可以用少量的支持向量来表示决策函数,即具有稀疏性。当把该方法推广到回归问题时,很重要的一点就是希望找到合适的支持向量回归(SVR)算法,仍然保持这个性质。从上述回归问题的数学提法可以看出,为建立算法,需要选择适当的损失函数。现介绍回归估计中最常见的一种损失函数,它可以保持稀疏性。不敏感损失函数其中,这里是事先取定的一个正数,不敏感损失函数的含义是,当x点的观测值y与预测值之差不超过给定的时,则认为在该点的预测值是无损失的,尽管预测值和观测值y可能并不完全相等,如下面损失函数图像2-1所示。图2-1损失函数图象如果为单变量线性函数,当样本点位于两条虚线之间的带子里时,则认为在该点没有损失,我们称两条虚线构成的带子为带。只有当样本点位于带之外时,才有损失出现,例如,下图2-2中处的损失为图2-2不敏感损失带容易看出,不敏感损失函数有一个特点:对样本点来说,存在着一个不为目标函数提供任何损失值的区域,即带。这个特点是其他许多损失函数并不具备的。我们可以期望,在带内的样本点,不会出现在决策函数中。回归算法利用核函数将输入数据映射到高维特征空间(通常是无限维),在特征空间实现线性回归,估计函数具有如下形式:这里,映射到特征空间,表示特征空间中的内积,且为从训练数据集D估计函数,典型的支持向量回归最小化正则化风险泛函:这里正则化参数为正数,损失函数选择为不敏感损失函数,形式如下:可以通过解二次规划的优化问题来最小化正则化风险泛函。解可以表达为在特征空间与函数的线性组合有关的形式:这里系数通过解二次规划问题确定,对于的点称为支持向量。核函数对应映射到特征空间的数据的内积,即:核函数可以是任意满足Mercer条件的对称函数,因此,估计函数也可以具有如下形式:因此支持向量的拓扑结构如下图2-3所示:图2-3支持向量回归拓扑图对于,试图求解如下有约束的二次规划问题:这里C是待确定的常数,是松弛变量,同时首先要先设定的值。关于算法的几点说明1.算法的收敛性说明根据Osuna的理论,在实现算法中每一步迭代都将减少目标函数的值,进而保证了算法的收敛性。并且在算法中利用了许多策略和一些启发式规则来进行联合优化,进一步充分保证了算法的收敛速度。2.算法元素扫描启发式规则对于非敏感损失函数,KKT条件为:和由此进一步推出关于取值的三种情形:数据位于误差带外数据位于误差带上数据位于误差带内3.算法中的关于KKT条件的判断便是依据上面三式外循环首先在整个数据集合上扫描违反KKT条件的元素,当在整个数据集合上扫描一遍之后,外循环开始在非边界元素(Lagrange乘子不为0和C)集合上扫描违反KKT条件的元素,直至所有非边界元素都以的精度满足KKT条件。然后外循环重新在整个数据集合上扫描。外循环如此交替在整个数据集合上进行一次扫描和在非边界元素集合上进行多遍扫描,直至算法终止。4.算法的效率在算法运行过程中,CPU的时间集中在最有可能违反KKT条件的元素集合,边界元素可能停留在边界,而非边界元素将会在其它元素被优化的同时向边界移动。若算法在非边界元素集合上迭代直至此集合自相容,然后再在整个集合上扫描寻找在非边界元素优化的同时变为违反KKT条件的边界元素。这样可保证算法的效率。第3章基于Matlab实现SVR的总体设计总体设计思想支持向量回归的最终就是寻求一目标函数,并使得其损失函数的数学期望最小,这样才能得到最准确的回归曲线以反映训练集的数据走向趋势。该回归算法主要解决非线形回归预测问题,对训练集采用线性、非线性核函数进行回归。通过对各种参数的设置得到不同性能的回归曲线,以便于熟悉其中参数对回归算法的影响。功能模块的划分及相关流程图主要功能模块的划分从总体上说,按照需求分析,可以把要实现的功能划分为三个主要的功能模块:1.GUI图形用户界面模块,即系统的主界面。2.实验简介模块,简单说明各个函数的功能。3.支持向量回归模型设计的实验模块,实现支持向量回归的各种功能(手动创建数据集、装载现有的数据集、设置各种相应的参数、保存数据集、进行回归演示)。实现程序的主要框架图 下图3-1中说明了程序设计的总体框图,并没有把所有的函数列出来,只是列出了主要的程序。:实现用户图形界面模块(主界面)。:查看系统的各实现功能的简单说明。:实现了支持向量回归的演示实验模块。:支持向量回归的计算。:一维空间回归作图问题。:输出与输入之间的转化计算。:输入,输出异常。:内核函数。图3-1程序框图支持向量回归模型的流程图支持向量回归模型的总流程图如图3-2所示。图3-2支持向量回归模型总的流程图第4章基于支持向量回归模型的实现模型的功能描述本课题是基于支持向量回归模型的设计与实现,已经按照需求实现了各种功能。具体实现的功能如下:1)创建一个GUI图形用户界面即主界面,主界面按钮及菜单功能描述如下:按钮功能介绍设置路径:在matlab中,运行任何的文件都必须位于当前路径或搜索路径内。此按钮将当前目录下的子目录添加为搜索路径,使得子目录中的文件可以被当前目录中的文件调用运行。否则,系统将不能正常工作。由于本实验的各个函数在包含在一个文件夹中因而也可以不设置路径。进入实验简介:简单了解SVR,查看各个函数要实现的基本功能。进入支持向量回归模型演示实验:进行回归模型演示(具体的各个功能块见下(2)中有详细介绍)。退出实验:退出系统。该主界面点击实验简介或演示实验都将出现动态的等待进度条,此功能没有实际用途但可以使设计美观。2)通过编写M文件文件,实现显示支持矢量机机器学习模型的功能。(1)下拉式菜单核函数的选取:用户通过此菜单选择一个核函数,然后进行回归实验。(2)编辑框输入参数值惩罚系数C,其初始值设定为20,设置值一般大于,对于该参数对回归性能的影响在后面说明。不敏感系数,其初始值设为,参数对回归性能的影响也在后面介绍。(3)编辑框显示信息显示统计支持向量的个数,回归性能。(4)按钮装载数据:进行已存在数据文件的装载。数据输入:用户手动创建数据,用鼠标点击将在坐标轴上产生点集。清除数据:用户想清除当前数据时点击该按钮,以便重新创建数据集。保存数据:对创建的数据保存,以便下一次直接装载调用。回归:对创建的数据集或装载的数据集进行回归,得到回归曲线。3)Matlab命令窗口在命令窗口我们将会获得算法运行时间,支持向量的个数,回归性能。运行结果主界面运行结果如下图4-1所示。图4-1主界面模块运行结果功能描述界面运行结果如下图4-2所示。图4-2实验简介运行界面运行过程及结果1支持向量回归模型实验运行界面如图4-3所示。图4-3支持向量机回归模型实验界面2手动输入数据,并保存,如下图4-4所示。图4-4手动输入数据3装载上面保存的数据,如下图4-5所示。图4-5装载数据装载aa数据文件后的数据显示,如下图4-6所示。图4-6装载数据后的显示结果3使用不同的核函数的回归结果(1)线性核函数线性核函数的惩罚系数设为10,不敏感系数为,此时支持向量数24,回归性能%,如下图4-7所示。图4-7回归结果图改变不敏感系数增大为,此时支持向量个数为22,回归性能%,如下图4-8所示。支持向量数减少,回归性能下降。图4-8改变参数取值后的回归图(2)多项式核函数多项式核函数,设置此时多项式次数为3,如下图4-9所示。由回归结果看出次数偏低,性能不是很好。图4-9选择多项式核函数的回归图形增大多项式次数Degree为5,并减少不敏感系数至,回归性能提高到%,如下图4-10所示。图4-10改变参数取值后的回归图形(3)高斯径向基核函数高斯径向基核函数Sigma(RBF宽度)为惩罚系数10,不敏感参数为,此时支持向量的个数为14,回归性能%,如下图4-11所示。图4-11选择高斯核函数的回归图形现增大惩罚系数C至40,其它参数不变,支持向量数增多到15,回归性能提高到%,如下图4-12所示。图4-12改变参数取值后的回归图形降低不敏感系数至,回归性能提高到%,如下图4-13所示。图4-13改变参数后的回归图形增大不敏感系数为,回归性能明显下降,为%,如下图4-14所示。图4-14改变参数取值后的回归图形(4)结论本实验选取了线性核函数、多项式核函数和高斯径向基核函数,这三个核函数进行实验,改变其参数(惩罚系数、不敏感系数、RBF宽度以及多项式次数),对回归带来了明显的影响。通过此实验充分的显示了,不同的核函数其回归性能差别,以及其参数对回归的影响。命令窗口的显示结果以线性核函数为例,命令窗口显示如下图4-15所示。图4-15命令窗口显示结果算法运行时间,支持向量数24,性能%。由于手动输入的训练集数量相对较少,同时算法的运行效率比较高,所以算法运行时间一般很短。4.3系统的性能分析及结论 支持向量回归方法性能的好坏往往依赖于核函数及其宽度系数,惩罚因子C以及不敏感系数等参数的选择。 不敏感系数原则上反映了SVM对数据中躁声幅度的容许界限.为选定适当的值,应考虑采集样本时可能带有的躁声分布的状况.若躁声服从正态分布,当密度函数分布较宽(即方差较大)时,宜采用较大的,而当分布较窄时,应选用较小的。应用SVM训练时,不敏感系数的大小控制支持向量个数的多少,当较小时,参与回归的支持向量将增多,同时训练时间也有所增加。在不敏感系数过小时,可能导致过拟合;而过大时则可能造成欠拟合。此外,不敏感系数还控制模型的泛化推广能力。在实际求解中,的取值过小,支持向量的数目变化不大,但模型的求解时间将增加。取值过大,其精度降低,推广性能差。因此,不敏感系数的取值一般在到之间。 惩罚系数C的选择也将影响回归函数的拟合精度与预报能力,通常拟合误差随C的增大而下降,但下降的速度也越来越小,当C增至一定值后,其下降将渐平缓,几乎不再随C的增大而减小。因是SVM只要求拟合误差超过允许精度的部分降至最小所致。同时,预测误差也将随惩罚系数C的增大而下降,但并非单调,当C增大到一定值后,预测误差也可能有所上升,这也是过拟合所致。另外训练时间也将随C的增加而上升。 通过将映射函数内积运算替换为核函数,使输入数据映射到高维空间中进行线性拟合来得到非线性回归函数。因此,对于非线性问题还存在核函数及其参数的影响。下面对使用几种常见的核函数的参数对回归性能的影响比较:表4-1线性核函数 惩罚系数C 不敏感系数 输入向量个数 支持向量个数 回归性能 10 0.01 26 24 % 10 0.005 26 25 % 1 0.005 26 25 % 0.005 26 26 100%结论:随着不敏感系数的减少(在一定的范围内)支持向量的个数增多,回归性能下降。惩罚系数C从增至1,其支持向量个数减少,性能下降。表4-2多项式核函数 多项式次数 惩罚系数C 不敏感系数 输入向量个数 支持向量个数 回归性能 3 10 26 26 100% 3 10 0.01 26 23 % 4 10 0.01 26 24 % 5 10 0.01 26 23 %结论:从表中可以看出不敏感系数的增大,支持向量个数减少,对应回归性能下降。多项式次数的选择要看数据的分布,并不是次数越高,回归性能越好。表4-3高斯径向基核函数 径向基宽度 惩罚系数C 不敏感系数 输入向量个数 支持向量个数 回归性能 0.1 10 0.01 26 20 % 0.3 10 0.01 26 17 % 0.5 10 0.01 26 22 % 1 10 0.01 26 24 % 1.2 10 0.01 26 22 % 1.2 10 0.005 26 24 %结论:由图可以看出径向基宽度对性能的影响并不是简单的单调递增或是递减。径向基宽度从到再到,其支持向量的个数先减少再增加。其不敏感系数从减小到,支持向量个数增加,回归性有所提高。第5章总结基于支持向量机方法的回归估计以可控制的精度逼近任一非线性函数,同时具有全局最优、良好的泛化能力等优越性能,因此支持向量机的应用非常广泛。目前支持向量机主要应用在金融时间序列预测(如股票预测、期货预测等)和非线性系统参数辨识、建模与控制等一些方面。本文针对回归问题,描述了支持向量机的基本方法、理论、回归算法及当前国内外对于支持向量回归的研究内容、方向。总结了设计支持向量回归机的模型选择方面的进展。模型选择包括核函数的选择、模型正则化参数C、不敏感参数ε等方面内容。核函数的选择是支持向量机理论研究的一个核心问题。在实际应用中,RBF核函数是目前在支持向量机中被应用得最广泛的一种核函数。对于初学者来说,RBF核无疑是优先考虑的核函数之一。当然,在实际应用中也可以采用多种核函数进行比较研究,通过模型的性能指标,选出推广性能最优的一种核函数。在固定的核函数情况下,模型参数的调整与确定又成为支持向量回归机设计的关键一环。模型参数调整方法包括经验方法和理论方法等方面。最后还对几种常见的核函数的不同参数、回归模型的参数对支持向量个数和回归性能做了比较。如何针对特定问题,选择最佳的核函数和最优的一组模型参数仍是一个难以解决的问题。模型选择的
作为支持向量机及其应用的核心内容之一,有待进一步研究。致谢 一转眼,大学四年已经接近尾声了,当自己怀着忐忑不安的心情完成这篇毕业论文的时候,自己也从当年一个懵懂的孩子变成了一个成熟的青年,回想自己的十几年的求学生涯,满足,充实,是一个结束,更是一个新的开始。 首先,从小学到大学的生活费和学费就不是一个小数目,父母的支持与付出我看在眼里,疼在心里,十几年,实属不易。感谢爸爸妈妈对我的悉心照料,没有你们的辛苦劳作就没有我今天的成绩,走出校门后又是一片新的天地,我会把这些年您们在我身上的付出加倍偿还给二老的。 其次,我要感谢所有任课老师在这四年来给自己的指导和帮助,是他们教会了我专业知识,教会了我如何学习,教会了我如何做人。正是你们,我才能在各方面取得显着的进步,在此向你们表示我由衷的谢意,并祝所有的老师培养出越来越多的优秀人才,桃李满天下。 再次,我要感谢所有与我共度四年大学时光的同学们,遇见你们这些可爱的人是我今生的荣幸,谢谢你们在学习和生活上对我的帮助,谢谢你们对我的理解和支持,我们永远都是一家人。 最后,我要着重感谢我的指导老师张艳老师在我大学的最后学习阶段——毕业论文阶段给予我的指导,从最初的定题,到资料收集,到写作、修改,到论文定稿,老师给了我耐心的指导和无私的帮助。为了指导我们的毕业论文,她放弃了自己的休息时间,这种无私奉献的敬业精神令人钦佩,在此我向老师表示我诚挚的谢意。 在这篇论文的写作过程中,我深感自己的水平还远远不够,生命不息,学习不止,人生就是一个不断学习和完善的过程,希望自己在今后的道路上能更上一层楼。不抛弃,不放弃!参考文献[1]刘霞,卢苇.SVM在文本分类中的应用研究[J],计算机教育,2007.1.[2]曾水玲,徐蔚鸿.基于支持向量机的手写体数字识[J].计算机与数字工程,2006,34(10).[3]史忠植.知识发现[M].北京:清华大学出版社;2002.1.[4]李红莲,王春花,袁保宗.一种改进的支持向量NN-SVM[J].计算机学报,2003,26(8).[5]张清河,肖柏勋等.基于支持向量机的介质圆柱体逆散射问题研究[J].电波科学学报,2007.[6]张曦,阎威武等.亚基于核主元分析和邻近支持向量机的汽轮机凝汽器过程监控和故障诊断[J].中国电机工程学报,2007.5.[7]孙士博.核独立成分分析在心律失常模式分类中的应用[D].燕山大学硕士论文,2009.4.[8]罗晓牧,周渊平,王国利.SVM自适应波束成形算法[J].电路与系统学报,2005.12.[10]张铃.支持向量机理论与基于规划的神经网络学习算法[J].计算机学报,2001,24(2).[11]张学工.关于统计学习理论与支持向量机[J].自动化学报,2000,26(1).[12]DaiLiu-ling,HuangHe-yan,ChenZhao-xiong.TernarysequentialanalyticoptimizationalgorithmforSVMclassifierdesign[J].AsianJournalofInformationTechnology.2005,4(3).[13]薛宇玲.支持向量机在煤矿地下水位预测中的应用[D].西安科技大学硕士论文,2006.4.[14]宋晓峰.优生演进优化和统计学习建模[D].浙江大学博士论文,2003.5.[15]DINGShi-fei,XULi,ZHUHongetal.Researchandprogressofclusteralgorithmsbasedongranularcomputing[J].InternationalJournalofDigitalContentTechnologyanditsApplications,2010,4(5).