【转】【十大经典数据挖掘算法】SVM

21 篇文章 0 订阅
14 篇文章 0 订阅
转载自[这里](https://www.cnblogs.com/en-heng/p/5965438.html)

【十大经典数据挖掘算法】SVM

【十大经典数据挖掘算法】系列

  1. C4.5
  2. K-Means
  3. SVM
  4. Apriori
  5. EM
  6. PageRank
  7. AdaBoost
  8. kNN
  9. Naïve Bayes
  10. CART

SVM(Support Vector Machines)是分类算法中应用广泛、效果不错的一类。《统计学习方法》对SVM的数学原理做了详细推导与论述,本文仅做整理。由简至繁SVM可分类为三类:线性可分(linear SVM in linearly separable case)的线性SVM、线性不可分的线性SVM、非线性(nonlinear)SVM。

1. 线性可分

对于二类分类问题,训练集\(T = \lbrace (x_1,y_1),(x_2,y_2), \cdots ,(x_N,y_N) \rbrace\),其类别\(y_i \in \lbrace 0,1 \rbrace\),线性SVM通过学习得到分离超平面(hyperplane):

wx+b=0 w ⋅ x + b = 0

以及相应的分类决策函数:

f(x)=sign(wx+b) f ( x ) = s i g n ( w ⋅ x + b )

有如下图所示的分离超平面,哪一个超平面的分类效果更好呢?

直观上,超平面\(B_1\)的分类效果更好一些。将距离分离超平面最近的两个不同类别的样本点称为支持向量(support vector)的,构成了两条平行于分离超平面的长带,二者之间的距离称之为margin。显然,margin更大,则分类正确的确信度更高(与超平面的距离表示分类的确信度,距离越远则分类正确的确信度越高)。通过计算容易得到:

margin=2w m a r g i n = 2 ‖ w ‖

从上图中可观察到:margin以外的样本点对于确定分离超平面没有贡献,换句话说,SVM是有很重要的训练样本(支持向量)所确定的。至此,SVM分类问题可描述为在全部分类正确的情况下,最大化\(\frac{2}{\|w\|}\)(等价于最小化\(\frac{1}{2}\|w\|^2\));线性分类的约束最优化问题:

\begin{align}<br />
&amp; \min_{w,b} \quad \frac{1}{2}|w|^2 \cr<br />
&amp; s.t. \quad y_i(w \cdot x_i + b)-1 \ge 0 \label{eq:linear-st}<br />
\end{align}
\begin{align}<br />&amp; \min_{w,b} \quad \frac{1}{2}|w|^2 \cr<br />&amp; s.t. \quad y_i(w \cdot x_i + b)-1 \ge 0 \label{eq:linear-st}<br />\end{align}

对每一个不等式约束引进拉格朗日乘子(Lagrange multiplier)\(\alpha_i \ge 0, i=1,2,\cdots,N\);构造拉格朗日函数(Lagrange function):

\begin{equation}<br />
L(w,b,\alpha)=\frac{1}{2}|w|^2-\sum_{i=1}^{N}\alpha_i [y_i(w \cdot x_i + b)-1] \label{eq:lagrange}<br />
\end{equation}
\begin{equation}<br />L(w,b,\alpha)=\frac{1}{2}|w|^2-\sum_{i=1}^{N}\alpha_i [y_i(w \cdot x_i + b)-1] \label{eq:lagrange}<br />\end{equation}

根据拉格朗日对偶性,原始的约束最优化问题可等价于极大极小的对偶问题:

maxαminw,bL(w,b,α) max α min w , b L ( w , b , α )

\(L(w,b,\alpha)\)\(w,b\)求偏导并令其等于0,则

amp;Lw=wi=1Nαiyixi=0w=i=1Nαiyixiamp;Lb=i=1Nαiyi=0i=1Nαiyi=0 a m p ; ∂ L ∂ w = w − ∑ i = 1 N α i y i x i = 0 ⇒ w = ∑ i = 1 N α i y i x i a m p ; ∂ L ∂ b = ∑ i = 1 N α i y i = 0 ⇒ ∑ i = 1 N α i y i = 0

将上述式子代入拉格朗日函数 (3) (3) 中,对偶问题转为

maxα12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi max α − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i

等价于最优化问题:

<br/>minα<br/>s.t.<br/>amp;12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαiamp;i=1Nαiyi=0amp;αi0,i=1,2,,N<br/>(50)(51)(52) (50) < b r / > min α a m p ; 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i (51) < b r / > s . t . a m p ; ∑ i = 1 N α i y i = 0 (52) < b r / > a m p ; α i ≥ 0 , i = 1 , 2 , ⋯ , N < b r / >

线性可分是理想情形,大多数情况下,由于噪声或特异点等各种原因,训练样本是线性不可分的。因此,需要更一般化的学习算法。

2. 线性不可分

线性不可分意味着有样本点不满足约束条件 (2) (2) ,为了解决这个问题,对每个样本引入一个松弛变量\(\xi_i \ge 0\),这样约束条件变为:

yi(wxi+b)1ξi y i ( w ⋅ x i + b ) ≥ 1 − ξ i

目标函数则变为

minw,b,ξ12w2+Ci=1Nξi min w , b , ξ 1 2 ‖ w ‖ 2 + C ∑ i = 1 N ξ i

其中,\(C\)为惩罚函数,目标函数有两层含义:

  • margin尽量大,
  • 误分类的样本点计量少

\(C\)为调节二者的参数。通过构造拉格朗日函数并求解偏导(具体推导略去),可得到等价的对偶问题:

\begin{equation}<br />
\min_{\alpha} \quad \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i \alpha_j y_i y_j (x_i \cdot x_j) - \sum_{i=1}^{N} {\alpha_i} \label{eq:svmobj}<br />
\end{equation}
\begin{equation}<br />\min_{\alpha} \quad \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i \alpha_j y_i y_j (x_i \cdot x_j) - \sum_{i=1}^{N} {\alpha_i} \label{eq:svmobj}<br />\end{equation}

<br/>s.t.<br/>amp;i=1Nαiyi=0amp;0αiC,i=1,2,,N<br/>(53)(54) (53) < b r / > s . t . a m p ; ∑ i = 1 N α i y i = 0 (54) < b r / > a m p ; 0 ≤ α i ≤ C , i = 1 , 2 , ⋯ , N < b r / >

与上一节中线性可分的对偶问题相比,只是约束条件\(\alpha_i\)发生变化,问题求解思路与之类似。

3. 非线性

对于非线性问题,线性SVM不再适用了,需要非线性SVM来解决了。解决非线性分类问题的思路,通过空间变换\(\phi\)(一般是低维空间映射到高维空间\(x \rightarrow \phi(x)\))后实现线性可分,在下图所示的例子中,通过空间变换,将左图中的椭圆分离面变换成了右图中直线。

在SVM的等价对偶问题中的目标函数中有样本点的内积\(x_i \cdot x_j\),在空间变换后则是\(\phi(x_i) \cdot \phi(x_j)\),由于维数增加导致内积计算成本增加,这时核函数(kernel function)便派上用场了,将映射后的高维空间内积转换成低维空间的函数:

K(x,z)=ϕ(x)ϕ(z) K ( x , z ) = ϕ ( x ) ⋅ ϕ ( z )

将其代入一般化的SVM学习算法的目标函数 (7) (7) 中,可得非线性SVM的最优化问题:

<br/>minα<br/>s.t.<br/>amp;12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαiamp;i=1Nαiyi=0amp;0αiC,i=1,2,,N<br/>(55)(56)(57) (55) < b r / > min α a m p ; 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i (56) < b r / > s . t . a m p ; ∑ i = 1 N α i y i = 0 (57) < b r / > a m p ; 0 ≤ α i ≤ C , i = 1 , 2 , ⋯ , N < b r / >

4. 参考资料

[1] 李航,《统计学习方法》.
[2] Pang-Ning Tan, Michael Steinbach, Vipin Kumar, Introduction to Data Mining.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值