日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

在matlab中如何使用SVM工具箱

發(fā)布時間:2025/4/16 97 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在matlab中如何使用SVM工具箱 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、SVM下載

http://see.xidian.edu.cn/faculty/chzheng/bishe/indexfiles/indexl.htm

二、在MATLAB中添加svm工具箱

參考:

http://jingyan.baidu.com/article/a501d80cf764c3ec630f5ef5.htm

1、首先需要MATLAB SVM Toolbox,將其中的文件解壓并命名為svm

2、將文件拷到E:\matlab\toolbox (我的是在E:\MATLAB\R2013a\toolbox)
3、打開matlab點(diǎn)擊set path---->add folder 然后把你的工具箱文件夾添加進(jìn)去就可以了
4、路徑加進(jìn)去后在file→Preferences→General的Toolbox Path Caching里點(diǎn)擊update Toolbox Path Cache更新一下。
5、最后在matlab的命令欄中輸入which svcoutput可以查看路徑E:\matlab\toolbox\svm\svcoutput.m就可以了

三、如何使用SVM

原文地址:

http://blog.sina.com.cn/s/blog_5bd2cb260100eo2y.html

1,下載SVM工具箱:http://see.xidian.edu.cn/faculty/chzheng/bishe/indexfiles/indexl.htm

2,安裝到matlab文件夾中

??1)將下載的SVM工具箱的文件夾放在\matlab71\toolbox\下

??2)打開matlab->File->Set Path中添加SVM工具箱的文件夾

??現(xiàn)在,就成功的添加成功了.

??可以測試一下:在matlab中輸入which svcoutput 回車,如果可以正確顯示路徑,就證明添加成功了,例如:

?C:\Program Files\MATLAB71\toolbox\svm\svcoutput.m

3,用SVM做分類的使用方法

??1)在matlab中輸入必要的參數(shù):X,Y,ker,C,p1,p2

????我做的測試中取的數(shù)據(jù)為:

????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)輸入預(yù)測函數(shù),可以得到與預(yù)想的分類結(jié)果進(jìn)行比較.

??????輸入: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),回車

?補(bǔ)充:

X和Y為數(shù)據(jù),m*n:m為樣本數(shù),n為特征向量數(shù)

比如:取20組訓(xùn)練數(shù)據(jù)X,10組有故障,10組無故障的,每個訓(xùn)練數(shù)據(jù)有13個特征參數(shù),則m=20,n=13

Y為20*1的矩陣,其中,10組為1,10組為-1.

對于測試數(shù)據(jù)中,如果取6組測試數(shù)據(jù),3組有故障,3組無故障的,則m=6,n=13

Y中,m=6,n=1

????


四、在Matlab中最初使用SVM出現(xiàn)的問題

原文地址:http://www.ilovematlab.cn/thread-265034-1-1.html

??? Undefined function or method 'qp' for input arguments of type 'double'.
看到論壇有很多人問這個問題[1],其實(shí)出現(xiàn)這個問題的根本原因是:matlab 5.X 的qp函數(shù)在matlab 6.0以上版本被quadprog函數(shù)取代[2].

解決辦法:
[alpha lambda how] = quadprog(H, c, A, b,??[], [], vlb, vub, x0, neqcstr);
替換svc函數(shù)中的72行:[alpha lambda how] = qp(H, c, A, b, vlb, vub, x0, neqcstr);

我在測試的時候,發(fā)現(xiàn)[alpha lambda how] = qp(H, c, A, b, vlb, vub, x0, neqcstr);在svc函數(shù)的第60行。應(yīng)該是svm的版本不同造成的。

總結(jié)

以上是生活随笔為你收集整理的在matlab中如何使用SVM工具箱的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。