EDA365电子论坛网
标题:
MATLAB自带的SVM工具对两个类别的分类(binary)支持的非常好
[打印本页]
作者:
yxlk
时间:
2020-8-7 13:24
标题:
MATLAB自带的SVM工具对两个类别的分类(binary)支持的非常好
在MATLAB 14b之前,MATLAB自带的SVM工具对两个类别的分类(binary)支持的非常好。看到很多会员问如何使用MATLAB自带的SVM工具来实现多个类别的分类。在MATLAB R2014b里,这个功能已经被实现了:
\3 e0 ]9 w3 n- X* Q7 c
! `; {% d! T2 h! o& z0 P/ u
例子:
/ Y- A, S4 J( W/ M; Y; ?
/ R2 I( T* b% ]" k( x8 ^$ S
先导入数据:
& Z$ ~; j1 w+ N# e
0 t9 S8 l8 C$ S& s9 |
load fisheriris
X = meas;
Y = species;
8 V4 U8 _& F" o9 p# G2 q
3 S0 h" \; g7 F- W7 Y6 Q
[color=rgb(51, 102, 153) !important]
复制代码
% S6 z5 M9 k- u
创建一个SVM模版:
7 y! J( R" n' @4 E: q
* @6 U9 s# L$ C; c
t = templateSVM('Standardize',1)
, p6 B/ Q. D0 \
. s7 B( k; e H6 V8 a m
[color=rgb(51, 102, 153) !important]
复制代码
: N5 ~! }. t( y) N/ W& _. j
. v4 e( e; H9 |4 \
% f: w T) a* E- E
训练这个分类器,这是14b新推出的功能:
1 a/ r" o F- p7 O/ c3 ?
4 j2 a/ I* L- d6 A" v; g
Mdl = fitcecoc(X,Y,'Learners',t,...
'ClassNames',{'setosa','versicolor','virginica'});
/ j4 d* f0 p1 S" E$ r; o8 ^: I
0 @, q, [- e+ {0 ^; l
[color=rgb(51, 102, 153) !important]
复制代码
2 v) d6 I, s$ m7 T, c, N8 e, D
/ l& \: c: u* C- W/ y4 @ ^
3 X8 `2 q( n- ?: W5 M4 i
训练好以后,可以验证SVM模型:
4 [* T e" X- ^5 I# w' j p$ V0 [
4 f0 i( b/ {) n, z1 H
CVMdl = crossval(Mdl);
1 `7 t, _9 v5 a5 F
* j8 w7 Z- C# ?
[color=rgb(51, 102, 153) !important]
复制代码
7 \6 f7 V0 f/ v9 f: d l& U; M
2 U( q [: v6 J$ v }7 ?6 p7 y
显示验证的结果:
+ `3 k! O! x- q$ W5 v3 f
oosLoss = kfoldLoss(CVMdl)
! w5 ]& j6 {* Y0 P- p" P
# H) S2 _/ ?8 b9 K5 x" N
[color=rgb(51, 102, 153) !important]
复制代码
8 y5 S1 x6 _, V7 W/ u) e$ x5 w
' j& d* x* _( F
- r8 m3 Y; Q+ }* @
对于这个分类器,我们的验证结果是:
5 T& X0 n+ z+ V8 |9 w1 Z
' E1 Q% \1 N' ?
oosLoss = 0.0400
' G5 J2 ~: S' }; H* ^5 k
. o# m" `; L! @! i
这表明分类的效果很好!
作者:
Heaven_1
时间:
2020-8-7 18:38
分类器常用
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2