支持向量机(SVM).rar

  • sngyng
    了解作者
  • WINDOWS
    开发工具
  • 7KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 2
    下载次数
  • 2018-02-06 11:34
    上传日期
matlab程序段,在数学建模中使用,建模参赛程序分享
支持向量机(SVM).rar
  • sample.xlsx
    9.2KB
  • SVM.m
    1KB
内容介绍
%% 数据准备 X0=xlsread('sample.xlsx','B2:E19'); [m,n]=size(X0); X=zeros(m,n-1); for k=1:n-1 X(:,k)=(X0(:,k)-mean(X0(:,k)))/std(X0(:,k)); end %% 数据预处理 e=ones(m,1); D=X0(:,4); B=zeros(m,m); C=zeros(m,m); for k=1:m B(k,k)=1; C(k,k)=D(k,1); end %% 转化成规划模型进行求解 A=[-X(:,1).*D -X(:,2).*D -X(:,3).*D D -B]; b=-e; f=[0 0 0 0 ones(1,m)]; lb=[-inf -inf -inf -inf zeros(1,m)]'; x=linprog(f,A,b,[],[],lb); %% 结果 W=[x(1) x(2) x(3)]; %提取系数 CC=x(4); %提取截距 X1=[X(:,1) X(:,2) X(:,3)]; R1=X1*W'-CC; %代入方程的计算结果 R2=sign(R1); %根据计算结果进行分类 R=[R1 R2]; disp('超平面方程:'); disp(['X1:' num2str(W(1))]); disp(['X2:' num2str(W(2))]); disp(['X3:' num2str(W(3))]); disp(['intercept:' num2str(CC)]); disp('超平面分类结果:'); disp(R); %% % 从结果看,线性分类模型存在着一定的误差,但是这种误差是允许的 % 应用非线性SVM模型分类准确度可以达到100% % 但是非线性模型的推广能力较差,也就是说对于训练样本吻合程度好,但是对于新样本结果可能还没有线性的好 % 因此实际中常用的是现行模型
评论
    相关推荐