PS:该系列数据都可以在图灵社区(点击此链接)中随书下载中下载(如下)
1 基于最大间隔分隔数据
支持向量机(Support Vector Machines, SVM)
优点:泛化错误率低,计算开销不大,结果易于解释。
缺点:对参数调节和核函数的选择敏感,原始分类器不加修改仅适用于处理二类问题。
使用数据类型:数值型和标称型数据。
假设给定一个特征空间上的训练数据集
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={
(x1,y1),(x2,y2),...,(xN,yN)}
其中, x i ∈ X = R n , y i ∈ Y = { + 1 , − 1 } , i = 1 , 2 , ⋯ , N x_{i} \in \mathcal{X}=\mathbf{R}^{n}, \quad y_{i} \in \mathcal{Y}=\{+1,-1\}, \quad i=1,2, \cdots, N xi∈X=Rn,yi∈Y={
+1,−1},i=1,2,⋯,N, x i x_i xi为第 i i i个特征向量,也称为实例, y i y_i yi为 x i x_i xi的类标记,当 y i = + 1 y_i=+1 yi=+1时,称 x i x_i xi为正例;当 y i = − 1 y_i=-1 yi=−1时,称 x i x_i xi为负例, ( x i , y i ) (x_i,y_i) (xi,yi)称为样本点。再假设训练数据集是线性可分的
学习的目标是在特征空间中找到一个分离超平面,能将实例分到不同类,分离超平面对应方程 w ⋅ x + b = 0 w \cdot x+b=0 w⋅x+b=0,它由法向量 w w w和截距 b b b决定,可用 ( w , b ) (w,b) (w,b)来表示。分离超平面将特征空间划分为两部分,一部分是正类,一部分是负类。法向量指向的一侧为正类,另一侧为负类。
一般地,大概训练数据集先行可分时,存在无穷个分离超平面可将两类数据正确分开。感知机利用误分类最小的策略,求得分离超平面,不过这时的解有无穷多个,线性可分支持向量机利用间隔最大化最优分离超平面,这时,解是唯一的。
线性可分支持向量机:给定先行可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为 w ∗ ⋅ x + b ∗ = 0 w^{*} \cdot x+b^{*}=0 w∗⋅x+b∗=0
以及相应的分类决策函数 f ( x ) = sign ( w ∗ ⋅ x + b ∗ ) f(x)=\operatorname{sign}\left(w^{*} \cdot x+b^{*}\right) f(x)=sign(w∗⋅x+b∗)
称为线性可分支持向量机。
2 寻找最大间隔
2.1 分类器求解的优化问题
分隔超平面形式: w T x + b w^Tx+b wTx+b
点A到分隔超平面的距离: ∣ w T + b ∣ ∣ ∣ w ∣ ∣ \frac{|w^T+b|}{||w||} ∣∣w∣∣∣wT+b∣
取类别标签: l a b e l = { − 1 , 1 } \text label=\{-1, 1\} label={
−1,1}
我们需要找出分类器中定义的 w w w和 b b b,为此我们必须找到具有最小间隔的数据点,而这些数据点也就是支持向量。以旦找到具有最小间隔的数据点,我们就需要对该间隔最大化。这可以写作:
arg max w , b { min n ( label ⋅ ( w T x + b ) ) ⋅ 1 ∥ w ∥ } \arg \max _{w, b}\left\{\min _{n}\left(\operatorname{label} \cdot\left(w^{\mathrm{T}} x+b\right)\right) \cdot \frac{1}{\|w\|}\right\} argw,bmax{
nmin(label⋅(wTx+b))⋅∥w∥1}
直接求解困难,转化为另一种更容易求解的形式。如果令所有支持向量的 label ∗ ( w T + b ) \text {label} * (w^T+b) label