在matlab中如何使用SVM工具箱
2,安裝到matlab資料夾中
1)將下載的SVM工具箱的資料夾放在\matlab71\toolbox\下
2)開啟matlab->File->Set Path中新增SVM工具箱的資料夾
現在,就成功的新增成功了.
可以測試一下:在matlab中輸入which svcoutput 回車,如果可以正確顯示路徑,就證明新增成功了,例如:
C:\Program Files\MATLAB71\toolbox\svm\svcoutput.m
3,用SVM做分類的使用方法
1)在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