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)
y1 = ones(1,N);
x2 = 5+randn(2,N);) V" U0 J* w2 X- b4 a5 k7 J
y2 = -ones(1,N);
figure;
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')
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
_____________________________3 r8 N) w& K) n7 l1 `1 x1 H1 K
Constructing ...' s' `$ t# q" k1 c' X1 \
Optimising ...
Execution time: 1.9 seconds4 G6 ` z! ?8 I/ x( ?5 c
Status : OPTIMAL_SOLUTION
|w0|^2 : 0.418414! [ P9 y$ W }! i
Margin : 3.091912
Sum alpha : 0.418414
Support Vectors : 3 (3.0%)
nsv =
3
A1 A$ Q, ?; |( p0 l( G9 r, ~
alpha =
0.0000
0.00009 T* t! [0 k7 }4 O# w: F3 x; s
0.0000
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 GpredictedY =
1: E0 M* ]4 S" v8 z8 A' V3 A
1- W1 W; q. C+ F+ _7 R
1
1
1
1 U9 Q! w/ C; ~" Z# u# ]- F7 W
1
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
| 欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) | Powered by Discuz! X3.2 |