SVM模型
一、模型介绍
01 超平面
在一维空间中,若需要将数据切分为两段,只需要一点即可;在二维空间中,对于线性可分的样本,将其切分为两类只需一条直线即可;在三维空间中,将样本切分开来,就需要一个平面。
02 距离计算
点到线的距离:
d = ∣ A x 0 + B y 0 + C ∣ A 2 + B 2 d=\frac{|Ax_0+By_0+C|}{\sqrt{A^2+B^2}} d=A2+B2∣Ax0+By0+C∣
平行线间的距离:
d = ∣ C 1 − C 2 ∣ A 2 + B 2 d=\frac{|C_1-C_2|}{\sqrt{A^2+B^2}} d=A2+B2∣C1−C2∣
03 SVM模型思想
假设上图中间红线 l l l为分割面,为了使其达到最优,有以下三个步骤:
- 计算左右两个类别中的样本点到直线的距离
- 从两组距离中各挑选出一个最短的 d 1 d_1 d1和 d 2 d_2 d2;继续比较 d 1 d_1 d1和 d 2 d_2 d2,选出其中最短的,以该距离构造分隔带
- 利用无穷多个分割直线 l i l_i li,构造无穷多个“分隔带”,并从这些分隔带中挑选出宽最大的 l l l
分隔带:
“分隔带”代表了模型划分样本点的能力和可信度,“分隔带”越宽,说明模型能够将样本点划分得越清晰,进而保证模型的泛化能力越强。
目标函数:
J ( w , b , i ) = a r g w , b m a x m i n ( d i ) J(w,b,i)=arg_{w,b}maxmin(d_i) J(w,b,i)=argw,bmaxmin(di)
其中, d i d_i di表示样本点i到某条固定分割面的距离; m i n ( d i ) min(d_i) min(di)表示所有样本点与某个分割面之间距离的最小值; a r g w , b m a x m i n ( d i ) arg_{w,b}maxmin(d_i) argw,bmaxmin(di)表示从所有分割面中寻找“分割带”最宽的“超平面”;其中 w , b w,b w,b代表线性分割面的参数。
上图所示,将五角星和圆点分别表示负例样本和正例样本,两条虚线与分割面 w ′ x + b = 0 w'x+b=0 w′x+b=0平行,虚线分别表示因变量y取值为-1和+1的情况。
那么,不管是五角星还是圆点,这些样本点均落在两条虚线之上或之外,则说明这些点带人方程 w ′ x + b w'x+b w′x+b所得绝对值一定大于等于1.
进而说明若某一样本点取值越小于-1,则该样本为负例的可能性越高;点对应的取值越大于+1,样本为正例的可能性越高。
γ i ^ = y i × ( w ′ x i + b ) \hat{\gamma_i}=y_i\times(w'x_i+b) γi^=yi×(w′xi+b)
其中, y i y_i yi表示样本的所属类别,用-1和+1表示。故利用上述公式即可得到线性可分的SVM所对应的函数间隔满足 γ ^ ≥ 1 \hat{\gamma}\geq1 γ^≥1的条件。
当分割面中的参数w和b同比例增加时,所对应的 γ i ^ \hat{\gamma_i} γi^值也会同比例增加,但这样的增加对分割面 w ′ x + b = 0 w'x+b=0 w′x+b=0来说却丝毫没有影响。因此,为了避免上述问题,需要对函数间隔做约束,例如单位化处理:
γ i ^ = γ i ^ ∥ w ∥ = y i × ( w ′ x i + b ) ∥ w ∥ = ∣ w ′ x i + b ∣ ∥ w ∥ = d i \hat{\gamma_i}=\frac{\hat{\gamma_i}}{\|w\|}=\frac{y_i\times(w'x_i+b)}{\|w\|}=\frac{|w'x_i+b|}{\|w\|}=d_i γi^=∥w∥