LSSVM--matlab.docx_第1页
LSSVM--matlab.docx_第2页
LSSVM--matlab.docx_第3页
LSSVM--matlab.docx_第4页
LSSVM--matlab.docx_第5页
免费预览已结束,剩余20页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

最小二乘支持向量机对于以前的版本1.5版的工具箱和更新现有的一些命令我们增加了新功能。由于许多读者都是熟悉的版本1.5布局,我们试图尽可能少地改变它。主要的区别加速了一些方法的实现。Chapter/solver/functionWhats newWhats new2. LS-SVMLab toolbox examplesLS - SVM的路线图;增添更多的回归和分类的例子;界面更容易,多级分类; 改变执行了健全ls-svm。3. Matlab functions回归或分类的可能性只使用一条命令即可,功能验证已经被删除,更快(强劲)训练和(强大)模型选择标准被提供给用户,以防万一,稳健回归不同的函数必须要和与迭代重加权LS SVM一起使用。4. LS-SVM solver所有CMEX和/或C文件已被删除。求解线该性系统通过使用MATLAB命令“反斜杠”()第一章 引言在解决非线性分类,函数估计和密度估计问题中,支持向量机是一个很强大的方法,支持向量机也致使了其核心的新动向,最新发展事基于一般学习方法的。支持向量机应经被引入统计学习理论和结构风险最小化之中。这些方法中,凸优化问题,解决了一个典型的二次规划问题。LS-SVM是标准SVM的改进,这样就可以解决线性kkt系统的问题了。最小二乘支持向量机与正规化网络和高斯过程密切相关,但更加重视和利用原始对偶的规范条款解释。经典的模式识别算法的内核版本如判别分析的内核Fisher,以非监督学习、循环式网络扩展和控制之间的链接是可用的。健全性、稀疏性、权重可以被应用到LS-SVM上,并具有三个层次的推理贝叶斯框架已经制定。LS SVM像原始对偶那样配方给予核PCA,核CCA和PLS。对于非常大的规模问题和在线学习,一个固定大小的LS - SVM方法被提出,它基于Nystrom在原始空间中支持向量的积极选择和估计的近似值。原始对偶申述的方法被开发为核心谱聚类,数据可视化,降维和生存分析。目前LS- SVMlab工具箱用户指南包含了大量MATALAB中LS - SVM算法的实现,其中涉及分类,回归,时间序列预测和无监督学习。所有的功能都已经用Matlab从R2008a,R2008b,R2009a测试,工具箱中参考命令都以打印字体书写。LS SVMlab主页:http:/www.esat.kuleuven.be/sista/lssvmlab/第二章LS-SVMlab 该工具箱主要用于商业用Matlab软件包使用。Matlab的工具箱已经在不同的计算机体系结构编译和测试,包括Linux和Windows。大部分函数可以处理的数据集可高达20,000或更多点的数据。LS- SVMlab对Matlab接口包括一个适合初学者的基本版本,以及一个多类编码技术和贝叶斯框架的更先进的版本。未来版本将逐步加入新成果的和额外的功能。大量功能受到最小二乘-支持向量机的限制(其中包括“最小二乘支持向量机在函数中”的扩展名),其余的都是一般使用。大量的演示说明如何使用工具箱中的不同功能。Matlab的函数接口以两种方式组织:例如在网络实验室人们可以根据自己的选择将函数既可以按照功能性方式调用又可以按照面向对象的结构方式调用。2.1分类和优化调用函数:trainlssvm, simlssvm, plotlssvm, prelssvm, postlssvm;演示:Subsections demofun, democlass.Matlab的工具箱是围绕一个快速LS - SVM的训练和模拟算法而建立的。相应的函数调用可用于分类以及函数估计。函数plotlssvm显示该模型在培训点区域模拟结果。通过执行Matlab中灵活和简单代码(lssvmMATLAB.m)来求解线性系统,它基于Matlab矩阵分解(反斜杠命令为准)。对单个和多个输出回归和分类的函数都可以使用。训练和模拟可以做到为每个输出分别通过传递不同的核函数,内核和/或作为列向量正规化参数。执行工具箱中其他核函数也是简单的。一个模型的性能依赖于输入数据和输出数据的缩放。一个适当的算法检测,适当的重新调整重设比例,分类和二进制变量。2.1.1分类扩展调用函数:codelssvm, code, deltablssvm, roc, latentlssvm演示:Subsection, democlass大量附加功能的文件是可用于分类工作的。对于模拟分类模型的潜变量是通过模拟得到的连续的结果,这个结果最终是离散的。受试者工作特征曲线(ROC)可以用来衡量一个分类器的性能。多类分类问题分解成多个二元分类任务。几种编码方案可以用在了这一点:最小输出,一比一,一对多和纠错编码方案。可以用海明距离,损失函数距离和贝叶斯损解码来解码一个给定的结果。一个偏差期限校正是可以做,然而对于小数据集是特别有趣的。2.1.2调谐,稀疏,完整性调用函数:tunelssvm, crossvalidatelssvm, leaveoneoutlssvm, robustlssvm,sparselssvm;演示:Subsections , demofun, democlass, demomodel估算训练模式的泛化性能的很多方法都包括在内。对于分类,可以用错误分类率(misclass)来表述。对重复培训和验证为基础的估计都是通过crossvalidatelssvm和leaveoneoutlssvm来实现的。一个强大的crossvalidation(关于迭代重加权LS - SVM的)分数由rcrossvalidatelssvm函数被调用。这些绩效措施,可用于确定调整参数(如正规化和内核参数的LS - SVM的(tunelssvm)。减少一个LS - SVM的模型的复杂性可以通过反复修剪较重要支持值(sparselssvm). 在数据中的异常值的情况下,支持数值的更正将改进模型(robustlssvm).2.1.3贝叶斯框架调用函数:bay_lssvm, bay_optimize, bay_lssvmARD, bay_errorbar, bay_modoutClass,kpca, eign演示:Subsections计算模型的后验概率和不同层次的推理中超参数的函数是可以用的。通过考虑模型和超参数的不确定性得到误差线。进行分类,一类可以估算后概率(这也被称为主持输出)(bay_modoutClass)。在贝叶斯框架中使用特征值分解核矩阵。矩阵的大小会随着数据点的数量而增长。因此,人们需要逼近技术处理大型数据集。众所周知,主要特征值和相应的特征向量是相关的。因此,迭代逼近方法,如作为Nystrom方法包括在内,这也是高斯过程中经常使用。输入选择可以通过自动关联的测定(bay_lssvmARD)。对于一个落后的变量的选择,贝叶斯框架推断的第三个层次对这个问题来说最合适的运用。2.2 NARX模型及预测调用函数:predict, windowize;演示: Subsection对非线性NARX时间序列应用系统可以扩散。一个NARX模型能够建立基于非线性回归量,这是通过对过去数据的输出(或输入)的测量来估计下一次迭代输出的值。使一个数据集通过窗口和NARX窗口转变为一个新的输入(过去测量的)和输出集(未来的输出),这两个窗口分别为时间序列事件和一般的外部输入NARX事件。迭代预测(在递归方法中)下一个输出,该输出是基于先前的预测,及初始值都是由预测来工作。2.3非监督学习调用函数:kpca, denoise_kpca, preimage_rbf;演示: Subsection非监督学习可以基于主成分分析(kpca)所描述的内核进行工作,为此,一种对最小二乘支持向量机的原始双重的解释得到屈服,这也将进一步扩展到内核典型相关分析和内核偏最小二乘法。 2.4通过固定大小的最小二乘支持矢量机解决大型规模问题调用函数:demo_fixedsize, AFEm, kentropy;演示:Subsection , demo_fixedsize, demo_fixedclass例如喜欢基于最小二乘支持向量机算法的典型内核通常具有记忆功能和算法复杂度为O(N 2)的计算要求。为绕过这个瓶颈,对大规模的工作方法提出了解决方案。对于大型数据集,将有利于在原始权空间解决最小二乘问题,这是由于当时未知数向量大小是与特征向量大小是成比例的,而不是数据点的数量。但是,该特征空间映射是由内核诱导的,而内核又需要获得非线性,因此,提出了一种固定大小的最小二乘支持向量机的方法。首先,Nystrom方法能够用来估计特征空间的映射。Nystrom近似值,内核主成分分析和密度估计之间的联系已被讨论。在固定大小的最小二乘支持向量机中,聘请了明确的原始对偶LS-SVM的解释,将它们联系起来。根据二次Renyi熵准则选择支持向量机。最后一步,在原始空间中完成回归,原始空间为求解大规模非线性函数估计和分类问题提供了适当的方法。而固定大小的最小二乘支持向量机的方法正适合处理非常大的数据集。另一个选择子集的标准由41 and 24提出,并与之有很紧密的联系。它衡量特征空间和由子集引起的空间逼近的质量(视为自动特征提取或AFEm)。该子集被认为是从数据(子样本)提取的随机子样本。第三章LS-SVMlab工具箱举例3.1 LS SVM布局在这节中,我们简单地概括一下如何获得的LS - SVM模型(用于分类和回归有效),见图3.11. 面向功能或面向对象接口(initlssvm)之间进行选择,见图A.3.152. 寻找合适的优化参数(tunelssvm搜索),见图A.3.353. 训练原先确定优化参数的给定模型(trainlssvm),见图A.3.344a. 例如模拟模型测试数据(simlssvm),见图A.3.324b.必要的时候将结果可视化(plotlssvm),见图A.3.243.2分类首先,对工具箱中进行任务分类的可能性说明。3.2.1 hello world一个简单的例子说明如何开始使用工具箱中的分类任务。我们首先我们按照正确的格式构建一个简单的数据集示例。数据表示为矩阵,每个矩阵包含一个数据点行: X = 2.*rand(100,2)-1; Y = sign(sin(X(:,1)+X(:,2); XX =0.9003 -0.9695-0.5377 0.49360.2137 -0.1098- 0.0280 0.86360.7826 -0.06800.5242 -0.1627. .-0.4556 0.7073-0.6024 0.1871 YY =-1-11111.1-1为了建立一个LS - SVM模型(带有高斯RBF核)我们需要两个调整参数:(GAM)的是正则参数,它取决与训练误差最小化和平滑程度之间的权衡程度。通常情况下在高斯RBF核中,2(sig2)是平方带宽: gam = 10; sig2 = 0.4; type = classification; alpha,b = trainlssvm(X,Y,type,gam,sig2,RBF_kernel);参数和与LS - SVM相关的变量是通过为一个单元联系起来。此单元允许LS - SVM的参数和相关参数的默认处理句法分类一致。这个定义应该由整个统一使用该LS - SVM的模型使用。相应的LS- SVMlab面向对象接口导致短函数调用(见demomodel)。默认情况下,数据是由适用于原始数据预处理功能的函数prelssvm和对模型进行预测的函数postlssvm来处理的。此选项在调用中可以进行显式切换: alpha,b = trainlssvm(X,Y,type,gam,sig2,RBF_kernel,original);or be switched on (by default): alpha,b = trainlssvm(X,Y,type,gam,sig2,RBF_kernel,preprocess);一定要始终使用相同的选项在所有连续调用中。为了评估这个模型中新的点,需要使用函数simlssvm。 Xt = 2.*rand(10,2)-1; Ytest = simlssvm(X,Y,type,gam,sig2,RBF_kernel,alpha,b,Xt);如果输入数据的维数是2,LS - SVM的结果就可以显示。 plotlssvm(X,Y,type,gam,sig2,RBF_kernel,alpha,b);所有的绘制是通过这个简单的命令。它查找结果中显示的最佳方式(见图 3.2)3.2.2示例著名的里普利数据集的问题包括两个类,在每个类中的数据是由两个混合正态分布生成的(见图3.3a)首先,我们基于某数据集建立一个LS SVM模型并确定合适的优化参数。在这种情况下,调整参数,例如10-3,105和带宽20.01,3平方内核。 % load dataset . type = classification; L_fold = 10; % L-fold crossvalidation gam,sig2 = tunelssvm(X,Y,type,RBF_kernel,1e-3 1e5 0.01 3,.crossvalidatelssvm,L_fold,misclass); alpha,b = trainlssvm(X,Y,type,gam,sig2,RBF_kernel); plotlssvm(X,Y,type,gam,sig2,RBF_kernel,alpha,b);默认情况下,为优化参数的最低和最高值都设置为0.05,148和带宽20.08,12平方内核。 gam,sig2 = tunelssvm(X,Y,type,RBF_kernel,.crossvalidatelssvm,L_fold,misclass);受试者工作特征(ROC)曲线提供了有关的质量信息分类: alpha,b = trainlssvm(X,Y,type,gam,sig2,RBF_kernel); % latent variables are needed to make the ROC curve Y_latent = latentlssvm(X,Y,type,gam,sig2,RBF_kernel,alpha,b,X); area,se,thresholds,oneMinusSpec,Sens=roc(Y_latent,Y); thresholds oneMinusSpec Sensans =-2.1915 1.0000 1.0000-1.1915 0.9920 1.0000-1.1268 0.9840 1.0000-1.0823 0.9760 1.0000. . .-0.2699 0.1840 0.9360-0.2554 0.1760 0.9360-0.2277 0.1760 0.9280-0.1811 0.1680 0.9280. . .1.1184 0 0.00801.1220 0 02.1220 0 0相应的ROC曲线如图3.3b所示。图3.3 ROC曲线的里普利分类任务(一)原LS - SVM的分类器(二)接收器工作特性曲线3.2.3使用面向对象的接口:初始化最小二乘支持向量机(initlssvm)另一种可能获得相同的结果是使用面向对象接口。如下所示: % load dataset . % gateway to the object oriented interface model = initlssvm(X,Y,type,RBF_kernel); model = tunelssvm(model,1e-3 1e5 0.01 3,crossvalidatelssvm,L_fold,misclass); model = trainlssvm(model); plotlssvm(model); % latent variables are needed to make the ROC curve Y_latent = latentlssvm(model,X); area,se,thresholds,oneMinusSpec,Sens=roc(Y_latent,Y);3.2.4最小二乘支持向量机的分类:只有一个命令行用简单的方法获得一个最小二乘支持向量机模型如下(二进制分类问题和一对一多类编码) % load dataset . type = classification; Yp = lssvm(X,Y,type);该最小二乘支持向量机命令通过十倍交叉验证(简称CV)或留出一个依赖于样本大小的交叉验证来自动调整参数。此功能将自动的解决(如有可能)问题。默认情况下,高斯RBF将会被采用。更多信息,请参见图A.3.23。3.2.5贝叶斯推理的分类针对3.2.2节的结果,本节将做进一步的分析。贝叶斯框架被用来调整优化参数,以获得适当的输出。最优正规化参自由亚齐运动的参数和内核参数sig2可分别通过优化成本推理的第二层和第三层获得。建议采用合适的初始值来初始化模型: gam, sig2 = bay_initlssvm(X,Y,type,gam,sig2,RBF_kernel);Optimization on the second level leads to an optimal regularization parameter: model, gam_opt = bay_optimize(X,Y,type,gam,sig2,RBF_kernel,2);Optimization on the third level leads to an optimal kernel parameter: cost_L3,sig2_opt = bay_optimize(X,Y,type,gam_opt,sig2,RBF_kernel,3);Theposteriorclassprobabiliesarefoundbyincorporatingtheuncertaintyofthemodelparameters: gam = 10; sig2 = 1; Ymodout = bay_modoutClass(X,Y,type,10,1,RBF_kernel,figure);One can specify a prior class probability in the moderated output in order to compensate foran unbalanced number of training data points in the two classes. When the training set contains+ -N positive instances and N negative ones, the moderated output is calculated as:+Nprior =+ -N +N Np = 10; Nn = 50; prior = Np / (Nn + Np); Posterior_class_P = bay_modoutClass(X,Y,type,10,1,RBF_kernel,.figure, prior);The results are shown in Figure 3.4.结果如图3.4所示图3.4(a)展示的是基于里普利数据LS - SVM的分类器输出设置。该颜色表示的概率属于某一个类。(b)这个例子说明了一个不平衡的里普利数据子集主持输出。人们可以弥补在主持输出数据计算不平衡。需要注意到在用阳性标本的蓝区面积增加补偿而红色区相应缩小。3.2.6 多级编码下面的示例将演示如何使用多级编码方案的问题。编码和解码分别被视为一个单独的和独立的预处理和后处理步骤(图 3.5(a) and 3.5(b).一个名为demomulticlass的演示文件包含在工具箱中。 % load multiclass data . Ycode, codebook, old_codebook = code(Y,code_MOC); alpha,b = trainlssvm(X,Ycode,classifier,gam,sig2); Yhc = simlssvm(X,Ycode,classifier,gam,sig2,alpha,b,Xtest); Yhc = code(Yh,old_codebook,codebook,codedist_hamming);在多类分类问题,它是最容易使用的面向对象接口集其中集成了LS SVM训练和模拟调用的编码: % load multiclass data . model = initlssvm(X,Y,classifier,RBF_kernel); model = tunelssvm(model,1e-3 1e5 0.01 15,.leaveoneoutlssvm,misclass,code_OneVsOne); model = trainlssvm(model); plotlssvm(model);该tunelssvm例行的最后一个参数可以设置: code_OneVsOne:一对一编码 code_MOC: 最小输出编码 code_ECOC: 纠错输出码 code_OneVsAll:一对多编码图3.5 LS - SVM的多类的例子:(a)一对一编码(b)纠错输出码(c)最小输出编码(d)一对多编码3.3回归3.3.1 一个简单的例子这是一个简单的演示,使用ls - SVMlab解决一个简单的回归任务。以正确的格式构建数据集。这些数据被表示为矩阵的每一行包含的一个数据点。 X = linspace(-1,1,50); Y = (15*(X.2-1).2.*X.4).*exp(-X)+normrnd(0,0.1,length(X),1); XX =-1.0000-0.9592-0.9184-0.8776-0.7959.0.95921.0000 Y =Y =0.01380.29530.68471.15721.58441.9935.-0.0613-0.0298为了获得一个LS - SVM模型(带有RBF内核)我们需要两个额外的优化参数:(GAM)的是正则参数,取决于对训练误差最小化和估计函数平滑的权衡。2(sig2)是内核函数的参数,在这种情况下,我们进行用十倍交叉验证的方法分析以确定优化参数。 type = function estimation; gam,sig2 = tunelssvm(X,Y,type,RBF_kernel,1e-3 1e5 0.01 3,.leaveoneoutlssvm,mse); alpha,b = trainlssvm(X,Y,type,gam,sig2,RBF_kernel); plotlssvm(X,Y,type,gam,sig2,RBF_kernel,alpha,b);参数和LS - SVM的变量是通过为一个单元相关联的。此单元格允许LS - SVM的参数和相关默认参数处理句法分类一致。这个定义应该由整个统一使用该LS - SVM的模型使用。LS SVMlab所面向对象的接口导致了较短的函数调用。默认情况下,对应用程序的原始数据数据可以使用prelssvm进行预处理,对模型的预测用函数postlssvm。在调用中此选项可以进行显式关闭: alpha,b = trainlssvm(X,Y,type,gam,sig2,RBF_kernel,original);or can be switched on (by default): alpha,b = trainlssvm(X,Y,type,gam,sig2,RBF_kernel,preprocess);一定要始终使用相同的选项在所有连续调用中。为了评估这个模型中新的点,需要使用函数simlssvm。 Xt = rand(10,1).*sign(randn(10,1);然后,我们得到基于模拟测试数据的模型: Yt = simlssvm(X,Y,type,gam,sig2,RBF_kernel,preprocess,alpha,b,Xt);ans =0.08470.03781.98620.46880.37731.98320.26580.25151.55710.3130如果输入数据的维数是1或2,最小二乘支持向量机的结果可以显示出来。 plotlssvm(X,Y,type,gam,sig2,RBF_kernel,preprocess,alpha,b);所有的绘制是通过这个简单的命令实现的。它是显示结果的最佳方式(如图3.6)。3.3.2 最小二乘支持向量机的回归:只有一个命令行!作为一种替代方式,它可以使用一行最小二乘支持向量机命令: type = function estimation; Yp = lssvm(X,Y,type);默认情况下,采用高斯径向基函数内核,其坐标的范围设置为 0.05,148,它的平方内核带宽设置为2 0.08,12。更多信息见A.3.23中所示。图3.6:简单的回归问题。实线表示估计输出,虚线代表真实的基本函数。点代表训练的数据点。3.3.3 贝叶斯推断回归 type = function approximation; X = linspace(-2.2,2.2,250); Y = sinc(X) +normrnd(0,.1,size(X,1),1); Yp,alpha,b,gam,sig2 = lssvm(X,Y,type);对训练数据的计算误差线使用贝叶斯推理: sig2e = bay_errorbar(X,Y,type, gam, sig2,figure);所产生的误差线如图3.7所示。图3.7:该图给出最小二乘支持向量机估计(实线)的68%误差线(绿色虚线和绿色双虚线)和95%误差线(红色虚线和红色双虚线)在接下来的例子中,说明了该自动相关确定的过程: X = normrnd(0,2,100,3); Y = sinc(X(:,1) + 0.05.*X(:,2) +normrnd(0,.1,size(X,1),1);自动相关确定被用来确定提出的模型的最相关的输入子集: inputs = bay_lssvmARD(X,Y,type, 10,3); alpha,b = trainlssvm(X(:,inputs),Y,type, 10,1);3.3.4 使用面向对象模型接口这一事例说明了如何使用模型接口。在这里,涉及到回归,但这与分类拓展是相似的。 type = function approximation; X = normrnd(0,2,100,1); Y = sinc(X) +normrnd(0,.1,size(X,1),1); kernel = RBF_kernel; gam = 10; sig2 = 0.2;定义一个模型 model = initlssvm(X,Y,type,gam,sig2,kernel); modelmodel =type: fx_dim: 1y_dim: 1nb_data: 100kernel_type: RBF_kernelpreprocess: preprocessprestatus: okxtrain: 100x1 doubleytrain: 100x1 doubleselector: 1x100 doublegam: 10kernel_pars: 0.2000x_delays: 0y_delays: 0steps: 1latent: nocode: originalcodetype: nonepre_xscheme: cpre_yscheme: cpre_xmean: -0.0690pre_xstd: 1.8282pre_ymean: 0.2259pre_ystd: 0.3977status: changedweights: whuber通过以下调用进行训练,模拟和决策执行: model = trainlssvm(model); Xt = normrnd(0,2,150,1); Yt = simlssvm(model,Xt); plotlssvm(model);贝叶斯框架推理的第二层可以被用来优化调整自由亚齐涌动的参数。在这种情况下,需要用到Nystrom的20个特征向量的逼近: model = bay_optimize(model,2,eign, 50);与推理第三层相关的成本优化提供了一种优化内核参数。这种优化是基于Matlab的优化工具箱实现的。这可能需要一段时间。 model = bay_initlssvm(model); model = bay_optimize(model,3,eign,50);3.3.5 稳健回归首先,构建一个含15%异常值的数据集: X = (-5:.07:5); epsilon = 0.15; sel = rand(length(X),1)epsilon; Y = sinc(X)+sel.*normrnd(0,.1,length(X),1)+(1-sel).*normrnd(0,2,length(X),1);稳健的调整参数的调整工作由最小二乘支持向量机的交叉有效数据实现。同时注意到首选的损失函数是L1。选择成本函数中的加权函数作为胡贝尔加权。在工具箱内可能还有逻辑加权,极大加权和汉佩尔加权。 model = initlssvm(X,Y,f,RBF_kernel); L_fold = 10; %10 fold CV model = tunelssvm(model,1e-3 1e5 0.01 3,.rcrossvalidatelssvm,L_fold,mae,whuber);由robustlssvm执行训练任务 model = robustlssvm(model); plotlssvm(model);图3.8:以一个具有15扰动的Sinc数据内集进行实验。(a)应用标准的训练和超参数选择技术(b)应用迭代重加权最小二乘支持向量机的训练加上一个强大的crossvalidation评分功能,提高了测试设备的性能。第二,更极端的例子,我们已采取污染分布是一个立方米的标准柯西分布和 = 0.3 X = (-5:.07:5); epsilon = 0.3; sel = rand(length(X),1)epsilon; Y = sinc(X)+sel.*normrnd(0,.1,length(X),1)+(1-sel).*trnd(1,length(X),1).3;一如以往,我们使用了可以进行交叉验证的完整版本。成本函数中的加权函数被选为无穷大。所有的加权函数W : R 0, 1其中W(r) = (r)/r 满足W(0) = 1,如表3.1所示的相应损失函数L(R)和得分函数(r)=dL(r)/dr. 这种经过特别设计的加权函数类型是来处理极端的异常值。结果显示在图3.9中。四权函数包含三个参数。在下面的参数设置(五表示残差工具箱,疯狂的中位数绝对偏差和IQR为是跨阶层的范围) Huber weights: = 1.345MAD(e) Hampel weights: b1 = 2.5 并且 b2 = 3 myriad weights: = 0.5iqr(e) model = initlssvm(X,Y,f,RBF_kernel); L_fold = 10; %10 fold CV model = tunelssvm(model,1e-3 1e5 0.01 3,.rcrossvalidatelssvm,L_fold,mae,wmyriad); model = robustlssvm(model); plotlssvm(model);图3.9以一个具有扰动的Sinc数据内集进行实验。(a)应用了标准的训练和调整技术参数的选择(b)应用一个迭代重加权LS - SVM的训练(无数的权重)加上一个强大的交叉验证评分功能,提高了测试设备的性能;表3.1胡贝尔,汉普尔,逻辑斯蒂和无数(带参数的定义0)权函数瓦()。的相应损失的L()和得分函数()也分别给出。3.3.6多输出回归多个输出的情况下一个数据可以分别对应不同的输出。其中之一可以让工具箱通过传递正确的参数来完成。这一案例说明如何处理多重输出 % load data in X, Xt and Y % where size Y is N x 3 gam = 1; sig2 = 1; alpha,b = trainlssvm(X,Y,classification,gam,sig2); Yhs = simlssvm(X,Y,classification,gam,sig2,alpha,b,Xt);每路输出使用尺寸不同的内核参数: gam = 1; sigs = 1 2 1.5; alpha,b = trainlssvm(X,Y,classification,gam,sigs); Yhs = simlssvm(X,Y,classification,gam,sigs,alpha,b,Xt);每个输出使用不同的正规化参数和尺寸的内核: kernels = lin_kernel,RBF_kernel,RBF_kernel; kpars = 0 2 2; gams = 1 2 3; alpha,b = trainlssvm(X,Y,classification,gams,kpars,kernels); Yhs = simlssvm(X,Y,classification,gams,kpars,kernels,alpha,b,Xt);调谐可以做到每个输出尺寸: % tune the different parameters sigs,gam = tunelssvm(X,Y,classification,gam,kpars,kernels);3.3.7一个时间序列的例子:圣达菲激光数据预测使用静态回归技术,建立一个前馈非线性预测模型。这个NARX模型以过去的测量数据模型的输入。 % load time-series in X and Xt lag = 50; Xu = windowize(X,1:lag+1); Xtra = Xu(1:end-lag,1:lag); %training set Ytra = Xu(1:end-lag,end); %training set Xs=X(end-lag+1:end,1); %starting point for iterative prediction基于前馈交叉验证设置仿真模型,利用feedforwardly训练。 gam,sig2 = tunelssvm(Xtra,Ytra,f,RBF_kernel,.0.5 1500 4 600,crossvalidatelssvm,10,mae);用一个周期性方式完成下100点的预测: alpha,b = trainlssvm(Xtra,Ytra,f,gam,sig2,RBF_kernel); %predict next 100 points prediction = predict(Xtra,Ytra,f,gam,sig2,RBF_kernel,Xs,100); plot(prediction Xt);表3.10为Santa Fe激光数据的显示结果。图3.10实线表示的圣达菲激光数据混乱。虚线显示了使用迭代预测与最佳超通过调整参数得到RBF核的LS SVM。3.3.8固定大小的LS SVM固定大小的LS - SVM的是基于两个想法(见2.4节):首先是利用了最小二乘支持向量机逼近尼斯特伦原始对偶的方法。(见图3.11)图3.11固定尺寸LS - SVM的是解决大规模回归和分类方法问题的一种方法。支持向量的数量是预先设定的,并且根据训练池中的数据选择支持向量机。在估算与Nystom相似的特征函数(根据一个熵判据选择)LS - SVM的模型估计就位于其原始空间。第二个是选择活跃的支持向量(这里基于熵标准)。第一步实施如下: % X,Y contains the dataset, svX is a subset of X sig2 = 1; features = AFEm(svX,RBF_kernel,sig2, X); Cl3, gam_optimal = bay_rr(features,Y,1,3); W,b = ridgeregress(features, Y, gam_optimal); Yh = features*W+b;最优值的内核参数和固定大小的LS - SVM的性能,可通过一个简单的蒙特卡罗实验来获得。对于不同的内核参数和能力(选择的支持向量的数目),对支持向量的随机子集的性能进行了评价。实现的方法是由穷举搜索减到最小(如图3.12b) caps = 10 20 50 100 200 sig2s = .1 .2 .5 1 2 4 10 nb = 10; for i=1:length(caps),for j=1:length(sig2s),for t = 1:nb,sel = randperm(size(X,1);svX = X(sel(1:caps(i);features = AFEm(svX,RBF_kernel,sig2s(j), X);Cl3, gam_opt = bay_rr(features,Y,1,3);W,b = ridgeregress(features, Y, gam_opt);Yh = features*W+b;performances(t) = mse(Y - Yh);endminimal_performances(i,j) = mean(performances);endend与内核参数和性能相对应的最好的参数就可以被搜索到: minp,ic = min(minimal_performances,1); minminp,is = min(minp); capacity = caps(ic); sig2 = sig2s(is);下面的方法是根据二次Renyi熵优化选择的支持向量: % load data X and Y, capacity and the kernel parameter sig2 sv = 1:capacity; max_c = -inf; for i=1:size(X,1),replace = ceil(rand.*capacity);subset = sv(1:replace-1 replace+1:end) i;crit =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论