! P. U% s9 h3 M# n4 L# a6 s8 z5 w支持向量机原理7 K. r/ O. ^3 ?( q& d' u) J1 k( U
; v/ D3 ~5 R& u" F& `
1.寻求最有分类边界 2 {3 d3 r$ w1 e4 D( | ) i) K# C: g6 C. X/ @" C w8 d% ]正确:对大部分样本可以正确的划分类别 2 T5 R3 h( \, H; c0 a5 P n i+ c' D7 Y0 `泛化:最大化支持向量间距$ N8 T2 s& I. A
/ a; d- n/ p/ f1 h, J# Q2 _
公平:与支持向量等距 9 H, b: l! ~/ }2 k # b: z* p5 j: ~0 C0 D0 y简单:线性、直线或平面,分割超平面6 Y1 h* _7 U$ t9 Y# V5 S
+ s6 }8 B; n' \# o0 M+ v5 y2.基于核函数的生维变换4 V$ Q1 N1 [1 N- ^. E
2 }% i/ n. N, g5 c
通过名为核函数的特征变换,增加新的特征,使得低维度的线性不可分问题变为高维度空间中线性可分问题。3 z* Y! e3 g6 C) t/ |' n
2 N+ |4 i( L, J
一、引论: z5 b- ?: H# B( [+ d
+ A8 }, h9 _+ h* ~6 S# i7 o使用SVM支持向量机一般用于分类,得到低错误率的结果。SVM能够对训练集意外的数据点做出很好的分类决策。那么首先我们应该从数据层面上去看SVM到底是如何做决策的,这里来看这样一串数据集集合在二维平面坐标系上描绘的图:( _& i5 \, u. ^2 J$ F4 g
9 M& S. h7 N) ~: u+ W' ?
6 ~& ^6 w) o, a @/ F3 S5 i+ j 0 m% ]8 s! x- c) f现在我们需要考虑,是否能够画出一条直线将圆形点和星星点分开。像first第一张图片来看,圆点和星点就分的很开,很容易就可以在图中画出一条直线将两组数据分开。而看第二张图片,圆点和星点几乎都聚合在一起,要区分的话十分困难。$ q1 w8 F2 M+ j: S, c3 Y+ p' n* ]
- c# C; X3 ~5 B& j7 P- ~2 j
我们要划线将他们区分开来的话,有有无数条可以画,但是我们难以找到一条最好区分度最高的线条将它们几乎完全区分。那么在此我们需要了解两个关于数据集的基本概念:4 S" W: W# c7 a
v2 E/ V! f8 Q; i二、理论铺垫/ x8 F1 g+ P2 j
- k5 A% V1 E$ O( H. I. l% T) c线性可分性(linear separability)9 A% ^0 W! U% K" ]" |# u
7 z9 L8 L: r. s2 k) y8 I( c. D
! I4 c* H5 C3 U. G1 y, U j' L4 t9 U# g. s! F+ N9 J# A
而对机器学习来说,涉及的多是高维空间(多维度)的数据分类,高维空间的SVM,即为超平面。机器学习的最终目的就是要找到最合适的(也即最优的)一个分类超平面(Hyper plane),从而应用这个最优分类超平面将特征数据很好地区分为两类。0 q& D, G! h x( y B+ M