支持向量机(SVM)
github地址https://github.com/thesouther/MachineLearningAndMatrixAnalysis/blob/master/SVM/SVM.ipynb
1. 基本概念
支持向量: 在线性可分的情况下,训练数据集中与分类超平面距离最近的样本点的实例。
间隔
间隔边界
函数间隔: 对于给定的训练数据集 T T T和超平面 ( w , b ) (w,b) (w,b),定义超平面和样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的函数间隔为:
γ ^ i = y i ( w ⋅ x i + b ) (1) \hat{\gamma}_i=y_i(w\cdot{x_i}+b) \tag{1} γ^i=yi(w⋅xi+b)(1)
所有样本点关于超平面的函数间隔可以表示分类预测正确性和确信度:
γ ^ = m i n i = 1 , . . . , N γ ^ i (2) \hat{\gamma}= \mathop{min}\limits_{i=1,...,N}\hat{\gamma}_i \tag{2} γ^=i=1,...,Nminγ^i(2)
该间隔当 w w w和 b b b等比例扩大时,间隔也扩大,所以引入几何间隔,使间隔度量确定。
几何间隔: 超平面 ( w , b ) (w,b) (w,b)关于样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的几何间隔一般使实例到超平面的带符号距离,当样本点被超平面分类正确时就是实例点到超平面的距离。
γ i = y i ( w ∣ ∣ w ∣ ∣ ⋅ x i + b ∣ ∣ w ∣ ∣ ) (3) {\gamma}_i=y_i\left(\frac{w}{||w||}\cdot x_i + \frac{b}{||w||}\right) \tag{3} γi=yi(∣∣w∣∣w⋅xi+∣∣w∣∣b)(3)
γ = m i n i = 1 , . . . , N γ i (4) {\gamma}= \mathop{min}\limits_{i=1,...,N}{\gamma}_i \tag{4} γ=i=1,...,Nminγi(4)
由上可以函数间隔和几何间隔的关系:
γ = γ ^ ∣ ∣ w ∣ ∣ \gamma=\frac{\hat{\gamma}}{||w||} γ=∣∣w∣∣γ^
硬间隔最大化: 对训练数据找到几何间隔最大化的超平面意味着:以充分大的确信度对训练数据进行分类。
max w , b γ s . t . y i ( w ∣ ∣ w ∣ ∣ ⋅ x i + b ∣ ∣ w ∣ ∣ ) ≥ γ (5) \begin{aligned} &\max\limits_{w,b} \gamma \\ &s.t.\ \ \ y_i\left(\frac{w}{||w||}\cdot x_i + \frac{b}{||w||}\right) \ge \gamma \end{aligned}\tag{5}