一完整svm分类器程序

一完整svm分类器程序

ID:21929102

大小:36.50 KB

页数:9页

时间:2018-10-25

一完整svm分类器程序_第1页
一完整svm分类器程序_第2页
一完整svm分类器程序_第3页
一完整svm分类器程序_第4页
一完整svm分类器程序_第5页
资源描述:

《一完整svm分类器程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一完整的SVM分类器的程序求一完整的SVM分类器的程序,matlab编写的。推荐答案检举

2、2011-1-2118:19这个是非线性svm的:1.命令函数部分:clear;%清屏clc;X=load('data.txt');n=length(X);%总样本数量y=X(:,4);%类别标志X=X(:,1:3);TOL=0.0001;%精度要求C=1;%参数,对损失函数的权重b=0;%初始设置截距bWold=0;%未更新a时的W(a)Wnew=0;%更新a后的W(a)fori=1:50%设置类别标志为

3、1或者-1y(i)=-1;enda=zeros(n,1);%参数afori=1:n%随机初始化a,a属于[0,C]a(i)=0.2;end%为简化计算,减少重复计算进行的计算K=ones(n,n);fori=1:n%求出K矩阵,便于之后的计算forj=1:nK(i,j)=k(X(i,:),X(j,:));endendsum=zeros(n,1);%中间变量,便于之后的计算,sum(k)=sigmaa(i)*y(i)*K(k,i);fork=1:nfori=1:nsum(k)=sum(k)+a(i

4、)*y(i)*K(i,k);endendwhile1%迭代过程%启发式选点n1=1;%初始化,n1,n2代表选择的2个点n2=2;%n1按照第一个违反KKT条件的点选择whilen1<=nify(n1)*(sum(n1)+b)==1&&a(n1)>=C&&a(n1)<=0break;endify(n1)*(sum(n1)+b)>1&&a(n1)~=0break;endify(n1)*(sum(n1)+b)<1&&a(n1)~=Cbreak;endn1=n1+1;end%n2按照最大化

5、E1-E2

6、

7、的原则选取E1=0;E2=0;maxDiff=0;%假设的最大误差E1=sum(n1)+b-y(n1);%n1的误差fori=1:ntempSum=sum(i)+b-y(i);ifabs(E1-tempSum)>maxDiffmaxDiff=abs(E1-tempSum);n2=i;E2=tempSum;endend%以下进行更新a1old=a(n1);a2old=a(n2);KK=K(n1,n1)+K(n2,n2)-2*K(n1,n2);a2new=a2old+y(n2)*(E1-E2)/K

8、K;%计算新的a2%a2必须满足约束条件S=y(n1)*y(n2);ifS==-1U=max(0,a2old-a1old);V=min(C,C-a1old+a2old);elseU=max(0,a1old+a2old-C);V=min(C,a1old+a2old);endifa2new>Va2new=V;endifa2new

9、eros(n,1);fork=1:nfori=1:nsum(k)=sum(k)+a(i)*y(i)*K(i,k);endendWold=Wnew;Wnew=0;%更新a后的W(a)tempSum=0;%临时变量fori=1:nforj=1:ntempSum=tempSum+y(i)*y(j)*a(i)*a(j)*K(i,j);endWnew=Wnew+a(i);endWnew=Wnew-0.5*tempSum;%以下更新b:通过找到某一个支持向量来计算support=1;%支持向量坐标初始化wh

10、ileabs(a(support))<1e-4&&support<=nsupport=support+1;endb=1/y(support)-sum(support);%判断停止条件ifabs(Wnew/Wold-1)<=TOLbreak;endend%输出结果:包括原分类,辨别函数计算结果,svm分类结果fori=1:nfprintf('第%d点:原标号',i);ifi<=50fprintf('-1');elsefprintf('1');endfprintf('判别函数值%f分类结果',sum

11、(i)+b);ifabs(sum(i)+b-1)<0.5fprintf('1');elseifabs(sum(i)+b+1)<0.5fprintf('-1');elsefprintf('归类错误');endendend2.名为f的功能函数部分:functiony=k(x1,x2)y=exp(-0.5*norm(x1-x2).^2);end3.数据:0.8871-0.34918.337601.25191.20836.50410-1.19251.93381.87900-0.12772.4

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。