1. 程式人生 > >在matlab中如何使用SVM工具箱

在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