💥1 概述

支持向量机(SVM)是一种解决非线性分类、函数估计和密度估计问题的强大方法,这也导致了基于核的学习方法的许多其他最新发展。SVM是在统计学习理论和结构风险最小化的背景下引入的在这些方法中,人们解决凸优化问题,通常是二次规划。最小二乘支持向量机(LS-SVM)是对标准SVM的重新格式化,可用于求解线性KKT系统。LS-SVM与正则化网络和高斯过程[51]密切相关,但还强调并利用原始对偶解释

经典模式识别算法(如核Fisher判别分析)的核版本与无监督学习、递归网络和控制的扩展[33]之间的链接可用。在需要时,可以将鲁棒性、稀疏性和权重强加给LS SVM,并开发了具有三个推理级别的贝叶斯框架[44]。LS-SVM相似的原对偶公式被给出给核PCA、核CCA和核PLS

对于非常大规模的问题和在线学习,基于Nyström近似,提出了一种固定大小LS-SVM方法[8],该方法在原始空间中主动选择支持向量和估计。还为核谱聚类[2]、数据可视化[39]、降维和生存分析[40]开发了具有原始对偶表示的方法。当前的LS-SVMlab工具箱与分类、回归、时间序列预测和无监督学习相关的许多LS-SVM算法的Matlab实现。

📚2 运行结果

基于LS-SVM对偶问题的分类、回归、时间序列预测和无监督学习研究(Matlab代码实现)-LMLPHP

基于LS-SVM对偶问题的分类、回归、时间序列预测和无监督学习研究(Matlab代码实现)-LMLPHP

基于LS-SVM对偶问题的分类、回归、时间序列预测和无监督学习研究(Matlab代码实现)-LMLPHP

基于LS-SVM对偶问题的分类、回归、时间序列预测和无监督学习研究(Matlab代码实现)-LMLPHP

基于LS-SVM对偶问题的分类、回归、时间序列预测和无监督学习研究(Matlab代码实现)-LMLPHP

 基于LS-SVM对偶问题的分类、回归、时间序列预测和无监督学习研究(Matlab代码实现)-LMLPHP

部分代码:

% initiate values
type = 'classification';
gamma = 0.1;
kernel = 'RBF_kernel';
sigma2 = 1;
sigma2ent = 0.1;
crit_old=-inf;
Nc=20;
Xs=X(1:Nc,:);
Ys=Y(1:Nc,:);

%
% Initiate grid for plot
grain = 25;
xmin1=min(X(:,1)); 
xmax1=max(X(:,1)); 
xmin2=min(X(:,2)); 
xmax2=max(X(:,2)); 
xrange1 = xmin1:(xmax1-xmin1)/grain:xmax1;
xrange2 = xmin2:(xmax2-xmin2)/grain:xmax2;
[XX,YY] = meshgrid(xrange1,xrange2);
Xt = [reshape(XX,numel(XX),1) reshape(YY,numel(YY),1)];
figure;


%
% iterate over data
%
for tel=1:5*length(X)
   
  
  %
  % new candidate set
  %
  Xsp=Xs; Ysp=Ys;
  S=ceil(length(X)*rand(1));
  Sc=ceil(Nc*rand(1));
  Xs(Sc,:) = X(S,:);
  Ys(Sc,:) = Y(S);
  Ncc=Nc;

  %
  % automaticly extract features and compute entropy
  %
  crit = kentropy(Xs,kernel, sigma2ent);
  
  if crit <= crit_old,
    crit = crit_old;
    Xs=Xsp;
    Ys=Ysp;
  else
    crit_old = crit;

    %
    % ridge regression    
    features   = AFEm(Xs,kernel, sigma2,X);
    features_t = AFEm(Xs,kernel, sigma2,Xt);
    [w,b,Yht] = ridgeregress(features,Y,gamma,features_t);
    Yht = sign(Yht);

    %
    % make-a-plot
    Ygt = reshape(Yht(:,1),size(XX,1),size(XX,2));
    colormap cool;
    [C,h]=contourf(XX,YY,Ygt); 
    hold on;
    n = find(Y<=0);
    np = plot(X(n,1),X(n,2),'k.'); 
    p = find(Y>0);
    pp = plot(X(p,1),X(p,2),'k+'); 
    sv = plot(Xs(:,1),Xs(:,2),'go','Linewidth',7);
    xlabel('X_1'); ylabel('X_2'); 
    title(['Approximation by fixed size LS-SVM based on maximal entropy: ' num2str(crit)]);
    legend([np pp sv],'Negative points','Positive points',...
           'Support Vectors');
    
    hold off;  drawnow
  
  end
    
end
 

🎉3 参考文献

基于LS-SVM对偶问题的分类、回归、时间序列预测和无监督学习研究(Matlab代码实现)-LMLPHP

🌈4 Matlab代码实现

11-11 07:18