完整版基于MATLAB的SVR回归模型的设计与实现毕业设计.docx
- 文档编号:16229937
- 上传时间:2023-07-11
- 格式:DOCX
- 页数:32
- 大小:1.87MB
完整版基于MATLAB的SVR回归模型的设计与实现毕业设计.docx
《完整版基于MATLAB的SVR回归模型的设计与实现毕业设计.docx》由会员分享,可在线阅读,更多相关《完整版基于MATLAB的SVR回归模型的设计与实现毕业设计.docx(32页珍藏版)》请在冰点文库上搜索。
完整版基于MATLAB的SVR回归模型的设计与实现毕业设计
基于MATLAB的SVR回归模型的设计与实现
TheDesignandImplementationofSVRRegressionModelBasedonMATLAB
学生姓名:
王新蕾
学生学号:
专业名称:
电子信息科学与技术
指导教师:
张艳(讲师)
计算机与信息工程学院
2014年6月10日
独创性声明
本人声明所呈交的毕业论文是本人在指导教师指导下进行的研究工作和取得的研究成果,除了文中特别加以引用标注之处外,论文中不包含其他人已经发表或撰写过的研究成果,没有伪造数据的行为。
毕业论文作者签名:
签字日期:
毕业论文版权使用授权书
本毕业论文作者完全了解学校有关保留、使用论文的规定。
同意学校保留并向有关管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权天津城建大学可以将本论文的全部或部分内容编入有关数据进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本论文。
(保密的毕业论文在解密后适用本授权说明)
毕业论文作者签名:
指导教师签名:
签字日期:
签字日期:
摘要
支持向量机是根据统计学习理论提出的一种新的学习方法,近年来受到了国内外学术界的广泛重视,并已在模式识别和函数估计中得到广泛应用。
支持向量机理论的最大特点是由有限的训练集样本得到的小的误差保证对独立的测试集仍保持小的误差。
从而通过支持向量机(SVM)理论,可以建立支持向量回归(SVR)预测模型,以解决各种实际问题。
SVR算法是模式识别中应用比较广泛的算法模型之一,它是支持向量机在函数逼近和回归估计中的应用。
在SVR回归分析中,使用支持向量机可以使回归函数尽量平滑,其泛化能力强。
本文论述了支持向量回归的基本原理和思想,介绍了支持向量回归算法以及所用到
的几种常见的核函数(即线性内核、多项式内核、径向基函数内核、高斯内核)。
本设计主要实现的功能有:
数据集的创建、内核函数的选取、参数的设置、训练集的回归、数据集的保存与打开。
通过不同核函数的选取以及相应参数的设置对输入数据集进行回归。
此模型主要解决非线性回归模型的预测。
通过实验改变各个参数的不同取值对训练集进行回归,并分别统计出支持向量的个数,回归性能,程序运行时间。
最后对回归的结果进行分析,得出各参数对回归性能的影响。
关键词:
支持向量回归;训练算法;核函数;线性判别
ABSTRACT
Supportvectormachine(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章绪论
支持向量机(SVM)是在统计学习理论基础上提出的一种新的学习方法。
支持向量机(SVM)是一种比较好的实现了结构风险最小化思想的方法。
它的优点是理论完备、训练时间短、全局优化强、适应性好、泛化性能好等。
SVM已经成为目前国内外研究的热点。
本课题研究的SVR是支持向量机在函数回归中的应用。
1.1课题研究背景
基于支持向量的学习是现代智能技术中的重要方面,研究从观测数据(样本)出发寻找规律,利用这些规律对未来数据或无法观测的数据进行预测.包括模式识别、神经网络等在内,现有支持向量机器学习方法共同的重要理论基础之一是统计学.传统统计学研究的是样本数目趋于无穷大时的渐近理论,现有学习方法也多是基于此假设.但在实际问题中,样本数往往是有限的,因此一些理论上很优秀的学习方法实际中表现却可能不尽人意。
与传统统计学相比,统计学习理论(StatisticalLearningTheory或SLT)是一种专门研究小样本情况下机器学习规律的理论.V.Vapnik等人从六、七十年代开始致力于此方面研究,到九十年代中期,随着其理论的不断发展和成熟,也由于神经网络等学习方法在理论上缺乏实质性进展,统计学习理论开始受到越来越广泛的重视。
统计学习理论是建立在一套较坚实的理论基础之上的,为解决有限样本学习问题提供了一个统一的框架.它能将很多现有方法纳入其中,有望帮助解决许多原来难以解决的问题(比如神经网络结构选择问题、局部极小点问题等);同时,在这一理论基础上发展了一种新的通用学习方法——支持向量机(SupportVectorMachine或SVM),它已初步表现出很多优于已有方法的性能。
通过结果风险最小化准则和核函数方法,较好地解决了模式分类器复杂性核推广性之间的矛盾,引起了模式识别领域学者的极大关注。
从此迅速的发展起来,现在已经在许多领域(生物信息学,文本分类、手写体识别、人脸检测等)都取得了成功的应用,并且在研究过程中,取得了与传统方法可比或更好的结果,还丰富了自身的内容(如快速训练算法等),从而更加推动了它在其他模式识别领域的应用。
由于其出色的学习性能,该技术已成为当前国际机器学习界的研究热点,在模式识别、回归估计、函数逼近等领域有了广泛的应用。
本课题就是研究它在回归估计中的应用。
1.2国内外研究现状
支持向量机一经提出,就得到国内外学者的高度关注。
虽然支持向量机发展时间很短,但是由于它的产生是基于统计学习理论的,因此具有坚实的理论基础。
近几年涌现出的大量令人瞩目的理论研究成果,更为其应用研究奠定了坚实基础。
如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已用于数据分类、回归估计、函数逼近等领域.应用最为广泛的当属模式识别领域,在模式识别方面最突出的应用研究是贝尔实验室对美国邮政手写数字库进行的实验,这是一个可识别性较差的数据库,人工识别平均错误率是2.5%,用决策树方法识别错误率是16.2%,两层神经网络中错误率最小的是5.9%,专门针对该特定问题设计的五层神经网络错误率为5.0%(其中利用了大量先验知识),而用三种SVM方法得到的错误率分别为4.0%、4.1%和4.2%,且其中直接采用了16×16的字符点阵作为SVM的输入,并没有进行专门的特征提取。
说明了SVM方法较传统方法有明显的优势,同时也得到了不同的SVM方法可以得到性能相近的结果。
实验还观察到,三种SVM求出的支持向量中有80%以上是重合的,它们都只是总样本中很少的一部分,说明支持向量本身对不同方法具有一定的不敏感性(遗憾的是这些结论仅仅是有限的实验中观察到的现象,如果能得到证明,将会使SVM的理论和应用有更大的突破)。
围绕这一字符识别实验,还提出了一些对SVM的改进,比如引入关于不变性的知识、识别和去除样本集中的野值、通过样本集预处理提高识别速度等,相关的应用还包括SVM与神经网络相结合对笔迹进行在线适应.除此之外,MIT用SVM进行的人脸检测实验也取得了较好的效果,可以较好地学会在图像中找出可能的人脸位置.其它有报道的实验领域还包括文本识别、人脸识别、三维物体识别、遥感图像分析等,在函数回归估计方面主要用于非线性系统识别问题、时间序列预测、机场游客吞吐量的预测问题及多维自由曲面的重建问题等。
1.3课题研究目的
此课题的设计目的在于训练及提高自己能综合运用所学专业知识分析、解决实际问题的能力;掌握文献检索、资料查询的基本方法以及获取新知识的能力;系统的利用支持向量回归相关理论知识和编程技能,利用MATLAB开发平台和相关的统计学工具箱及支持向量回归算法,设计改进并实现基于MATLAB的SVR回归模型的实验系统,通过运用M文件编写回归算法、GUI组件编写主界面、编写程序和装载数据文件完成实验界面的各个功能。
从而熟悉了MATLAB编程、GUI组件编写用户界面以及回归算法的程序实现,同时也了解了支持向量回归算法在实际问题预测模型中的应用。
1.4课题研究使用的开发工具
此课题主要运用MATLAB开发平台,MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台。
它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。
根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或编程以完成各自的计算。
本课题研究用MATLAB程序编写回归算法和GUI组件编写用户界面来实现支持向量回归模型的设计。
开发工具的优点:
1.编程效率高:
Matlab是一种面向科学与工程计算的高级语言,允许用数学形式的语言来编写程序,这样就更接近我们书写计算算法公式的思维方式。
Matlab语言是一种解释执行的语言,与其他语言相比,它把编辑,编译,连接和执行融为一体,提高了程序的运行速度,同时也便于修改和调试。
2.高效方便的矩阵和数组运算:
在回归过程中,输入的数据集,运算的变量以及很多参数都是以数组,向量形式出现的,运算这些数据复杂,易出错而且费时,所以方便高效的数组向量运算就显得尤为重要,而Matlab恰好具有这样便利的功能。
并且Matlab语言还像其他语言一样规定了矩阵的算术运算符,关系运算符,逻辑运算符,条件运算符及赋值运算符。
这给编写程序带来很大方便。
在支持向量回归算法中包含了大量的数学模型和复杂的运算公式,所以用Matlab语言进行代码编写比较简单,编程效率比较高。
3.方便的绘图功能:
本课题借助于Matlab的绘图功能,能较为方便的建立支持向量回归过程中的演示图形。
Matlab有一系列绘图函数命令,功能强大,使用方便。
在执行绘图函数时是通过使用不同的图形对象来实现图形创建功能的这些图形对象包括直线、文本、曲面等等。
Matlab创建一个图形对象时总会给该对象制定一个独一无二的标识符,这个标识符就称为句柄。
通过使用句柄,用户可以方便地访问句柄所指定的对象,通过修改对象的属性使图形完全符合用户的要求。
1.5论文组织结构
本论文主要针对回归型SVM在算法性能和推广能力两方面进行一些探讨,全
文共分5章,安排如下:
第1章主要研究SVM研究背景和国内外研究现状,介绍了课题研究背景以及可以研究所用的开发工具。
第2章详细推导了线性情况下回归机算法,然后引入了核函数将线性算法推广到非线性算法。
还介绍了VC维数、结构风险最小化。
第3章此章介绍了本课题的总体设计思路和功能模块的划分及相关流程图。
第4章介绍支持向量回归模型的实现,及结果分析。
第5章对支持向量回归进行了分析与总结。
第2章支持向量机回归原理
回归预测研究从观测数据出发寻找规律,利用这些规律对未来数据或无法观测的数据进行回归预测。
回归预测的目的是根据给定的训练样本集来估计某系统输入和输出之间的依赖关系,即寻找最优函数,使它能够反映训练集的数据走向趋势,从而实现对未知输出做尽可能准确的预测。
2.1支持向量机
支持向量机是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维意味着快的收敛速度。
2.2支持向量回归
在引入支持向量回归之前,首先要对回归问题进行形式化,并因此抽象出学习机的形式化概念。
线形情形,支持向量回归问题可形象的理解为在误差带内寻求一个最为平坦的直线,此直线回归训练,并具有最小的损失。
对于非线形情形,同支持向量机识别,通过向高维空间映射,将问题转化为高维空间(Hilbert空间)的线形回归问题,并且使用核函数来求得最优解。
2.2.1回归初步形式
回归问题是个古老的数学问题,在工程上也有大量的应用背景。
在传统经典的回归中,尽管存在着多种估计的方法,但研究的大部分集中在最小二乘法。
这种分析方法称为综合分析,其主要目的是将数据聚集在一起,并综合出数据的一个拟合模型。
接着同样重要的一个阶段是案例分析。
这里数据被用于检验拟合模型对被研究的关系是否合适、有用。
其结果可能导致对原先指定的拟合模型的修改,此后,回复至综合分析。
在具体实施中,则大量的借助统计学的理论和技术。
如参数估计与假设检验等一些知识。
而本设计主要讨论的回归方法则侧重于Vapnik的统计学习理论,从问题的模型确立到问题解决途径上可能和经典的回归不大一样,但本质是一致的。
回归问题可形式化为:
给定一个训练集合,其元素有某个未知的分布观测得到(此处的观测可能夹杂某种噪声):
with
和一个函数族基本回归问题是要找到一个函数,此函数风险最小化表达式:
其中,C是损失函数,它指出和之间的差错将如何被惩罚,因为未知,不能直接对进行估值,而是要通过计算如下的经验风险:
并通过对R进行限界。
其中为所谓的泛化错误上界,根据Vapnik的理论,它依赖于用来进行回归的函数族。
2.2.2线性支持向量回归
支持向量回归建立在统计学学习理论的基础之上,并维持以上提出的学习机的模型但采取完全不同的策略。
在这里取为维超平面:
损失函数一般有多种形式,根据实际问题的不同可选用不同的损失函数。
此处给一般情形:
含有误差带的损失函数,这样的函数满足以下形式:
并且对非0时的损失函数要求具备凸性。
学习的结果使得在的周围形成一个精度为的误差带。
其线性支持向量回归机的结果是线形的。
2.2.3非线性支持向量回归
对于非线性回归,保持以上的策略不变,但首先对输入数据进行非线性预处理。
使用非线性映射把数据从原空间映射到一个高维特征空间,再在高维特征空间进行线性回归。
同理,在非线性空间中也只考虑高维特征空间的点积运算:
,而不必明确知道是什么。
其关键问题是核函数的采用。
此时,非线性支持向量机回归具有以下模型:
取为:
损失函数和能力控制策略同线性支持向量回归,其求解结果具有如下形式:
因此,
支持向量机回归通过将最小化经验风险和能力控制规约在一个目标中,一并将其转化为一个凸二次优化问题的求解途径不仅实现了结构风险最小化的原则,而且由于严格的凸性要求使问题求解在可行域中总能搜索到最优解,而不会陷入局部最小。
在非线性情形,使用核函数技巧,通过只计算输入空间的数量积避免了维数灾难问题。
从求解结果我们可以看出,最终的解,决定于输入模式的数量积,而与输入模式的维数无关,其计算规模正比于输入模式中支持向量的个数。
因而可有效地处理高维空间的问题,而不受到维数的限制。
2.3支持向量回归核函数
支持向量机的一个引人注目的特点是用核函数代替向量间的内积运算来实现非线性变换,而不需要非线性的具体形式。
研究人员根据这一思想改造经典的线性算法并构造出对应的基于核函数的非线性形式。
支持向量回归模型最重要的一个参数就是核函数。
选择什么样的核函数,就意味着将训练样本映射到什么样的空间去进行线性划分。
支持向量机回归算法的技巧在于不直接计算复杂的非线性变换,而是计算非线性变换的点积,即核函数,从而大大简化了计算。
通过把核函数引入到一些学习算法,可以方便地把线性算法转换为非线性算法,我们将其与支持向量机一起称为基于核函数的方法。
在高维特征空间实际上只需要进行点积运算,可以用原空间中的函数实现的,甚至没有必要知道变换的形式。
根据泛函的有关理论,只要一种核函数满足Mercer条件,它就对应某一变换空间中的点积。
因此,在最优分类面中采用适当的点积函数就可以实现某一非线性变换后的线性分类,而计算复杂度却没有增加。
张铃证明了核函数存在性定理,并提出了寻找核函数的算法。
核函数存在性定理表明:
给定一个训练样本集,就一定存在一个相应的函数,训练样本通过该函数映射到高维特征空间的相是线性可分的。
进一步研究了支持矢量机的支持向量集与核函数的关系,研究表明对非线性可分情况,对一个特定的核函数,给定的样本集中的任意一个样本都可能成为一个支持向量。
这意味这在一个支持向量机下观察到的特征在其它支持向量机下(其它核函数)并不能保持。
因此,对解决具体问题来说,选择合适的核函数使很重要的。
SVM由训练样本集和核函数完全描述,因此采用不同的核函数就可以构造实现输入空间中不同类型的非线性决策面的学习机,导致不同的支持向量算法。
本课题研究的几种核函数如下:
线性内核
多项式内核
径向基函数内核
Bsplines内核
2.4支持向量回归算法
2.4.1支持向量回归的算法的基础
1.寻求方向
约束最优化的一种方法是在可行空间按一定的方向逐步搜索,逼真最优点,这就涉及到寻求最优方向的问题。
对给定问题的可行域S中点x,对于某个非零n维向量存在,当时使得:
的方向被称为x处的寻优方向,而对于正定的归整约束,理论上可保证在一定的迭代次数后收敛。
2.对偶差
另一种约束最优化的方法是从对偶理论入手,利用对偶差和KKT条件来寻找最优点。
对于可行的主变量和对偶变量,凸最小化问题的主目标函数的解常常比(凸最大化的)对偶
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 基于 MATLAB SVR 回归 模型 设计 实现 毕业设计