资源描述:
《支持向量机程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、该工具箱包括了二种分类,二种回归,以及一种一类支持向量机算法(1)Main_SVC_C.m---C_SVC二类分类算法(2)Main_SVC_Nu.m---Nu_SVC二类分类算法(3)Main_SVM_One_Class.m---One-Class支持向量机(4)Main_SVR_Epsilon.m---Epsilon_SVR回归算法(5)Main_SVR_Nu.m---Nu_SVR回归算法%-------------------------------------------------------%3使用(1)目录下以Main_开头的文件即是主程
2、序文件,直接按快捷键F5运行即可(2)工具箱中所有程序均在Matlab6.5环境中调试通过,不能保证在Matlab其它版本正确运行%-------------------------------------------------------%%%SupportVectorMachineMatlabToolbox1.0-CSupportVectorClassification%Platform:Matlab6.5/Matlab7.0%Copyright:LUZhen-bo,NavyEngineeringUniversity,WuHan,HuBei,P.
3、R.China,430033%E-mail:luzhenbo@yahoo.com.cn%Homepage:http://luzhenbo.88uu.com.cn%Reference:Chih-ChungChang,Chih-JenLin."LIBSVM:aLibraryforSupportVectorMachines"%%Solvethequadraticprogrammingproblem-"quadprog.m"clcclearcloseall%----------------------------------------------------
4、--------%%定义核函数及相关参数C=200;%拉格朗日乘子上界ker=struct('type','linear');%ker=struct('type','ploy','degree',3,'offset',1);%ker=struct('type','gauss','width',1);%ker=struct('type','tanh','gamma',1,'offset',0);%ker-核参数(结构体变量)%thefollowingfields:%type-linear:k(x,y)=x'*y%poly:k(x,y)=(x'*y+c)^
5、d%gauss:k(x,y)=exp(-0.5*(norm(x-y)/s)^2)%tanh:k(x,y)=tanh(g*x'*y+c)%degree-Degreedofpolynomialkernel(positivescalar).%offset-Offsetcofpolynomialandtanhkernel(scalar,negativefortanh).%width-WidthsofGausskernel(positivescalar).%gamma-Slopegofthetanhkernel(positivescalar).%--------
6、----------------------------------------------------%%构造两类训练样本n=50;randn('state',3);x1=randn(n,2);y1=ones(n,1);x2=5+randn(n,2);y2=-ones(n,1);figure(1);plot(x1(:,1),x1(:,2),'bx',x2(:,1),x2(:,2),'k.');holdon;X=[x1;x2];%训练样本,n×d的矩阵,n为样本个数,d为样本维数Y=[y1;y2];%训练目标,n×1的矩阵,n为样本个数,值为+1或-1
7、%------------------------------------------------------------%%训练支持向量机ticsvm=C_SVC_Train(X,Y,C,ker);t_train=toc%svm支持向量机(结构体变量)%thefollowingfields:%ker-核参数%x-训练样本%y-训练目标;%a-拉格朗日乘子%------------------------------------------------------------%%寻找支持向量a=svm.a;epsilon=1e-8;%如果小于此值则认为
8、是0i_sv=find(a>epsilon);%支持向量下标plot(X(i_sv,1),X(