基于MATLAB的图像SVM分类

  • l8_824315
    了解作者
  • 2.7KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-26 09:19
    上传日期
可直接编译成功
9、SVM方法.zip
  • 9、SVM方法
  • svmSim.m
    2.4KB
  • svmTrain.m
    2.8KB
  • SVM.m
    1.1KB
  • kernel.m
    633B
内容介绍
function svm = svmTrain(svmType,X,Y,ker,p1,p2) % SVM Classification: % svm = svmTrain('svc_c',x,y,ker,C); % svm = svmTrain('svc_nu',x,y,ker,nu); % % One-Class SVM: % svm = svmTrain('svm_one_class',x,[],ker,nu); % % SVM Regression: % svm = svmTrain('svr_epsilon',x,y,ker,C,e); % svm = svmTrain('svr_nu',x,y,ker,C,nu); options = optimset; options.LargeScale = 'off'; options.Display = 'off'; switch svmType case 'svc_c', C = p1; n = length(Y); H = (Y'*Y).*kernel(ker,X,X); f = -ones(n,1); A = []; b = []; Aeq = Y; beq = 0; lb = zeros(n,1); ub = C*ones(n,1); a0 = zeros(n,1); [a,fval,eXitflag,output,lambda] = quadprog(H,f,A,b,Aeq,beq,lb,ub,a0,options); case 'svc_nu', nu = p1; n = length(Y); H = (Y'*Y).*kernel(ker,X,X); f = zeros(n,1); A = -ones(1,n); b = -nu; Aeq = Y; beq = 0; lb = zeros(n,1); ub = ones(n,1)/n; a0 = zeros(n,1); [a,fval,eXitflag,output,lambda] = quadprog(H,f,A,b,Aeq,beq,lb,ub,a0,options); case 'svm_one_class', nu = p1; n = size(X,2); H = kernel(ker,X,X); f = zeros(n,1); for i = 1:n f(i,:) = -kernel(ker,X(:,i),X(:,i)); end A = []; b = []; Aeq = ones(1,n); beq = 1; lb = zeros(n,1); ub = ones(n,1)/(nu*n); a0 = zeros(n,1); [a,fval,eXitflag,output,lambda] = quadprog(H,f,A,b,Aeq,beq,lb,ub,a0,options); case 'svr_epsilon', C = p1; e = p2; n = length(Y); Q = kernel(ker,X,X); H = [Q,-Q;-Q,Q]; f = [e*ones(n,1)-Y';e*ones(n,1)+Y']; %f = [e*ones(n,1)+Y';e*ones(n,1)-Y']; A = []; b = []; Aeq = [ones(1,n),-ones(1,n)]; beq = 0; lb = zeros(2*n,1); ub = C*ones(2*n,1); a0 = zeros(2*n,1); [a,fval,eXitflag,output,lambda] = quadprog(H,f,A,b,Aeq,beq,lb,ub,a0,options); a = a(1:n)-a(n+1:end); case 'svr_nu', C = p1; nu = p2; n = length(Y); Q = kernel(ker,X,X); H = [Q,-Q;-Q,Q]; f = [-Y';+Y']; %f = [+Y';-Y']; A = []; b = []; Aeq = [ones(1,n),-ones(1,n);ones(1,2*n)]; beq = [0;C*n*nu]; lb = zeros(2*n,1); ub = C*ones(2*n,1); a0 = zeros(2*n,1); [a,fval,eXitflag,output,lambda] = quadprog(H,f,A,b,Aeq,beq,lb,ub,a0,options); a = a(1:n)-a(n+1:end); otherwise, end eXitflag % output svm svm.type = svmType; svm.ker = ker; svm.x = X; svm.y = Y; svm.a = a';
评论
    相关推荐
    • 神经网络分类matlab程序
      使用matlab编写的神经网络分类程序,方便实用 使用matlab编写的神经网络分类程序,方便实用 使用matlab编写的神经网络分类程序,方便实用 使用matlab编写的神经网络分类程序,方便实用
    • 分类MATLAB程序
      十几个程序,谱聚类的完整例子,有详细的例子,绝对物有所值,包括花朵分类,核函数等,MATLAB程序,下载绝对值得!包括研究生写论文,也是值得参考
    • 模式分类matlab实现
      duda给出的模式分类一书的matlab实现.
    • SVM文本分类MatLAB源代码
      SVM文本分类MatLAB源代码 为m-file格式
    • 多层ELM进行MNIST手写字符分类MATLAB代码
      多层ELM进行MNIST手写字符分类MATLAB代码,直接运行.m程序,如果现实内存溢出,请改小隐藏节点个数。
    • Fisher分类MATLAB算法.rar
      手写数字识别Fisher分类MATLAB算法。内有程序,8个数字样本的训练样本。数字的特征提取部分解压后请见project report.ppt.
    • 高维多标签分类matlab
      高维多标签分类matlab knn,svm,随机森林等算法 784维数据 分为10类
    • svm多分类matlab程序
      svm多分类matlab程序,包括一对一、一对余等二叉树分类算法
    • 神经网络分类matlab程序
      使用matlab编写的神经网络分类程序,方便实用
    • 朴素贝叶斯分类matlab实现
      分类算法是统计学分类方法,它是一类利用概率统计知识进行分类的算法。在许多场合,朴素贝叶斯(Naïve Bayes,NB)分类算法可以与决策树和神经网络分类算法相媲美,该算法能运用到大型数据库中,且方法简单、分类...