首页 > 其他分享 >基于LS-SVM的数据分类matlab仿真测试

基于LS-SVM的数据分类matlab仿真测试

时间:2023-04-16 22:47:10浏览次数:47  
标签:kernel SVM Yhat LSSVM matlab modelb model LS

1.算法仿真效果

matlab2022a仿真结果如下:

 

 

 

 

2.算法涉及理论知识概要

        LSSVM(Least Square SVM)是将Kernel应用到ridge regression中的一种方法,它通过将所有样本用最小二乘误差进行拟合(这个拟合是在kernel变换过的高维空间),但是LSSVM的缺陷是计算复杂度大概是样本数的三次方量级,计算量非常大。为了解决这个问题于是提出了SVR(支持向量回归),SVR通过支持向量减小了LSSVM的计算复杂度,并且具备LSSVM的能够利用kernel在高纬度拟合样本的能力。

 

 

 

LSSVM的推导过程:

 

 

 

 

        在SVM推导过程中讲到过,合法的Kernel必须是z_n,z_m组成Kernel的矩阵必须是半正定的,因此上面这个求逆过程必定有解。

 

LSSVM的特性

  1) 同样是对原始对偶问题进行求解,但是通过求解一个线性方程组(优化目标中的线性约束导致的)来代替SVM中的QP问题(简化求解过程),对于高维输入空间中的分类以及回归任务同样适用;

  2) 实质上是求解线性矩阵方程的过程,与高斯过程(Gaussian processes),正则化网络(regularization networks)和费雪判别分析(Fisher discriminant analysis)的核版本相结合;

  3) 使用了稀疏近似(用来克服使用该算法时的弊端)与稳健回归(稳健统计);

  4) 使用了贝叶斯推断(Bayesian inference);

  5) 可以拓展到非监督学习中:核主成分分析(kernel PCA)或密度聚类;

  6) 可以拓展到递归神经网络中。

 

3.MATLAB核心程序

 

x = model.xtrain; y = model.ytrain;
% train model
if isempty(model.gam) && isempty(model.kernel.pars)
    error('Please tune model first with ''tunelssvm'' to obtain tuning parameters');
end
model = trainlssvm(model);
 
s = smootherlssvm(model);
Yhat = simlssvm(model,x);
 
% bias: double smoothing with fourt order kernel RBF4
modelb = initlssvm(x,y,'f',[],[],'RBF4_kernel','o');
modelb = tunelssvm(modelb,'simplex','crossvalidatelssvm',{10,'mse'});
modelb = trainlssvm(modelb);
 
biascorr = (s-eye(size(x,1)))*simlssvm(modelb,x);
 
% construct approximate 100(1-alpha)% confidence interval
%1) estimate variance nonparametrically
sigma2 = varest(model);
 
%2) calculate var-cov matrix
s = s*diag(sigma2)*s';
 
%2b) find standardized absolute maxbias 
delta = max(abs(biascorr./sqrt(diag(s))));
 
%3) pointwise or simultaneous?
if conftype(1)=='s'
    z = tbform(model,alpha) + delta;
elseif conftype(1)=='p'
    z = norminv(alpha/2);
    Yhat = Yhat - biascorr;
else
    error('Wrong type of confidence interval. Please choose ''pointwise'' or ''simultaneous''');
end
    
ci = [Yhat+z*sqrt(diag(s)) Yhat-z*sqrt(diag(s))];
 
function [var,modele] = varest(model)
 
% if preprocessed data, construct original data
if model.preprocess(1)=='p'
    [x,y] = postlssvm(model,model.xtrain,model.ytrain);
else
    x = model.xtrain; y = model.ytrain;
end
 
model = trainlssvm(model);
 
Yh = simlssvm(model,x);
 
% Squared normalized residuals
e2 = (y-Yh).^2;
 
% Make variance model
if model.nb_data <= 200
    costfun = 'leaveoneoutlssvm'; costargs = {'mae'};
else
    costfun = 'crossvalidatelssvm'; costargs = {10,'mae'};
end
modele = initlssvm(x,e2,'f',[],[],'RBF_kernel');
modele = tunelssvm(modele,'simplex',costfun,costargs);
modele = trainlssvm(modele);
 
% variance model
var = max(simlssvm(modele,x),0);
% make estimate of var unbiased in homoscedastic case if regression
% estimate is unbiased
L = smootherlssvm(model);
S = smootherlssvm(modele);
var = var./(ones(size(x,1),1)+S*diag(L*L'-L-L'));

 

  

 

标签:kernel,SVM,Yhat,LSSVM,matlab,modelb,model,LS
From: https://www.cnblogs.com/51matlab/p/17324306.html

相关文章

  • 基于hough变换的条形码数字分割和数字识别matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:        2.算法涉及理论知识概要       霍夫变换是一种特征提取(featureextraction),被广泛应用在图像分析(imageanalysis)、计算机视觉(computervision)以及数位影像处理(digitalimageprocessing)。霍夫......
  • 基于hough变换的条形码数字分割和数字识别matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要霍夫变换是一种特征提取(featureextraction),被广泛应用在图像分析(imageanalysis)、计算机视觉(computervision)以及数位影像处理(digitalimageprocessing)。霍夫变换是用来辨别找出物件中的特征,例如:线条。他的......
  • m无线传感器网络WSN的时间同步捕获算法matlab仿真,对比单步捕获法,双步捕获法以及锯齿
    1.算法仿真效果matlab2022a仿真结果如下:       2.算法涉及理论知识概要2.1WSN同步概要       由于,信息传输和计算会消耗大量的能量,无线传感器网络中的节点都是由电池供电,能源有限,让节点长时间持续时间同步过程以达到极高精确度的时钟同步将导致极大......
  • Minimum Number of Visited Cells in a Grid
    MinimumNumberofVisitedCellsinaGridYouaregivena0-indexed mxn integermatrix grid .Yourinitialpositionisatthetop-left cell (0,0).Startingfromthecell (i,j),youcanmovetooneofthefollowingcells:Cells (i,k) with j<k......
  • Lab syscall: System calls
    Systemcalltracing修改Makefileuser在user/user.h中添加系统调用声明在user/usys.pl中添加桩程序,生成user/usys.S即真实的系统调用桩程序kernel在kernel/syscall.h中添加系统调用号在kernel/proc.h中修改structproc,添加trace_mask变量,在kernel/sysproc.c......
  • MPLS-TE前三个基础实验
    MPLS-TE的基础配置实验目标:所有的路由器都运行MPLS-TE实现从AR1到10.0.4.4的MPLS-TE负载基础配置#R1syssysnAR1intl0 ipadd10.0.1.132intg0/0/1 ipadd10.0.15.124intg0/0/0 ipadd10.0.12.124ospf1router-id10.0.1.1 a0 network10.0.1.10.......
  • 三维海浪曲面的动态模拟matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:    2.算法涉及理论知识概要       考虑到三维海浪波运动的高度、形状、频率以及方向随时的变化以及参考相关论文,基于海浪谱使用双叠加模型模拟出三维海浪图像,用matlab程序模拟出来的海浪的最大高度与风级关系符合实际......
  • svd,BD,ZF,SLNR,MMSE线性预编码性能对比MATLAB仿真
    1.算法仿真效果matlab2022a仿真结果如下:      2.算法涉及理论知识概要        线性预测编码(LPC)是主要用于音频信号处理与语音处理中根据线性预测模型的信息用压缩形式表示数字语音信号谱包络(en:spectralenvelope)的工具。它是最有效的语音分析技术之一......
  • Matlab:GUI基础
    GUI坐标轴只显示白色图框 ......
  • https://blog.csdn.net/Slade99X/article/details/119790716
    https://blog.csdn.net/Slade99X/article/details/119790716https://blog.csdn.net/challenglistic/article/details/129556054https://blog.csdn.net/u011215927/article/details/108206559......