




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、matlab 支持向量机(SVM)用于分类的算法实现 function D, a_star = SVM(train_features, train_targets, params, region)% Classify using (a very simple implementation of) the support vector machine algorithm% Inputs:% features- Train features% targets - Train targets% params - kernel, kernel parameter, solver type, Slack
2、%Kernel can be one of: Gauss, RBF (Same as Gauss), Poly, Sigmoid, or Linear%The kernel parameters are:%RBF kernel - Gaussian width (One parameter)%Poly kernel - Polynomial degree%Sigmoid- The slope and constant of the sigmoid (in the format 12, with no separating commas)% Linear- None needed%Solver
3、type can be one of: Perceptron, Quadprog% region - Decision region vector: -x x -y y number_of_points% Outputs% D - Decision sufrace% a - SVM coeficients% Note: The number of support vectors found will usually be larger than is actually% needed because both solvers are approximate.Dim, Nf = size(tra
4、in_features);Dim= Dim + 1;train_features(Dim,:) = ones(1,Nf);z = 2*(train_targets0) - 1;%Get kernel parameterskernel, ker_param, solver, slack = process_params(params);%Transform the input featuresy = zeros(Nf);switch kernel,case Gauss,RBF,for i = 1:Nf,y(:,i)= exp(-sum(train_features-train_features(
5、:,i)*ones(1,Nf).A2)/(2*ker_paramA2);endcase Poly, Linearif strcmp(kernel, Linear)ker_param = 1;endfor i = 1:Nf,y(:,i) = (train_features*train_features(:,i) + 1).Aker_param;endcase Sigmoidif (length(ker_param) = 2)error(This kernel needs two parameters to operate!)endfor i = 1:Nf,y(:,i) = tanh(train_
6、features*train_features(:,i)*ker_param(1)+ker_param(2); endotherwiseerror(Unknown kernel. Can be Gauss, Linear, Poly, or Sigmoid.) end%Find the SVM coefficientsswitch solvercase Quadprog%Quadratic programmingif isfinite(slack)alpha_star = quadprog(z*z).*(y*y), -ones(1, Nf), , , z, 0, 0);elsealpha_st
7、ar = quadprog(z*z).*(y*y), -ones(1, Nf), , , z, 0, 0, slack);enda_star = (alpha_star.*z)*y;%Find the biasin= find(alpha_star 0) & (alpha_star 0) & (iter max_iter) iter = iter + 1;if (iter/5000 = floor(iter/5000),disp(Working on iteration number num2str(iter)end%Find the worse classified sample (That
8、 farthest from the border)dist = a_star*processed_y+xi;m, indice = min(dist);a_star = a_star + rate*processed_y(:,indice);%Calculate the new slack vectorxi(indice) = xi(indice) + rate;xi = xi / sum(xi) * slack;endif (iter = max_iter),disp(Maximum iteration ( num2str(max_iter) ) reached);elsedisp(Con
9、verged after num2str(iter) iterations.)endbias = 0;a_star = a_star(1:Nf);case Lagrangian%Lagrangian SVM (See Mangasarian & Musicant, Lagrangian Support Vector Machines) tol= 1e-5;max_iter= 1e5;nu= 1/Nf;iter= 0;D= diag(z);alpha = 1.9/nu;=ones(Nf,1);I=speye(Nf);Q=I/nu + D*y*D;P=inv(Q);u=P*e;oldu=u + 1
10、;while (iter tol), iter = iter + 1;if (iter/5000 = floor(iter/5000),disp(Working on iteration number num2str(iter) endoldu = u;f= Q*u-1-alpha*u;u= P*(1+(abs(f)+f)/2);enda_star = y*D*u(1:Nf);bias = -e*D*u;otherwiseerror(Unknown solver. Can be either Quadprog or Perceptron) end%Find support verctorssv
11、 = find(abs(a_star) 1e-10);Nsv = length(sv);if isempty(sv),error(No support vectors found);elsedisp(Found num2str(Nsv) support vectors)end%Marginb = 1/sqrt(sum(a_star.A2);disp(The margin is num2str(b)%Now build the decision regionN= region(5);xx= linspace (region(1),region(2),N);yy= linspace (region(3),region(4),N);D = zeros(N);for j = 1:N,y = zeros(N,1);for i = 1:Nsv,data = xx(j)*ones(1,N); yy; ones(1,N);switch kernel,a_star(i)case Gauss,RBF, y= y +exp(-sum(data-train_features(:,sv(i)*ones(1,N).A2)/(2*ker_paramA2);case Poly, Line
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB54-T 0418-2024 传统青稞酒原料 青稞质量要求
- 儿童心理健康与压力管理
- 办写字楼租赁合同书(32篇)
- 安全生产知识考试题库及答案大全
- 班主任与学生交流沟通的方式公开课教学设计课件资料
- 北京市房山区2019-2021年(三年)中考二模英语试卷分类汇编:阅读理解
- 2025届贵州省长顺县民族高级中学高一化学第二学期期末预测试题含解析
- 2025届山东省临沂市沂南县化学高一下期末教学质量检测试题含解析
- 湖北省武汉市常青联合体2024-2025学年度高一下学期期末考试语文试题(含答案)
- 工会全民读书活动方案
- 2025至2030年中国尼龙再生料行业市场运行格局及发展前景研判报告
- 德克士的区域扩张计划
- 网络行为分析-第1篇-洞察及研究
- 修理工安全试题及答案
- 辅导员职业资格考试2025年试题及答案
- 2025年传统食品工业化生产智能化生产线改造报告
- 园林绿化工高级考试试题及答案
- 2025年一年级语文1-8单元期末考试复习基础知识点默写清单(有答案)
- 2025年重症医学科ICU护理质量控制计划
- 试油气技术试题及答案
- 2025年江苏省无锡市初中学业水平考试模拟测试英语试题(含解析)
评论
0/150
提交评论