支持向量机(SVM)和决策树(Decision Tree)简介

小目录

    • 一、支持向量机(SVM)
      • 1. 线性可分的支持向量机
      • 2. 近似线性可分的支持向量机
    • 二、决策树(Decision Tree)

一、支持向量机(SVM)

  主要思想:找一个超平面,使其尽可能多地将两类数据点分开,还要使得分开的数据点距分类面尽可能地远.

1. 线性可分的支持向量机

  设有一组观测样本: D = { ( x i , y i ) ∣   i = 1 , 2 , ⋯   , n , x i ∈ X ⊆ R m , y i ∈ { 1 , − 1 } } \small D=\lbrace (x_i,y_i)|\,i=1,2,\cdots,n,x_i\in X\subseteq R^m,y_i\in \lbrace1,-1\rbrace \rbrace D={ (xi,yi)i=1,2,,n,xiXRm,yi{ 1,1}}. 根据标签 y i y_i yi 将其分为两类: D 1 = { ( x i , y i ) ∣   y i = 1 } , D 2 = { ( x i , y i ) ∣   y i = − 1 } . \small D_1=\lbrace(x_i,y_i) |\,y_i=1\rbrace,D_2=\lbrace(x_i,y_i) |\, y_i=-1\rbrace. D1={ (xi,yi)yi=1},D2={ (xi,yi)yi=1}.
  已知 D 1 , D 2 \small D_1,D_2 D1,D2 线性可分,即存在一个超平面能够将两类点完全分隔开. 然后寻找这样的一个超平面 w T x + b = 0 w^Tx+b=0 wTx+b=0 (其中 w w w 表示超平面的法向量),不仅能够满足分隔条件,而且能够使分开的数据点距超平面尽可能地远. 该问题可以表示为优化问题,数学描述如下: m a x    ρ s . t . { w T x i + b ≥ l , x i ∈ D 1 w T x i + b ≤ − l , x i ∈ D 2 \begin{aligned}&max\;\rho\\ &s.t. \begin{cases} w^Tx_i+b\geq l, & x_i \in D_1\\ w^Tx_i+b\leq -l, & x_i \in D_2 \end{cases}\end{aligned} maxρs.t.{ wTxi+bl,wTxi+bl,xiD1xiD2其中 w T x i + b = l , w T x i + b = − l ( l > 0 ) w^Tx_i+b= l,w^Tx_i+b= -l(l>0) wTxi+b=l,wTxi+b=l(l>0) 分别经过 D 1 , D 2 \small D_1,D_2 D1,D2 的边界点, ρ \rho ρ 表示两个超平面之间的距离,可以由 l , w l,w l,w 表示,推导过程如下:

支持向量机(SVM)和决策树(Decision Tree)简介_第1张图片

  设 x 1 , x 2 x_1,x_2 x1,x2 分别为 D 1 , D 2 \small D_1,D_2 D1,D2 的边界点,则由 w T x i + b = l , w T x i + b = − l w^Tx_i+b= l,w^Tx_i+b= -l wTxi+b=l,wTxi+b=l 分别经过 D 1 , D 2 \small D_1,D_2 D1,D2 的边界点可知, w T x 1 + b = l , w T x 2 + b = − l w^Tx_1+b= l,w^Tx_2+b= -l wTx1+b=l,wTx2+b=l,于是两个超平面之间的距离可以表示为 ρ = ∣ ( x 1 − x 2 ) ⋅ w ∣ ∣ ∣ w ∣ ∣ \rho=\frac{|(x_1-x_2)\cdot w|}{||w||} ρ=w(x1x2)w ( x 1 − x 2 ) ⋅ w = w T x 1 − w T x 2 = l − b − ( − l − b ) = 2 l (x_1-x_2)\cdot w=w^Tx_1-w^Tx_2=l-b-(-l-b)=2l (x1x2)w=wTx1wTx2=lb(lb)=2l,则 ρ = 2 l / ∣ ∣ w ∣ ∣ , l = ρ ∣ ∣ w ∣ ∣ / 2. \rho=2l/||w||,l=\rho||w||/2. ρ=2l/w,l=ρw/2.
  约束条件 { w T x i + b ≥ l , x i ∈ D 1 w T x i + b ≤ − l , x i ∈ D 2 \begin{cases} w^Tx_i+b\geq l, & x_i \in D_1\\ w^Tx_i+b\leq -l, & x_i \in D_2 \end{cases} { wTxi+bl,wTxi+bl,xiD1xiD2可以简化为 y i ( w T x i + b ) ≥ l y_i(w^Tx_i+b)\geq l yi(wTxi+b)l,两边同除 l l l,将 l = ρ ∣ ∣ w ∣ ∣ / 2 l=\rho||w||/2 l=ρw/2 代入上式,得 y i ( 2 w T ρ ∣ ∣ w ∣ ∣ x i + 2 b ρ ∣ ∣ w ∣ ∣ ) ≥ 1 y_i(\frac{2w^T}{\rho||w||}x_i+\frac{2b}{\rho||w||})\geq1 yi(ρw2wTxi+ρw2b)1换元,令 w ′ = 2 w ρ ∣ ∣ w ∣ ∣ , b ′ = 2 b ρ ∣ ∣ w ∣ ∣ w'=\frac{2w}{\rho||w||},b'=\frac{2b}{\rho||w||} w=ρw2w,b=ρw2b代入原式,得 y i ( w ′ T x i + b ′ ) ≥ 1 y_i(w'^Tx_i+b')\geq 1 yi(wTxi+b)1.
  同时 ∣ ∣ w ′ ∣ ∣ = 2 / ρ ||w'||=2/\rho w=2/ρ ,最优化目标 m a x    ρ = m a x    2 / ∣ ∣ w ′ ∣ ∣ max\;\rho=max\;2/||w'|| maxρ=max2/w 等价于 m i n    ∣ ∣ w ′ ∣ ∣ 2 / 2 min\;||w'||^2/2 minw2/2.
  原问题转化为: m i n    1 2 ∣ ∣ w ′ ∣ ∣ 2 s . t .    y i ( w ′ T x i + b ′ ) ≥ 1 \begin{aligned}&min\; \frac{1}{2}||w'||^2\\ &s.t. \;y_i(w'^Tx_i+b')\geq 1\end{aligned} min21w2s.t.yi(wTxi+b)1

2. 近似线性可分的支持向量机

  即找不到一个超平面将两类数据点分隔开,但去除边界上与其他类混杂的一小部分点后能够线性可分.
  对于这种情况,只需对约束条件 y i ( w ′ T x i + b ′ ) ≥ 1 y_i(w'^Tx_i+b')\geq 1 yi(wTxi+b)1 稍加调整. 具体做法:引入松弛变量 ξ i ≥ 0 , i = 1 , 2 , ⋯   , n \xi_i\geq0,i=1,2,\cdots,n ξi0,i=1,2,,n,使得 y i ( w ′ T x i + b ′ ) ≥ 1 − ξ i y_i(w'^Tx_i+b')\geq 1-\xi_i yi(wTxi+b)1ξi,原问题转化为: m i n    1 2 ∣ ∣ w ′ ∣ ∣ 2 + C ∑ i = 1 n ξ i s . t .    { y i ( w ′ T x i + b ′ ) ≥ 1 − ξ i , i = 1 , 2 , ⋯   , n ξ i ≥ 0 , i = 1 , 2 , ⋯   , n \begin{aligned}&min\; \frac{1}{2}||w'||^2+C\sum_{i=1}^n\xi_i\\ &s.t. \;\begin{cases} y_i(w'^Tx_i+b')\geq 1-\xi_i, & i=1,2,\cdots,n\\ \xi_i\geq0, &i=1,2,\cdots,n \end{cases}\end{aligned} min21w2+Ci=1nξis.t.{ yi(wTxi+b)1ξi,ξi0,i=1,2,,ni=1,2,,n其中 C > 0 \small C>0 C>0,称为惩罚因子.

二、决策树(Decision Tree)

  主要思想:从一个无规则的样本集中推导出一个分类规则,其可以以树的形式表示,也称决策树,内部节点表示特征或分类指标,一个叶子节点表示一类.

  先来谈谈信息论的一些知识,伟大的祖师爷——香农给出了信息的数学描述,利用信息量衡量事件不确定性的大小,事件发生概率越小,信息量越大. 将信息量表示成自变量为概率的函数,这个函数需要满足以下三条性质:
(1) 非负性,即信息量总是大于等于零的;
(2) 随概率的增大而减小;
(3) f ( p 1 p 2 ) = f ( p 1 ) + f ( p 2 ) f(p_1p_2)=f(p_1)+f(p_2) f(p1p2)=f(p1)+f(p2).
  易知对数函数 f ( p ) = l o g a p    ( 0 < a < 1 ) f(p)=log_a p\;(0f(p)=logap(0<a<1) (   p \,p p 为事件发生的概率)满足这些性质,并称其为事件的信息量,一般取 a = 1 / 2 a=1/2 a=1/2.

再来看两个更高级的定义:
信息熵:信息量的期望. 假设事件 D \small D D N \small N N 中可能的结果,每种结果的发生概率为 P k \small P_k Pk,定义事件 D \small D D 的信息熵为: E n t ( D ) = ∑ k = 1 N P k ( − l o g 2 P k ) . Ent(D)=\sum_{k=1}^NP_k(-log_2P_k). Ent(D)=k=1NPk(log2Pk).得知新特征的信息后,信息熵的减少量 g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)H(DA) 称为信息增益,具体计算方法:
  假设样本集 D \small D D 可以分为 K \small K K 类, C i \small C_i Ci 表示第 i i i 类, i = 1 , 2 , ⋯   , K ,   ∑ i = 1 K ∣ C i ∣ = ∣ D ∣ \small i=1,2,\cdots,K,\, \sum_{i=1}^K|C_i|=|D| i=1,2,,K,i=1KCi=D D \small D D 的信息熵为 H ( D ) = ∑ i = 1 K ∣ C i ∣ ∣ D ∣ ( − l o g 2 ∣ C i ∣ ∣ D ∣ ) . H(D)=\sum_{i=1}^K\frac{|C_i|}{|D|}(-log_2{\frac{|C_i|}{|D|}}). H(D)=i=1KDCi(log2DCi).特征 A \small A A D \small D D 划分为 n n n 个子集 D i , i = 1 , 2 , ⋯   , n \small D_i,i=1,2,\cdots,n Di,i=1,2,,n,定义 H ( D ∣ A ) ≜ ∑ i = 1 n ∣ D i ∣ ∣ D ∣ H ( D i ) , H(D|A)\triangleq\sum_{i=1}^n\frac{|D_i|}{|D|}H(D_i), H(DA)i=1nDDiH(Di),可以理解为子集信息熵的期望.

  好的分类特征 A \small A A 应该使 H ( D ∣ A ) \small H(D|A) H(DA) 尽可能地小,即信息增益 g ( D , A ) \small g(D,A) g(D,A) 尽可能地大. 至于为啥?
  好的分类特征意味着对结果更精确的预测. 而预测得越准确,预测结果发生的概率也就越大. 大的概率意味着小的信息量,小的信息量会带来小的信息熵,进而使 H ( D ∣ A ) \small H(D|A) H(DA) 尽可能地小.
  决策树的生成过程就是,先选择信息增益最大的特征进行分类. 然后对每个小类进行相同的操作,递归下去,就可以得到一棵分类树,也称决策树.
  终止条件可以这样设置:当前节点的信息熵小于给定的阈值时,就停止递归,取占比最大的类作为当前叶子节点的类别.

  上述介绍的根据信息增益选取特征,只是决策树中的 ID3 算法,这种算法倾向于选择取值较多的特征,后续提出的 C4.5 算法,以信息增益率作为特征选择指标,在一定程度上克服了这个缺点. 其他的决策树算法还有 CART,既能做分类也能做回归,感兴趣的读者可以了解一下.



Plus: 如有错误、可以改进的地方、或任何想说的,请在评论区留言!

你可能感兴趣的:(数学园地,机器学习)