EDA365电子论坛网

标题: 了解一下Matlab中的SVM工具箱的使用方法吧 [打印本页]

作者: haidaowang    时间: 2020-7-2 15:36
标题: 了解一下Matlab中的SVM工具箱的使用方法吧

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工具箱的文件夹

  现在,就成功的添加成功了.

  可以测试一下:在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;$ R: T& x/ f7 T$ g! i9 j
    randn('state',6);. S' R# _6 C# W3 V0 Q. p
    x1 = randn(2,N)
, O: o* @! g! n/ H/ D    y1 = ones(1,N);
, @1 j0 \( }) I5 O8 E% `    x2 = 5+randn(2,N);) V" U0 J* w2 X- b4 a5 k7 J
    y2 = -ones(1,N);

    figure;
  n# w# f/ Q( A9 a    plot(x1(1,: ),x1(2,: ),'bx',x2(1,: ),x2(2,: ),'k.');' h" x! Y- K, \* }5 k2 J
    axis([-3 8 -3 8]);/ q/ V2 c9 ?/ p4 |: g
    title('C-SVC')
" m3 U' q8 @: `# g$ S    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),回车之后,会显示:

; p* r7 |& e' Y( Y0 H' T- e7 @

Support Vector Classification
1 n9 V5 Z( N0 m$ [% B_____________________________3 r8 N) w& K) n7 l1 `1 x1 H1 K
Constructing ...' s' `$ t# q" k1 c' X1 \
Optimising ...
7 V: b5 F& s0 {5 q) P* ]Execution time:  1.9 seconds4 G6 `  z! ?8 I/ x( ?5 c
Status : OPTIMAL_SOLUTION
3 u& }+ v3 u  n0 H( M( q|w0|^2    : 0.418414! [  P9 y$ W  }! i
Margin    : 3.091912
% m+ l' Z* P6 O' YSum alpha : 0.418414
0 S/ R. y# J4 v* x; A0 rSupport Vectors : 3 (3.0%)

nsv =

     3

  A1 A$ Q, ?; |( p0 l( G9 r, ~
alpha =

    0.0000
. I1 h0 ?# I# p' o, Q/ R; A    0.00009 T* t! [0 k7 }4 O# w: F3 x; s
    0.0000
3 L8 T/ ]8 Z* ?2 `2 `    0.0000. V9 n( V% m4 c; j' P7 q
    0.0000

    2)输入预测函数,可以得到与预想的分类结果进行比较.

      输入:predictedY = svcoutput(X,Y,X,ker,alpha,bias),回车后得到:

9 Q# @4 C0 r8 M4 G

predictedY =

     1: E0 M* ]4 S" v8 z8 A' V3 A
     1- W1 W; q. C+ F+ _7 R
     1
( w5 k) I, f, }" x; H+ @     1
: K9 u4 L* H! f! J! b8 s2 ^, h     1
8 u: w# L( y& Y/ f     1  U9 Q! w/ C; ~" Z# u# ]- F7 W
     1
/ ]. O9 K# A! D0 n3 i* I" L* t     10 ?5 d  D, X2 k0 Z# Q0 O
     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


0 \! o. |9 t9 ]/ Z' v" Z% D0 B+ J7 ^. s" l9 ~
" N8 t8 o: H7 |& c0 y9 ?- T( W. e7 R

8 |% `, T, }' P) ]5 V0 T# X# w
7 e3 ~8 n) d7 {6 ?4 E5 s0 F3 F% d2 \3 {, R
4 _/ [5 y1 X+ G6 D! G( u8 F3 p8 A: P2 O3 F
# j1 Y+ Z& u- b1 }% n) @

作者: xiaogegepcb    时间: 2020-7-2 16:22
Matlab中的SVM工具箱的使用方法




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2