1 间隔与支持向量
在训练集样本空间中找到一个划分超平面,使得这个超平面所产生的分类结果是最鲁棒的,对未见示例的泛化能力最强。
w
T
x
+
b
=
0
w^Tx+b=0
wTx+b=0
w为法向量,决定了超平面的方向,b为位移项8,决定了超平面与原点的距离。
样本空间中任一点x到超平面(w,b)的距离可写为:
r
=
∣
w
T
x
+
b
∣
∣
∣
w
∣
∣
r=\frac{|w^Tx+b|}{||w||}
r=∣∣w∣∣∣wTx+b∣
支持向量:距离超平面最近的几个训练样本点
margin:两个异类支持向量到超平面的距离之和:
γ
=
2
∣
∣
w
∣
∣
\gamma = \frac{2}{||w||}
γ=∣∣w∣∣2
最大化
γ
\gamma
γ等价于最小化:
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
min_{w,b} \frac{1}{2}||w||^2
minw,b21∣∣w∣∣2
s
.
t
.
y
i
(
w
T
x
i
+
b
)
>
=
1
s.t. y_i(w^Tx_i+b)>= 1
s.t.yi(wTxi+b)>=1
上式是一个凸二次规划问题。
一个高效的解法:用拉格朗日乘子法得到其对偶问题。对约束添加拉格朗日乘子
α
i
>
=
0
\alpha_i>=0
αi>=0,上式重写为
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
+
∑
i
=
1
m
α
i
(
1
−
y
i
(
w
T
x
i
+
b
)
)
L(w,b,\alpha)= \frac{1}{2}||w||^2+\sum_{i=1}^{m}\alpha_i(1-y_i(w^Tx_i+b))
L(w,b,α)=21∣∣w∣∣2+i=1∑mαi(1−yi(wTxi+b))
对w,b求偏导为0,可得对偶问题
m
a
x
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
max_\alpha \sum_{i=1}^m \alpha_i-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j
maxαi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
,
α
i
>
=
0
s.t.\sum_{i=1}^{m}\alpha_iy_i=0,\alpha_i>=0
s.t.i=1∑mαiyi=0,αi>=0
通过SMO算法,我们得到了对应的α的值α∗。
那么我们根据
w
=
∑
i
=
1
m
α
i
y
i
x
i
w=\sum_{i=1}^{m}\alpha_iy_ix_i
w=∑i=1mαiyixi,可以求出对应的w的值.
求出所有支持向量所对应的
b
s
∗
b^∗_s
bs∗,然后将其平均值作为最后的结果.对于任意支持向量(
x
s
,
y
s
x_s,y_s
xs,ys),都有
y
s
f
(
x
s
)
=
1
y_sf(x_s)=1
ysf(xs)=1.
2 线性可分SVM的算法过程
这里我们对线性可分SVM的算法过程做一个总结。
输入是线性可分的m个样本(x1,y1),(x2,y2),…,(xm,ym),其中x为n维特征向量。y为二元输出,值为1,或者-1.
输出是分离超平面的参数 w ∗ w^∗ w∗和 b ∗ b^∗ b∗和分类决策函数。
算法过程如下:
1)构造约束优化问题
m
a
x
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
max_\alpha \sum_{i=1}^m \alpha_i-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j
maxαi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
,
α
i
>
=
0
s.t.\sum_{i=1}^{m}\alpha_iy_i=0,\alpha_i>=0
s.t.i=1∑mαiyi=0,αi>=0
2)用SMO算法求出上式最大时对应的α向量的值
α
∗
α^∗
α∗向量.
3) 计算
w
∗
=
∑
i
=
1
m
α
i
∗
y
i
x
i
w^*=\sum_{i=1}^{m}\alpha_i^*y_ix_i
w∗=∑i=1mαi∗yixi
4) 找出所有的S个支持向量,即满足
α
s
α_s
αs>0对应的样本
(
x
s
,
y
s
)
(x_s,y_s)
(xs,ys),通过
y
s
(
∑
i
=
1
m
α
i
y
i
x
i
T
x
s
+
b
)
=
1
y_s(\sum_{i=1}^{m}α_iy_ix^T_ix_s+b)=1
ys(∑i=1mαiyixiTxs+b)=1,计算出每个支持向量
(
x
s
,
y
s
)
(x_s,y_s)
(xs,ys)对应的
b
s
∗
b^∗_s
bs∗,计算出这些
b
s
∗
=
y
s
−
∑
i
=
1
m
α
i
y
i
x
i
T
x
s
b^∗_s=y_s−\sum_{i=1} ^{m}α_iy_ix^T_ix_s
bs∗=ys−∑i=1mαiyixiTxs. 所有的
b
s
∗
b^∗_s
bs∗对应的平均值即为最终的
b
∗
=
1
S
∑
i
=
1
S
b
s
∗
b^∗=\frac{1}{S}\sum_{i=1}^{S}b^∗_s
b∗=S1∑i=1Sbs∗
这样最终的分类超平面为:
w
∗
x
+
b
∗
=
0
w^*x+b^*=0
w∗x+b∗=0,最终的分类决策函数为:
f
(
x
)
=
s
i
g
n
(
w
∗
x
+
b
∗
)
f(x)=sign(w^*x+b^*)
f(x)=sign(w∗x+b∗)
3 核函数
如果原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使样本可分。假设ϕ是一个从低维的输入空间χ(欧式空间的子集或者离散集合)到高维的希尔伯特空间的H映射。那么如果存在函数K(x,z),对于任意x,z∈χ,都有:
K
(
x
,
z
)
=
ϕ
(
x
)
∙
ϕ
(
z
)
K(x,z)=ϕ(x)∙ϕ(z)
K(x,z)=ϕ(x)∙ϕ(z)
那么我们就称K(x,z)为核函数。
K(x,z)的计算是在低维特征空间来计算的,它避免了在高维维度空间计算内积的恐怖计算量。
核函数的条件:一个函数要想成为正定核函数,必须满足他里面任何点的集合形成的Gram矩阵是半正定的。也就是说,对于任意的xi∈χ,i=1,2,3…m,
K
(
x
i
,
x
j
)
K(x_i,x_j)
K(xi,xj)对应的Gram矩阵K=[
K
(
x
i
,
x
j
)
K(x_i,x_j)
K(xi,xj)] 是半正定矩阵,则K(x,z)是正定核函数。
任何一个核函数都隐式的定义了一个“再生核希尔伯特空间”的特征空间
- 线性核函数:
K ( x , z ) = x ∙ z K(x,z)=x∙z K(x,z)=x∙z - 多项式核函数:
K ( x , z ) = ( γ x ∙ z + r ) d K(x,z)=(γx∙z+r)^d K(x,z)=(γx∙z+r)d - 高斯核函数:
K ( x , z ) = e x p ( − ∣ ∣ x − z ∣ ∣ 2 2 σ 2 ) K(x,z)=exp(-\frac{||x-z||^2}{2\sigma^2}) K(x,z)=exp(−2σ2∣∣x−z∣∣2)
σ > 0 \sigma>0 σ>0为高斯核的带宽 - 拉普拉斯核函数
K ( x , z ) = e x p ( − ∣ ∣ x − z ∣ ∣ σ ) K(x,z)=exp(-\frac{||x-z||}{\sigma}) K(x,z)=exp(−σ∣∣x−z∣∣)
σ > 0 \sigma>0 σ>0 - sigmoid核函数:
K ( x , z ) = t a n h ( β x T z + θ ) K(x,z)=tanh(\beta x^Tz+\theta) K(x,z)=tanh(βxTz+θ)
4 软间隔
现实中很难确定适合的核函数使得样本在特征空间线性可分。就算找到某个核函数使训练样本在特征空间线性可分,也很难断定结果是不是过拟合造成的。
办法:允许支持向量机在一些样本数出错。软间隔。
SVM对训练集里面的每个样本(xi,yi)引入了一个松弛变量ξi≥0,使函数间隔加上松弛变量大于等于1,也就是说:
y
i
(
w
∙
x
i
+
b
)
≥
1
−
ξ
i
y_i(w∙x_i+b)≥1−ξ_i
yi(w∙xi+b)≥1−ξi
对比硬间隔最大化,可以看到我们对样本到超平面的函数距离的要求放松了,之前是一定要大于等于1,现在只需要加上一个大于等于0的松弛变量能大于等于1就可以了。当然,松弛变量不能白加,这是有成本的,每一个松弛变量ξi, 对应了一个代价ξi,这个就得到了我们的软间隔最大化的SVM学习条件如下:
m
i
n
w
,
b
,
ξ
i
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
ξ
i
min_{w,b,ξ_i}||w||^2+C\sum_{i=1}^{m}ξ_i
minw,b,ξi∣∣w∣∣2+Ci=1∑mξi
s
.
t
.
y
i
(
w
T
x
i
+
b
)
≥
1
−
ξ
i
(
i
=
1
,
2
,
.
.
.
m
)
s.t.y_i(w^Tx_i+b)≥1−ξ_i(i=1,2,...m)
s.t.yi(wTxi+b)≥1−ξi(i=1,2,...m)
ξ
i
≥
0
(
i
=
1
,
2
,
.
.
.
m
)
ξ_i≥0(i=1,2,...m)
ξi≥0(i=1,2,...m)
将软间隔最大化的约束问题用拉格朗日函数转化为无约束问题如下:
其中 μi≥0,αi≥0,均为拉格朗日系数。
可以先求优化函数对于w,b,ξ的极小值(偏导为0), 接着再求拉格朗日乘子α和 μ的极大值。
m
a
x
α
∑
i
=
1
m
α
i
−
1
2
∑
i
=
1
m
∑
j
=
1
m
α
i
α
j
y
i
y
j
x
i
T
x
j
max_\alpha \sum_{i=1}^m \alpha_i-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j
maxαi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj
s
.
t
.
∑
i
=
1
m
α
i
y
i
=
0
,
C
>
=
α
i
>
=
0
s.t.\sum_{i=1}^{m}\alpha_iy_i=0, C>=\alpha_i>=0
s.t.i=1∑mαiyi=0,C>=αi>=0
根据KKT条件中的对偶互补条件
α
i
∗
(
y
i
(
w
T
x
i
+
b
)
−
1
+
+
ξ
i
∗
)
=
0
α^∗_i(y_i(w^Tx_i+b)−1++ξ^∗_i)=0
αi∗(yi(wTxi+b)−1++ξi∗)=0,
5 支持向量回归
支持向量回归假设我们能容忍f(x)与y之间最多有
ϵ
\epsilon
ϵ的偏差,超过这个偏差才计算损失。
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
m
l
ϵ
(
f
(
x
i
)
−
y
i
)
min_{w,b}\frac{1}{2}||w||^2+C\sum_{i=1}^{m}l_{\epsilon}(f(x_i)-y_i)
minw,b21∣∣w∣∣2+Ci=1∑mlϵ(f(xi)−yi)
l
ϵ
(
f
(
x
i
)
−
y
i
)
=
{
0
∣
y
i
−
w
∙
ϕ
(
x
i
)
−
b
∣
≤
ϵ
∣
y
i
−
w
∙
ϕ
(
x
i
)
−
b
∣
−
ϵ
∣
y
i
−
w
∙
ϕ
(
x
i
)
−
b
∣
>
ϵ
l_{\epsilon}(f(x_i)-y_i)= \begin{cases} 0 & {|y_i - w \bullet \phi(x_i ) -b| \leq \epsilon}\\ |y_i - w \bullet \phi(x_i ) -b| - \epsilon & {|y_i - w \bullet \phi(x_i ) -b| > \epsilon} \end{cases}
lϵ(f(xi)−yi)={0∣yi−w∙ϕ(xi)−b∣−ϵ∣yi−w∙ϕ(xi)−b∣≤ϵ∣yi−w∙ϕ(xi)−b∣>ϵ
目标函数如下:
m
i
n
1
2
∣
∣
w
∣
∣
2
2
s
.
t
∣
y
i
−
w
∙
ϕ
(
x
i
)
−
b
∣
≤
ϵ
(
i
=
1
,
2
,
.
.
.
m
)
min\;\; \frac{1}{2}||w||_2^2 \;\; s.t \;\; |y_i - w \bullet \phi(x_i ) -b| \leq \epsilon (i =1,2,...m)
min21∣∣w∣∣22s.t∣yi−w∙ϕ(xi)−b∣≤ϵ(i=1,2,...m)
因为间隔带两侧的松弛程度可有所不同,定义两个松弛变量
ξ
i
∨
,
ξ
i
∧
\xi_i^{\lor}, \xi_i^{\land}
ξi∨,ξi∧
m
i
n
1
2
∣
∣
w
∣
∣
2
2
+
C
∑
i
=
1
m
(
ξ
i
∨
+
ξ
i
∧
)
min\;\; \frac{1}{2}||w||_2^2 + C\sum\limits_{i=1}^{m}(\xi_i^{\lor}+ \xi_i^{\land})
min21∣∣w∣∣22+Ci=1∑m(ξi∨+ξi∧)
s
.
t
.
−
ϵ
−
ξ
i
∨
≤
y
i
−
w
∙
ϕ
(
x
i
)
−
b
≤
ϵ
+
ξ
i
∧
s.t. \;\;\; -\epsilon - \xi_i^{\lor} \leq y_i - w \bullet \phi(x_i ) -b \leq \epsilon + \xi_i^{\land}
s.t.−ϵ−ξi∨≤yi−w∙ϕ(xi)−b≤ϵ+ξi∧
ξ
i
∨
≥
0
,
ξ
i
∧
≥
0
(
i
=
1
,
2
,
.
.
.
,
m
)
\xi_i^{\lor} \geq 0, \;\; \xi_i^{\land} \geq 0 \;(i = 1,2,..., m)
ξi∨≥0,ξi∧≥0(i=1,2,...,m)
用拉格朗日函数将目标优化函数变成无约束的形式:
L
(
w
,
b
,
α
∨
,
α
∧
,
ξ
i
∨
,
ξ
i
∧
,
μ
∨
,
μ
∧
)
=
1
2
∣
∣
w
∣
∣
2
2
+
C
∑
i
=
1
m
(
ξ
i
∨
+
ξ
i
∧
)
+
∑
i
=
1
m
α
∨
(
−
ϵ
−
ξ
i
∨
−
y
i
+
w
∙
ϕ
(
x
i
)
+
b
)
+
∑
i
=
1
m
α
∧
(
y
i
−
w
∙
ϕ
(
x
i
)
−
b
−
ϵ
−
ξ
i
∧
)
−
∑
i
=
1
m
μ
∨
ξ
i
∨
−
∑
i
=
1
m
μ
∧
ξ
i
∧
L(w,b,\alpha^{\lor}, \alpha^{\land}, \xi_i^{\lor}, \xi_i^{\land}, \mu^{\lor}, \mu^{\land}) = \frac{1}{2}||w||_2^2 + C\sum\limits_{i=1}^{m}(\xi_i^{\lor}+ \xi_i^{\land}) + \sum\limits_{i=1}^{m}\alpha^{\lor}(-\epsilon - \xi_i^{\lor} -y_i + w \bullet \phi(x_i) + b) + \sum\limits_{i=1}^{m}\alpha^{\land}(y_i - w \bullet \phi(x_i ) - b -\epsilon - \xi_i^{\land}) - \sum\limits_{i=1}^{m}\mu^{\lor}\xi_i^{\lor} - \sum\limits_{i=1}^{m}\mu^{\land}\xi_i^{\land}
L(w,b,α∨,α∧,ξi∨,ξi∧,μ∨,μ∧)=21∣∣w∣∣22+Ci=1∑m(ξi∨+ξi∧)+i=1∑mα∨(−ϵ−ξi∨−yi+w∙ϕ(xi)+b)+i=1∑mα∧(yi−w∙ϕ(xi)−b−ϵ−ξi∧)−i=1∑mμ∨ξi∨−i=1∑mμ∧ξi∧
目标是:
m
i
n
⏟
w
,
b
,
ξ
i
∨
,
ξ
i
∧
m
a
x
⏟
μ
∨
≥
0
,
μ
∧
≥
0
,
α
i
∨
≥
0
,
α
i
∧
≥
0
L
(
w
,
b
,
α
∨
,
α
∧
,
ξ
i
∨
,
ξ
i
∧
,
μ
∨
,
μ
∧
)
\underbrace{min}_{w,b,\xi_i^{\lor}, \xi_i^{\land}}\; \;\;\;\;\;\;\;\;\underbrace{max}_{\mu^{\lor} \geq 0, \mu^{\land} \geq 0, \alpha_i^{\lor} \geq 0, \alpha_i^{\land} \geq 0}\;L(w,b,\alpha^{\lor}, \alpha^{\land}, \xi_i^{\lor}, \xi_i^{\land}, \mu^{\lor}, \mu^{\land})
w,b,ξi∨,ξi∧
minμ∨≥0,μ∧≥0,αi∨≥0,αi∧≥0
maxL(w,b,α∨,α∧,ξi∨,ξi∧,μ∨,μ∧)
以先求优化函数对于
w
,
b
,
ξ
i
∨
,
ξ
i
∧
w,b,\xi_i^{\lor}, \xi_i^{\land}
w,b,ξi∨,ξi∧的极小值, 接着再求拉格朗日乘子
α
∨
,
α
∧
,
μ
∨
,
μ
∧
\alpha^{\lor}, \alpha^{\land}, \mu^{\lor}, \mu^{\land}
α∨,α∧,μ∨,μ∧的极大值。
∂
L
∂
w
=
0
⇒
w
=
∑
i
=
1
m
(
α
i
∧
−
α
i
∨
)
ϕ
(
x
i
)
\frac{\partial L}{\partial w} = 0 \;\Rightarrow w = \sum\limits_{i=1}^{m}(\alpha_i^{\land} - \alpha_i^{\lor})\phi(x_i)
∂w∂L=0⇒w=i=1∑m(αi∧−αi∨)ϕ(xi)
∂
L
∂
b
=
0
⇒
∑
i
=
1
m
(
α
i
∧
−
α
i
∨
)
=
0
\frac{\partial L}{\partial b} = 0 \;\Rightarrow \sum\limits_{i=1}^{m}(\alpha_i^{\land} - \alpha_i^{\lor}) = 0
∂b∂L=0⇒i=1∑m(αi∧−αi∨)=0
∂
L
∂
ξ
i
∨
=
0
⇒
C
−
α
∨
−
μ
∨
=
0
\frac{\partial L}{\partial \xi_i^{\lor}} = 0 \;\Rightarrow C-\alpha^{\lor}-\mu^{\lor} = 0
∂ξi∨∂L=0⇒C−α∨−μ∨=0
∂
L
∂
ξ
i
∧
=
0
⇒
C
−
α
∧
−
μ
∧
=
0
\frac{\partial L}{\partial \xi_i^{\land}} = 0 \;\Rightarrow C-\alpha^{\land}-\mu^{\land} = 0
∂ξi∧∂L=0⇒C−α∧−μ∧=0
最终得到的对偶形式为:
m
a
x
⏟
α
∨
,
α
∧
−
∑
i
=
1
m
(
ϵ
−
y
i
)
α
i
∧
+
(
ϵ
+
y
i
)
α
i
∨
)
−
1
2
∑
i
=
1
,
j
=
1
m
(
α
i
∧
−
α
i
∨
)
(
α
j
∧
−
α
j
∨
)
K
i
j
\underbrace{ max }_{\alpha^{\lor}, \alpha^{\land}}\; -\sum\limits_{i=1}^{m}(\epsilon-y_i)\alpha_i^{\land}+ (\epsilon+y_i)\alpha_i^{\lor}) - \frac{1}{2}\sum\limits_{i=1,j=1}^{m}(\alpha_i^{\land} - \alpha_i^{\lor})(\alpha_j^{\land} - \alpha_j^{\lor})K_{ij}
α∨,α∧
max−i=1∑m(ϵ−yi)αi∧+(ϵ+yi)αi∨)−21i=1,j=1∑m(αi∧−αi∨)(αj∧−αj∨)Kij
s
.
t
.
∑
i
=
1
m
(
α
i
∧
−
α
i
∨
)
=
0
s.t. \; \sum\limits_{i=1}^{m}(\alpha_i^{\land} - \alpha_i^{\lor}) = 0
s.t.i=1∑m(αi∧−αi∨)=0
0
<
α
i
∨
<
C
(
i
=
1
,
2
,
.
.
.
m
)
0 < \alpha_i^{\lor} < C \; (i =1,2,...m)
0<αi∨<C(i=1,2,...m)
0
<
α
i
∧
<
C
(
i
=
1
,
2
,
.
.
.
m
)
0 < \alpha_i^{\land} < C \; (i =1,2,...m)
0<αi∧<C(i=1,2,...m)
6 SVM优缺点
SVM算法的主要优点有:
1) 解决高维特征的分类问题和回归问题很有效,在特征维度大于样本数时依然有很好的效果。
2) 仅仅使用一部分支持向量来做超平面的决策,无需依赖全部数据。使得该算法简单且具有较好的“鲁棒”性。
3) 有大量的核函数可以使用,从而可以很灵活的来解决各种非线性的分类回归问题。
4)样本量不是海量数据的时候,分类准确率高,泛化能力强。
5)类别不平衡影响不大
SVM算法的主要缺点有:
1) 如果特征维度远远大于样本数,则SVM表现一般。
2) SVM在样本量非常大,核函数映射维度非常高时,计算量过大,不太适合使用。
3)非线性问题的核函数的选择没有通用标准,难以选择一个合适的核函数。
4)SVM对缺失数据敏感。
7 面试问题收集
如何定义这条曲线最佳?
Hinge(合页)损失最小
为什么需要间隔最大化?
(1)SVM算法认为靠近决策边界的点与决策边界的距离最大时,是最好的分类选择
(2) 因为“正中间”的划分超平面对训练样本局部扰动的“容忍性”好,分隔超平面所产生的分类结果是最鲁棒的,对预测样本泛化能力最强;
(3)线性条件下,分类超平面的解唯一
svm的对偶原理?
把目标函数和约束全部融入一个新的函数,即拉格朗日函数,原始问题就变成了一个极大极小问题,min(w,b)->max(乘子a),再通过这个函数来寻找最优点。
为什么要使用对偶?
(1) 数学层面上,求解更容易;
(2)分类性能上,自然引入核函数,可推广到非线性问题上。
为什么引入核函数?
线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得线性可分。
SVM常见的核函数?
线性、多项式、高斯(灵活,易过拟合,需要样本量大)、sigmod
什么SVM对缺失特征数据敏感?
因为SVM涉及距离度量,缺失数据若处理不好可能会导致分类效果差。SVM没有处理缺失值的策略(而决策树,XGBOOST有)。
SVM是用的是哪个库?
sklearn实现的。采用sklearn.svm.SVC设置的参数, sklearn.svm.SVC(C=1.0, kernel=‘rbf’, degree=3, gamma=‘auto’, coef0=0.0, ……)
SVM参数?
最重要的参数有2个:惩罚系数C与
γ
(
=
1
/
σ
2
)
\gamma(=1/σ2)
γ(=1/σ2),CCC类似于正则化中1/λ的作用。C越大,说明越不能容忍出现误差,越容易过拟合。σ越大,核函数越平滑,波动越小,对噪声越不敏感,易欠拟合;σ越小,高斯分布长得又高又瘦, 会造成只会作用于支持向量样本附近,对于未知样本分类效果很差。
SVM如何实现多分类?
(1) 训练k个分类器,训练时依次把某个类别的样本归为一类,其他剩余的样本归为另一类,最后分类时,将未知样本分类为具有最大分类函数值的那类;
(2) 训练c(2,k)个分类器取多数
SVM降低模型复杂度(过拟合)的方法?
给每个样本引入松弛变量
SVM做回归SVR?
一串连续数值向量A=(x1,x2,x3,…xi)对应其函数值(y1,y2,y3…yi),将其翻转后成为一列数据,类似SVM的不同样本,剩余步骤和SVM类似。只是SVR希望大部分点在间隔内,间隔外的点会带来损失,而SVM希望大部分点在间隔两边。
函数间隔和几何间隔区别?
函数间隔主要表示是否分类正确,可正可负;几何间隔表示点到超平面的距离,只能为正。
SVM与树模型间的区别?
(1)SVM可解释性更弱;树模型可解释性好
(2)SVM对缺失特征数据敏感;树模型对缺失特征数据不敏感
(3)SVM处理多分类问题麻烦
(4)SVM对异常值不敏感;树模型对异常值敏感
(5)SVM泛化能力强;树模型依赖训练样本集,对没有出现的特征没有办法
(6)SVM适用于处理小样本训练集;树模型可处理大样本训练数据集
LR与SVM的区别:
(1)异常值:LR的目标是使得所有的点分类正确。所以LR会受到数据集中所有点的影响,当数据不均衡时,LR的性能会受到影响;而SVM分类性能只会受到支持向量的影响,只要支持向量不变,类别不平衡影响不大;也就是,LR对异常值敏感。
(2)起作用点的范围:LR模型尽量让所有点都远离超平面,而SVM让只考虑support vectors(最难划分/最靠近中间分割线的那些点),也就是和分类最相关的少数点,尽量远离超超平面,即只用到那些支持向量的样本。也就是SVM的约束来体现的
(3)loss:目标函数不一样,LR对数似然损失函数,SVM凸优化问题。
(4)非线性:处理非线性分类时,SVM采用核函数更好更快,LR很少使用核函数
(5)Linear SVM依赖数据表达的距离测度,所以需要对数据先做normalization;LR不受其影响,但是如果要正则的话也要归一化
(6)概率值:SVM不能给出概率结果,LR可以产生概率,因此可做ranking
(7)SVM的目标函数就自带有约束正则(目标函数中的
1
2
∣
∣
w
∣
∣
2
\frac{1}{2}||w||^2
21∣∣w∣∣2项),这就是为什么SVM是泛化力更强的原因。而LR必须另外在损失函数上添加正则项。
(8)LR可解释性更强
SVM与感知机的区别
(1)解:SVM基于间隔最大化,求得分类超平面,解是唯一,且分类结果最鲁棒,泛化能力强;感知机基于误分类最小策略,求得分离超平面,不唯一
(2)学习策略:感知机使用梯度下降;SVM使用由约束条件构造拉格朗日函数,然后求偏导令其为0求得极值点。
转载自:https://blog.csdn.net/UniqueenCT/article/details/88914657
8 SMO算法求解对偶问题
https://www.cnblogs.com/jerrylead/archive/2011/03/18/1988419.html
https://www.cnblogs.com/pinard/p/6111471.html