陈颖频的科学网博客分享 http://blog.sciencenet.cn/u/s110500617

博文

DIY简易版SVM分类器matlab代码

已有 3546 次阅读 2015-8-1 15:30 |系统分类:教学心得|关键词:学者

%Author:Yingpin Chen
%Copyright: Minnan Normal University
%Date:Aug 1th, 2015
%Function:Matlab script of support vector machine learning
%Version:v1.0
%Reference: 候彬媛教授《神经网络》p183-184例题10-5
%Any questions can mail to 110500617@163.com

clc;clear all;

dataMatrix=[1;2;4;5;6];y=[1;1;-1;-1;1];C=50;

[n,d]=size(dataMatrix);

alphas=zeros(n,1);K=zeros(n,n);

for i=1:n

   for j=1:n   K(i,j)=  exp(-  norm(  dataMatrix(i,:)-dataMatrix(j,:) ,2)/(2*2)  )  ;H(i,j)=K(i,j).*y(i).*y(j); end

end

c = -ones(n,1);

Aeq = y.';

beq = 0;

lb = zeros(n,1);

ub = ones(n,1)*C;

alphas0 = zeros(n,1);

alphas_final=quadprog(H,c,[],[],Aeq,beq,lb,ub,alphas0);

for k=1:n

   if(abs(  alphas_final(k)  )>0.00001) break;end

end

sum=0;

for g=1:n  sum=sum+K(g,k).*y(g).*alphas_final(g);end

b_final=1/y(k)-sum;  dataTest=dataMatrix;

for i=1:n

   sum=0;

   for g=1:n K(g,i)=exp(-  norm(  dataMatrix(g,:)-dataTest(i,:) ,2)/(2*2)  )  ;sum=sum+K(g,i).*y(g).*alphas_final(g);end

  if ((sum+b_final)>0) z(i)=1; else z(i)=-1; end;

end



https://m.sciencenet.cn/blog-684084-909815.html

上一篇:1-6-1 神经网络多点学习预测网络 vs 1-6-1单点学习网络
下一篇:支持矢量机在各领域的应用

1 彭真明

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-26 19:05

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部