注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

面朝大海 春暖花开

一点心得,转载本博客文章,请注明转帖,谢谢!

 
 
 

日志

 
 
关于我

中国科学院博士 主要从事遥感机理、定量反演、数据处理以及GIS应用研究。ArcGIS、Envi 、ERDAS、Ecognition软件、IDL语言、6S、SAIL

网易考拉推荐

matlab中如何添加svm工具包?--转  

2013-06-20 21:18:55|  分类: matlab |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

内容是转自一个博客,本人没有亲自试验。

此外介绍一个svm的网站http://www.csie.ntu.edu.tw/~cjlin/libsvm/

LIBSVM -- A Library for Support Vector Machines

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 ...
Execution time: 1.9 seconds
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。

至此,以上程序就可以正常运行,这个问题解决了...

  评论这张
 
阅读(726)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017