logo资料库

如何在Matlab中添加支持向量机SVM工具箱?(对Vista系统尤其有效).doc

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
matlab 中如何添加 svm 工具包? 1)登陆西安电子科技大学电子工程学院网站下的网页: http://see.xidian.edu.cn/faculty/chzheng/bishe/indexfiles/indexl.htm 下载 SVM 通用工具箱; 3)解压,将解压后的 SVM 文件夹复制后加入 matlab 之下的 toolbox 文件夹如:C:\Program Files\MATLAB\R2009a\toolbox; 4)打开 matlab->File->Set Path 中添加 SVM 工具箱的文件夹; 5)matlab 中输入 which svcoutput 回车,如果可以正确显示路径,就证明添加成功了 6)如果操作系统是 Vista,需在控制面板找到用户控制界面,取消默认的用户控制选项。不 然,操作系统将阻止改动 qp.dll 文件; 7)在 matlab 中输入必要的参数:X,Y,ker,C,p1,p2; 比如输入: N = 50; n=2*N; randn('state',6); x1 = randn(2,N) y1 = ones(1,N); x2 = 5+randn(2,N); y2 = -ones(1,N); figure; plot(x1(1,:),x1(2,:),'bx',x2(1,:),x2(2,:),'k.'); axis([-3 8 -3 8]); title('C-SVC') hold on; X1 = [x1,x2]; Y1 = [y1,y2]; X=X1'; Y=Y1'; %其中,X 是100*2的矩阵,Y 是100*1的矩阵; C=Inf; ker='linear'; global p1 p2 p1=3; p2=1; %然后,在 matlab 中输入:
[nsv alpha bias] = svc(X,Y,ker,C);%回车之后,会显示: Support Vector Classification _____________________________ Constructing ... Optimising ... 1.9 seconds Execution time: Status : OPTIMAL_SOLUTION |w0|^2 : 0.418414 Margin : 3.091912 Sum alpha : 0.418414 Support Vectors : 3 (3.0%) nsv = 3 alpha = 0.0000 0.0000 0.0000 0.0000 0.0000 2)输入预测函数,可以得到与预想的分类结果进行比较. 输入:predictedY = svcoutput(X,Y,X,ker,alpha,bias),回车后得到: predictedY = 1 1 1 1 1 1 1 1 1 3)画图 输入:svcplot(X,Y,ker,alpha,bias),回车 补充: X 和 Y 为数据,m*n:m 为样本数,n 为特征向量数 比如:取20组训练数据 X,10组有故障,10组无故障的,每个训练数据有13个特征参数,则 m=20,n=13 Y 为20*1的矩阵,其中,10组为1,10组为-1. 对于测试数据中,如果取6组测试数据,3组有故障,3组无故障的,则 m=6,n=13 Y 中,m=6,n=1
使用第一个 steve gunn 's SVM 遇到一个问题。 ??? Invalid file C:\Program Files\MATLAB\R2009a\toolbox\svm\qp.dll': 不 是 一 个 32 位 windows 程序 这个问题是由于版本问题引起的,我使用的是 Matlab R2009版。 问题描述:mex 在不同 windows OS 下编译的结果,所以我们需要重新编译一下 qp.dll 方法:steve gunn 的包下面有一个 optimiser 文件夹,把 current Diretory 目录改为 optimiser 目录,例如 D:\Program Files\MATLAB\R2007a\toolbox\svm\Optimiser,然后运行命令 >> mex -v qp.c pr_loqo.c 命令运行完毕后,你会发现原先的 qp.dll 变为 qp.dll.old,还出现了 qp.mexw32,我们把该 文件改为 qp.dll 并复制到工具箱 svm 文件夹下,原先的 svm 文件夹下的 qp.dll 可以先改一 下名字。 注意,如果操作系统是 Vista,需在控制面板找到用户控制界面,取消默认的用户控制选项。 不然,操作系统将阻止将 qp.dll 改为 qp.dll.old,也就不能建立 qp.mexw32。 至此,以上程序就可以正常运行,这个问题解决了...
分享到:
收藏