基于MATLAB的SVR回归模型的设计与实现毕业论文 - 图文

更新时间:2024-01-19 15:17:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于MATLAB的SVR回归模型的设计与实现

The Design and Implementation of SVR Regression Model

Based on MATLAB

摘 要

支持向量机是根据统计学习理论提出的一种新的学习方法,近年来受到了国内外学术界的广泛重视,并已在模式识别和函数估计中得到广泛应用。支持向量机理论的最大特点是由有限的训练集样本得到的小的误差保证对独立的测试集仍保持小的误差。从而通过支持向量机(SVM)理论,可以建立支持向量回归(SVR)预测模型,以解决各种实际问题。

SVR算法是模式识别中应用比较广泛的算法模型之一,它是支持向量机在函数逼近和回归估计中的应用。在SVR回归分析中,使用支持向量机可以使回归函数尽量平滑,其泛化能力强。

本文论述了支持向量回归的基本原理和思想,介绍了支持向量回归算法以及所用到 的几种常见的核函数(即线性内核、多项式内核、径向基函数内核、高斯内核)。本设计主要实现的功能有:数据集的创建、内核函数的选取、参数的设置、训练集的回归、数据集的保存与打开。通过不同核函数的选取以及相应参数的设置对输入数据集进行回归。此模型主要解决非线性回归模型的预测。通过实验改变各个参数的不同取值对训练集进行回归,并分别统计出支持向量的个数,回归性能,程序运行时间。最后对回归的结果进行分析,得出各参数对回归性能的影响。 关键词:支持向量回归; 训练算法; 核函数; 线性判别

ABSTRACT

Support vector machine (SVM) is a new method of study based on statistical learning theory which has attracted extensive attentions by academic circles both at home and abroad in recent years. It has been widely used in pattern recognition and function estimation. The biggest characteristic of support vector machine (SVM) theory is that a small error limited by the training set of sample can ensure the independent test set’s small error. Thus a support vector regression (SVR) forecasting model can be built by support vector machine (SVM) theory and it can solve various practical problems.

SVR algorithm model is one of pattern recognition algorithm, which is more widely used in approximation of function and the application of the regression estimate. In the SVR regression analysis, using support vector machine (SVM) can smooth regression function as far as possible. Its generalization ability is strong.

This paper discusses the basic principle of support vector regression and introduces support vector regression algorithm and several common kernel functions (the linear kernel, polynomial kernel and radial basis function (RBF) kernel, the Gaussian kernel etc.). This essay successfully makes these functions work: the creation of data sets, the selection of kernel function, parameter settings, return of the training set, the preservation and open of the data set. We accomplish the return of input of data set through the selection of different kernel functions and the setting of corresponding parameter. This model is mainly to solve the nonlinear regression model prediction. Then, the same issue is done through the experiment to change the values of different parameters, and the statistics, the number of support vector regression, performance of program running time are accounted. Finally, we have analysis the results of regression and gained the influence of various parameters on the return performance.

Key words: Support Vector Regression; Training Algorithms; Kernel Function; Linear Discrimination Analysis

目 录

第1章 绪论 ............................................................... 1 1.1 课题研究背景 ........................................................ 1 1.2 国内外研究现状 ...................................................... 1 1.3 课题研究目的 ........................................................ 2 1.4 课题研究使用的开发工具 .............................................. 3 1.5论文组织结构 ........................................................ 3 第2章 支持向量机回归原理 ................................................. 5 2.1 支持向量机 .......................................................... 5 2.2 支持向量回归 ........................................................ 5 2.2.1 回归初步形式 .................................................... 5 2.2.2 线性支持向量回归 ................................................ 6 2.2.3 非线性支持向量回归 .............................................. 7 2.3支持向量回归核函数 .................................................. 7 2.4 支持向量回归算法 .................................................... 8 2.4.1 支持向量回归的算法的基础 ........................................ 8 2.4.2 ??SVR回归算法 ............................................... 10 2.4.3 关于算法的几点说明 ............................................. 11 第3章 基于Matlab实现SVR的总体设计 .................................... 13 3.1 总体设计思想 ....................................................... 13 3.2 功能模块的划分及相关流程图 ......................................... 13 3.2.1 主要功能模块的划分 ............................................. 13 3.2.2 实现程序的主要框架图 ........................................... 13 3.2.3 支持向量回归模型的流程图 ....................................... 14 第4章 基于支持向量回归模型的实现 ........................................ 16 4.1模型的功能描述 ..................................................... 16 4.2 运行结果 ........................................................... 17 4.2.1 主界面 ......................................................... 17 4.2.2 功能描述界面 ................................................... 17 4.2.3运行过程及结果 .................................................. 18 4.2.4 命令窗口的显示结果 ............................................. 24 4. 3系统的性能分析及结论 ............................................... 24 第5章 总结 .............................................................. 27

致 谢 ................................................................. 28 参考文献 .................................................................. 1

第1章绪论 第1章 绪论

支持向量机(SVM)是在统计学习理论基础上提出的一种新的学习方法。支持向量机( SVM )是一种比较好的实现了结构风险最小化思想的方法。它的优点是理论完备、训练时间短、全局优化强、适应性好、泛化性能好等。SVM已经成为目前国内外研究的热点。本课题研究的SVR是支持向量机在函数回归中的应用。

1.1 课题研究背景

基于支持向量的学习是现代智能技术中的重要方面,研究从观测数据(样本)出发寻找规律,利用这些规律对未来数据或无法观测的数据进行预测.包括模式识别、神经网络等在内,现有支持向量机器学习方法共同的重要理论基础之一是统计学.传统统计学研究的是样本数目趋于无穷大时的渐近理论,现有学习方法也多是基于此假设.但在实际问题中,样本数往往是有限的,因此一些理论上很优秀的学习方法实际中表现却可能不尽人意。

与传统统计学相比,统计学习理论(Statistical Learning Theory或SLT)是一种专门研究小样本情况下机器学习规律的理论.V. Vapnik等人从六、七十年代开始致力于此方面研究,到九十年代中期,随着其理论的不断发展和成熟,也由于神经网络等学习方法在理论上缺乏实质性进展,统计学习理论开始受到越来越广泛的重视。

统计学习理论是建立在一套较坚实的理论基础之上的,为解决有限样本学习问题提供了一个统一的框架.它能将很多现有方法纳入其中,有望帮助解决许多原来难以解决的问题(比如神经网络结构选择问题、局部极小点问题等);同时,在这一理论基础上发展了一种新的通用学习方法——支持向量机(Support Vector Machine或SVM),它已初步表现出很多优于已有方法的性能。通过结果风险最小化准则和核函数方法,较好地解决了模式分类器复杂性核推广性之间的矛盾,引起了模式识别领域学者的极大关注。从此迅速的发展起来,现在已经在许多领域(生物信息学,文本分类、手写体识别、人脸检测等) 都取得了成功的应用,并且在研究过程中,取得了与传统方法可比或更好的结果,还丰富了自身的内容(如快速训练算法等),从而更加推动了它在其他模式识别领域的应用。由于其出色的学习性能,该技术已成为当前国际机器学习界的研究热点,在模式识别、回归估计、函数逼近等领域有了广泛的应用。本课题就是研究它在回归估计中的应用。

1.2 国内外研究现状

支持向量机一经提出,就得到国内外学者的高度关注。虽然支持向量机发展时间很短,但是由于它的产生是基于统计学习理论的,因此具有坚实的理论基础。近几年涌现出的大量令人瞩目的理论研究成果,更为其应用研究奠定了坚实基础。如Anthony et

1

第1章绪论 al.(1999)等人给出了关于硬邻域支持向量机学习误差的严格理论界限,Shawe-Taylor(2000)和Cristianini (2000)也给出了类似的关于软邻域支持向量机和回归情况下的误差界限;Weston et al.(1998)和Vapnik(1995,1998)等研究了支持向量机的泛化性能及其在多值分类和回归问题的扩展问题;Smola(1998)和Schoelkopf(1999)提出了支持向量机一般意义下的损失函数数学描述;脊回归是由Tikhonov 提出的一种具有特殊形式的正则化网络,Girosi(1990)、Poggio(1975)等将其应用到正则化网络的学习中, Smola et al.(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回归模型的实验系统,通

2

第1章绪论 过运用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章详细推导了线性情况下回归机算法,然后引入了核函数将线性算法推广到非

3

第1章绪论 线性算法。还介绍了VC维数、结构风险最小化。

第3章此章介绍了本课题的总体设计思路和功能模块的划分及相关流程图。 第4章介绍支持向量回归模型的实现,及结果分析。 第5章对支持向量回归进行了分析与总结。

4

第2章支持向量机回归原理 第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 回归初步形式

回归问题是个古老的数学问题,在工程上也有大量的应用背景。

在传统经典的回归中,尽管存在着多种估计的方法,但研究的大部分集中在最小二

5

第2章支持向量机回归原理 乘法。这种分析方法称为综合分析,其主要目的是将数据聚集在一起,并综合出数据的一个拟合模型。接着同样重要的一个阶段是案例分析。这里数据被用于检验拟合模型对被研究的关系是否合适、有用。其结果可能导致对原先指定的拟合模型的修改,此后,回复至综合分析。在具体实施中,则大量的借助统计学的理论和技术。如参数估计与假设检验等一些知识。而本设计主要讨论的回归方法则侧重于Vapnik的统计学习理论,从问题的模型确立到问题解决途径上可能和经典的回归不大一样,但本质是一致的。回归问题可形式化为:

给定一个训练集合,其元素有某个未知的分布P(x,y)观测得到(此处的观测可能夹杂某种噪声):

X???x1,y1?,?x2,y2???xi,yi??with xi?Rn,yi?R

和一个函数族F?f|f:Rn?R 基本回归问题是要找到一个函数f?F,此函数风险最小化表达式:R[f]??c(y?f(x),x)dp(x,y) 其中,C是损失函数,它指出y和f(x)之间的差错将如何被惩罚,因为P(x,y)未知,不能直接对R[f]进行估值,而是要通过计算如下的经验风险:Remp1l其中Rgen??c(y?f(x),x) 并通过Remp?Rgen对R进行限界。

li?1??为所谓的泛化错误上界,根据Vapnik的理论,它依赖于用来进行回归的函数族F。

2.2.2 线性支持向量回归

支持向量回归建立在统计学学习理论的基础之上,并维持以上提出的学习机的模型但采取完全不同的策略。在这里F取为n维超平面:

F?f|f(x)?(?,x)?b,??Rn

损失函数一般有多种形式,根据实际问题的不同可选用不同的损失函数。此处给一般情形:含有?误差带的损失函数,这样的函数满足以下形式:

?0fory?f(x)??c(x,y,f(x))??

c(y?f(x)??)otherwise???并且对非0时的损失函数要求具备凸性。

学习的结果使得在的周围形成一个精度为的误差带。其线性支持向量回归机的结果是线形的。

6

第2章支持向量机回归原理 2.2.3 非线性支持向量回归

对于非线性回归,保持以上的策略不变,但首先对输入数据进行非线性预处理。使用非线性映射?把数据从原空间Rn映射到一个高维特征空间?,再在高维特征空间?进行线性回归。同理,在非线性空间中也只考虑高维特征空间?的点积运算:而不必明确知道?(x)是什么。其关键问题是核函数k(x,y)的?(x)??(x)??(y)?k(x,y),

采用。此时,非线性支持向量机回归具有以下模型:

F取为:F?f|f(x)?(?,?(x))?b,??Rn

??损失函数和能力控制策略同线性支持向量回归,其求解结果具有如下形式:

???(a?a)?(xi) 因此,f(x)??(ai?ai?)k(xi,x)?b

?i?1i?1ll支持向量机回归通过将最小化经验风险和能力控制规约在一个目标中,一并将其转化为一个凸二次优化问题的求解途径不仅实现了结构风险最小化的原则,而且由于严格的凸性要求使问题求解在可行域中总能搜索到最优解,而不会陷入局部最小。在非线性情形,使用核函数技巧,通过只计算输入空间的数量积避免了维数灾难问题。从求解结果我们可以看出,最终的解,决定于输入模式的数量积,而与输入模式的维数无关,其计算规模正比于输入模式中支持向量的个数。因而可有效地处理高维空间的问题,而不受到维数的限制。

2.3支持向量回归核函数

支持向量机的一个引人注目的特点是用核函数代替向量间的内积运算来实现非线性变换,而不需要非线性的具体形式。研究人员根据这一思想改造经典的线性算法并构造出对应的基于核函数的非线性形式。支持向量回归模型最重要的一个参数就是核函数。选择什么样的核函数,就意味着将训练样本映射到什么样的空间去进行线性划分。

支持向量机回归算法的技巧在于不直接计算复杂的非线性变换,而是计算非线性变换的点积,即核函数,从而大大简化了计算。通过把核函数引入到一些学习算法,可以方便地把线性算法转换为非线性算法,我们将其与支持向量机一起称为基于核函数的方法。

在高维特征空间实际上只需要进行点积运算,可以用原空间中的函数实现的,甚至没有必要知道变换的形式。根据泛函的有关理论,只要一种核函数K(x,xi)满足Mercer条件,它就对应某一变换空间中的点积。因此,在最优分类面中采用适当的点积函数

K(x,xi)就可以实现某一非线性变换后的线性分类,而计算复杂度却没有增加。张铃证明了核函数存在性定理,并提出了寻找核函数的算法。核函数存在性定理表明:给定一

7

第2章支持向量机回归原理 个训练样本集,就一定存在一个相应的函数,训练样本通过该函数映射到高维特征空间的相是线性可分的。

进一步研究了支持矢量机的支持向量集与核函数的关系,研究表明对非线性可分情况,对一个特定的核函数,给定的样本集中的任意一个样本都可能成为一个支持向量。这意味这在一个支持向量机下观察到的特征在其它支持向量机下(其它核函数)并不能保持。因此,对解决具体问题来说,选择合适的核函数使很重要的。

SVM 由训练样本集和核函数完全描述,因此采用不同的核函数就可以构造实现输入空间中不同类型的非线性决策面的学习机,导致不同的支持向量算法。本课题研究的几种核函数如下:

线性内核 K(xi,xj)?xi?xj 多项式内核 K(xi,xj)?[(xi,xj)?1]q

?x?xj?ip?径向基函数内核 K(xi,xj)?ex??2??2??? ??Bsplines内核 K(xi,xj)?B2n?1(xi?xj)

2.4 支持向量回归算法

2.4.1 支持向量回归的算法的基础

1. 寻求方向

约束最优化的一种方法是在可行空间按一定的方向逐步搜索,逼真最优点,这就涉及到寻求最优方向的问题。对给定问题f(x):Rn?R的可行域S中点x,对于某个非零n维向量d存在??0,当a?(0,?)时使得:

x?ad?SdT?f(x)?0

的方向被称为x处的寻优方向,而对于正定的归整约束,理论上可保证在一定的迭代次数后收敛。 2. 对偶差

另一种约束最优化的方法是从对偶理论入手,利用对偶差和KKT条件来寻找最优点。对于可行的主变量和对偶变量,凸最小化问题的主目标函数的解常常比(凸最大化的)对偶目标函数的解要大。当且仅当在最优化解处这两个解才相等。因此对偶差常被作为衡量目标函数变量的当前解和最优解距离的一种度量,此理论来自Lagrange函数

8

第2章支持向量机回归原理 的鞍点特性。以此为基础的算法则通过逐步加强KKT条件,并通过对偶差来进行评估,来逼真最优点。 3. 不敏感损失函数

支持向量机方法是从解决模式识别问题发展起来的,在支持向量分类机中,一般来说,可以用少量的支持向量来表示决策函数,即具有稀疏性。当把该方法推广到回归问题时,很重要的一点就是希望找到合适的支持向量回归(SVR)算法,仍然保持这个性质。 从上述回归问题的数学提法可以看出,为建立算法,需要选择适当的损失函数。现介绍回归估计中最常见的一种损失函数,它可以保持稀疏性。??不敏感损失函数

c(x,y,f(x))?y?f(x)?

其中 y?f(x)??max0,{|y?f(x)|??},这里?是事先取定的一个正数,??不敏感损失函数的含义是,当x点的观测值y与预测值f(x)之差不超过给定的?时,则认为在该点的预测值f(x)是无损失的,尽管预测值f(x)和观测值y可能并不完全相等,如下面损失函数图像2-1所示。

图2-1损失函数图象

如果f(x)为单变量线性函数

f(x)????x??b,

当样本点位于两条虚线之间的带子里时,则认为在该点没有损失,我们称两条虚线构成的带子为??带。只有当样本点位于??带之外时,才有损失出现,例如,下图2-2中(x,y)处的损失为

??y?f(x)??

9

第2章支持向量机回归原理

图2-2不敏感损失带

容易看出,??不敏感损失函数有一个特点:对样本点来说,存在着一个不为目标函数提供任何损失值的区域,即??带。这个特点是其他许多损失函数并不具备的。我们可以期望,在??带内的样本点,不会出现在决策函数中。

2.4.2 ??SVR回归算法

利用核函数将输入数据映射到高维特征空间F ( 通常是无限维),在特征空间实现线性回归,估计函数具有如下形式:

f(x)????(x)?b

这里?:Rd?F,映射到特征空间,?表示特征空间中的内积,??F且b?R 为从训练数据集D估计函数f,典型的支持向量回归最小化正则化风险泛函:

Rreg[f]?Remp[f]??2?

21N? ??c(f(xi),yi)??

Ni?12这里正则化参数?为正数,损失函数c选择为??不敏感损失函数,形式如下:

?0,for|u|?? cs(u)??|u|??,else?可以通过解二次规划的优化问题来最小化正则化风险泛函。解?可以表达为在特征空间

F与函数?(x)的线性组合有关的形式:

???(ai??ai)?(xi)

i?1N这里系数ai?,ai?R通过解二次规划问题确定,对于ai??ai?0的点(xi,yi)称为支持向量。

10

第2章支持向量机回归原理 核函数k(xi,yi)对应映射到特征空间的数据的内积,即:

k(xi,yi)??(xi)??(xj)

核函数k(xi,yi)可以是任意满足Mercer条件的对称函数,因此,估计函数也可以具有如下形式:

f(x)??(ai??ai)K(xi,xj)?b

i?1N因此支持向量的拓扑结构如下图2-3所示:

x1K(x1,x)x2?xkK(x2,x)Σy?K(xk,x)图2-3支持向量回归拓扑图

对于??SVR,试图求解如下有约束的二次规划问题:

N12min??C?(?i??i?)

2i?1?fi?yi????i?s.t.?yi?fi????i?,1?i?N ??,??0?ii这里C是待确定的常数,?i,?i?是松弛变量,同时首先要先设定?的值。

2.4.3 关于算法的几点说明

1. 算法的收敛性说明

根据Osuna的理论,在实现算法中每一步迭代都将减少目标函数的值,进而保证了算法的收敛性。并且在算法中利用了许多策略和一些启发式规则来进行联合优化,进一步充分保证了算法的收敛速度。 2. 算法元素扫描启发式规则

对于??非敏感损失函数,KKT条件为:

11

第2章支持向量机回归原理 ai(?i??i?yi?(?,xi)?b)?0

ai?(?i???i??yi?(?,xi)?b)?0

(C?ai)?i?0(C?ai?)?i??0

由此进一步推出关于取值的三种情形:

I:ai??C 数据位于误差带外 II:ai??(0,c) 数据位于误差带上 III:ai??0 数据位于误差带内 3. 算法中的关于KKT条件的判断便是依据上面三式

外循环首先在整个数据集合上扫描违反KKT条件的元素,当在整个数据集合上扫描一遍之后,外循环开始在非边界元素(Lagrange乘子不为0和C)集合上扫描违反KKT条件的元素,直至所有非边界元素都以?的精度满足KKT条件。然后外循环重新在整个数据集合上扫描。外循环如此交替在整个数据集合上进行一次扫描和在非边界元素集合上进行多遍扫描,直至算法终止。 4. 算法的效率

在算法运行过程中,CPU的时间集中在最有可能违反KKT条件的元素集合,边界元素可能停留在边界,而非边界元素将会在其它元素被优化的同时向边界移动。若算法在非边界元素集合上迭代直至此集合自相容,然后再在整个集合上扫描寻找在非边界元素优化的同时变为违反KKT条件的边界元素。这样可保证算法的效率。

12

第3章 基于Matlab实现SVR的总体设计 第3章 基于Matlab实现SVR的总体设计

3.1 总体设计思想

支持向量回归的最终就是寻求一目标函数,并使得其损失函数的数学期望最小,这样才能得到最准确的回归曲线以反映训练集的数据走向趋势。该回归算法主要解决非线形回归预测问题,对训练集采用线性、非线性核函数进行回归。通过对各种参数的设置得到不同性能的回归曲线,以便于熟悉其中参数对回归算法的影响。

3.2 功能模块的划分及相关流程图 3.2.1 主要功能模块的划分

从总体上说,按照需求分析,可以把要实现的功能划分为三个主要的功能模块: 1.GUI图形用户界面模块,即系统的主界面。 2.实验简介模块,简单说明各个函数的功能。

3.支持向量回归模型设计的实验模块,实现支持向量回归的各种功能(手动创建数据集、装载现有的数据集、设置各种相应的参数、保存数据集、进行回归演示)。

3.2.2 实现程序的主要框架图

下图3-1中说明了程序设计的总体框图,并没有把所有的函数列出来,只是列出了主要的程序。

SVR.m:实现用户图形界面模块(主界面)。 about.m:查看系统的各实现功能的简单说明。 uiregress.m:实现了支持向量回归的演示实验模块。 svr.m:支持向量回归的计算。 svrplot.m:一维空间回归作图问题。 svroutput.m:输出与输入之间的转化计算 。 svrerror.m:输入,输出异常 。 svkernel.m:内核函数。

13

第3章 基于Matlab实现SVR的总体设计 svdatanorm.m svkernel.m svr.mabout.m svrerror.mSVR.muiregress.m svroutput.msvrplot.msvrtol.mContents.mBinomial.mNobias.m图 3-1 程序框图

3.2.3 支持向量回归模型的流程图

支持向量回归模型的总流程图如图3-2所示。

14

第3章 基于Matlab实现SVR的总体设计 开 始用户主界面实验简介 选 择支持向量回归模型实验选择核函数及相应参数的设置自动选 择手动装载数据创建数据对训练集回归退 出图3-2 支持向量回归模型总的流程图

15

本文来源:https://www.bwwdw.com/article/twoo.html

Top