/ \& S/ J. x$ {7 V- S! l支持向量机原理% |& ~: W6 l/ M, F
8 [+ y7 ` L. ]' \% C. }
1.寻求最有分类边界 % m# f- Q w$ Y9 o- x* j% F. l/ P: n0 j# S7 T( X
正确:对大部分样本可以正确的划分类别 : i" q) A0 n: z; |7 c" k & [# J0 b: Q0 G7 \% H2 }; J" i泛化:最大化支持向量间距" }5 Z: f8 f, R
' d6 \) Q8 `: k1 Y4 z4 t8 o9 {7 D8 V( c公平:与支持向量等距 5 B I9 Q3 E0 g- K2 i, D' L; D: j4 r( u6 N& {/ n0 V
简单:线性、直线或平面,分割超平面 s2 }2 _5 _8 h7 p+ W + v5 m9 h/ w' g/ s. j7 H8 q2.基于核函数的生维变换 & l% L" \3 u+ d. b5 K' w4 d) c9 }. X8 m' b$ @( W% L; l
通过名为核函数的特征变换,增加新的特征,使得低维度的线性不可分问题变为高维度空间中线性可分问题。 5 D- m$ |* Z3 c/ U, L) i & y. b9 G( _6 a一、引论 5 M) `+ s/ d6 c0 L: [0 G5 | 5 ^' n* Z, M$ N# Z5 R使用SVM支持向量机一般用于分类,得到低错误率的结果。SVM能够对训练集意外的数据点做出很好的分类决策。那么首先我们应该从数据层面上去看SVM到底是如何做决策的,这里来看这样一串数据集集合在二维平面坐标系上描绘的图: ( m5 _8 o5 O& X% o( f& Y" p( x/ z3 O' M2 K
W3 C# K7 e6 s4 j9 j" m7 \3 y
0 |: C- M B6 V% v/ L现在我们需要考虑,是否能够画出一条直线将圆形点和星星点分开。像first第一张图片来看,圆点和星点就分的很开,很容易就可以在图中画出一条直线将两组数据分开。而看第二张图片,圆点和星点几乎都聚合在一起,要区分的话十分困难。7 p; p5 |1 p$ m% M
% e# N' W! b4 I, x+ ?( V8 g
我们要划线将他们区分开来的话,有有无数条可以画,但是我们难以找到一条最好区分度最高的线条将它们几乎完全区分。那么在此我们需要了解两个关于数据集的基本概念:0 s0 J9 K# {1 c
) I* W& \1 g6 F m/ D! _+ @# t) I二、理论铺垫1 X5 T$ Y; \% o. j* O
7 H3 E2 U* q! G线性可分性(linear separability)9 V7 E7 D0 I' j7 T' H$ f4 M! h
1 g5 t( P _! ]( _; V
4 x! U" ?, [9 O% a( T( p3 K+ r1 Z8 X: e
而对机器学习来说,涉及的多是高维空间(多维度)的数据分类,高维空间的SVM,即为超平面。机器学习的最终目的就是要找到最合适的(也即最优的)一个分类超平面(Hyper plane),从而应用这个最优分类超平面将特征数据很好地区分为两类。 * |2 E0 e" d! w$ F: [& J& Z: D6 u) x! E# r* Z* z! w/ k
2 o2 o! T( O, X6 ^2 U% k
: X6 U; h4 A) [* d q2 A- Z
决策边界 7 V+ ]9 B2 U6 I; T" y$ s6 B2 R3 w' E, N; v3 Q6 k
SVM是一种优化的分类算法,其动机是寻找一个最佳的决策边界,使得从决策边界与各组数据之间存在margin,并且需要使各侧的margin最大化。那么这个决策边界就是不同类之间的界限。 0 J& H2 R0 _8 {5 a$ P I6 T* a& ]0 Q8 ?( e6 s