深度学习第二章:机器学习基础(5)【笔记】

2.17 决策树

2.17.1 决策树的基本原理

​ 决策树(Decision Tree)是一种分而治之的决策过程。一个困难的预测问题,通过树的分支节点,被划分成两个或多个较为简单的子集,从结构上划分为不同的子问题。将依规则分割数据集的过程不断递归下去(Recursive Partitioning)。随着树的深度不断增加,分支节点的子集越来越小,所需要提的问题数也逐渐简化。当分支节点的深度或者问题的简单程度满足一定的停止规则(Stopping Rule)时, 该分支节点会停止分裂,此为自上而下的停止阈值(Cutoff Threshold)法;有些决策树也使用自下而上的剪枝(Pruning)法。

2.17.2 决策树的三要素?

​ 一棵决策树的生成过程主要分为下3个部分:

​ 1、特征选择:从训练数据中众多的特征中选择一个特征作为当前节点的分裂标准,如何选择特征有着很多不同量化评估标准,从而衍生出不同的决策树算法。

​ 2、决策树生成:根据选择的特征评估标准,从上至下递归地生成子节点,直到数据集不可分则决策树停止生长。树结构来说,递归结构是最容易理解的方式。

​ 3、剪枝:决策树容易过拟合,一般来需要剪枝,缩小树结构规模、缓解过拟合。剪枝技术有预剪枝和后剪枝两种。

2.17.3 决策树学习基本算法

2.17.4 决策树算法优缺点

决策树算法的优点

1、决策树算法易理解,机理解释起来简单。

2、决策树算法可以用于小数据集。

3、决策树算法的时间复杂度较小,为用于训练决策树的数据点的对数。

4、相比于其他算法智能分析一种类型变量,决策树算法可处理数字和数据的类别。

5、能够处理多输出的问题。

6、对缺失值不敏感。

7、可以处理不相关特征数据。

8、效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度。

决策树算法的缺点

1、对连续性的字段比较难预测。

2、容易出现过拟合。

3、当类别太多时,错误可能就会增加的比较快。

4、在处理特征关联性比较强的数据时表现得不是太好。

5、对于各类别样本数量不一致的数据,在决策树当中,信息增益的结果偏向于那些具有更多数值的特征。

2.17.5 熵的概念以及理解

​ 熵:度量随机变量的不确定性。
​ 定义:假设随机变量X的可能取值有 x 1 , x 2 , . . . , x n x_{1},x_{2},...,x_{n} x1,x2,...,xn,对于每一个可能的取值 x i x_{i} xi,其概率为 P ( X = x i ) = p i , i = 1 , 2... , n P(X=x_{i})=p_{i},i=1,2...,n P(X=xi)=pi,i=1,2...,n。随机变量的熵为:
H ( X ) = − ∑ i = 1 n p i l o g 2 p i H(X)=-\sum_{i=1}^{n}p_{i}log_{2}p_{i} H(X)=i=1npilog2pi
​ 对于样本集合,假设样本有k个类别,每个类别的概率为 ∣ C k ∣ ∣ D ∣ \frac{|C_{k}|}{|D|} DCk,其中 ∣ C k ∣ ∣ D ∣ {|C_{k}|}{|D|} CkD为类别为k的样本个数, ∣ D ∣ ​ |D|​ D∣​为样本总数。样本集合D的熵为:
H ( D ) = − ∑ k = 1 k ∣ C k ∣ ∣ D ∣ l o g 2 ∣ C k ∣ ∣ D ∣ H(D)=-\sum_{k=1}^{k}\frac{|C_{k}|}{|D|}log_{2}\frac{|C_{k}|}{|D|} H(D)=k=1kDCklog2DCk

2.17.6 信息增益的理解

​ 定义:以某特征划分数据集前后的熵的差值。
​ 熵可以表示样本集合的不确定性,熵越大,样本的不确定性就越大。因此可以使用划分前后集合熵的差值来衡量使用当前特征对于样本集合D划分效果的好坏。 ​ 假设划分前样本集合D的熵为H(D)。使用某个特征A划分数据集D,计算划分后的数据子集的熵为H(D|A)。
​ 则信息增益为:
g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g(D,A)=H(D)H(DA)
​ *注:*在决策树构建的过程中我们总是希望集合往最快到达纯度更高的子集合方向发展,因此我们总是选择使得信息增益最大的特征来划分当前数据集D。
​ 思想:计算所有特征划分数据集D,得到多个特征划分数据集D的信息增益,从这些信息增益中选择最大的,因而当前结点的划分特征便是使信息增益最大的划分所使用的特征。
​ 另外这里提一下信息增益比相关知识:
信息增益比 = 惩罚参数 × 信息增益 信息增益比=惩罚参数\times信息增益 信息增益比=惩罚参数×信息增益
​ 信息增益比本质:在信息增益的基础之上乘上一个惩罚参数。特征个数较多时,惩罚参数较小;特征个数较少时,惩罚参数较大。
​ 惩罚参数:数据集D以特征A作为随机变量的熵的倒数。

2.17.7 剪枝处理的作用及策略

​ 剪枝处理是决策树学习算法用来解决过拟合问题的一种办法。

​ 在决策树算法中,为了尽可能正确分类训练样本, 节点划分过程不断重复, 有时候会造成决策树分支过多,以至于将训练样本集自身特点当作泛化特点, 而导致过拟合。 因此可以采用剪枝处理来去掉一些分支来降低过拟合的风险。

​ 剪枝的基本策略有预剪枝(pre-pruning)和后剪枝(post-pruning)。

​ 预剪枝:在决策树生成过程中,在每个节点划分前先估计其划分后的泛化性能, 如果不能提升,则停止划分,将当前节点标记为叶结点。

​ 后剪枝:生成决策树以后,再自下而上对非叶结点进行考察, 若将此节点标记为叶结点可以带来泛化性能提升,则修改之。

2.18 支持向量机

2.18.1 什么是支持向量机

​ 支持向量:在求解的过程中,会发现只根据部分数据就可以确定分类器,这些数据称为支持向量。

​ 支持向量机(Support Vector Machine,SVM):其含义是通过支持向量运算的分类器。

​ 在一个二维环境中,其中点R,S,G点和其它靠近中间黑线的点可以看作为支持向量,它们可以决定分类器,即黑线的具体参数。

​ 支持向量机是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是边界最大化,最终转化为一个凸二次规划问题来求解。由简至繁的模型包括:

​ 当训练样本线性可分时,通过硬边界(hard margin)最大化,学习一个线性可分支持向量机;

​ 当训练样本近似线性可分时,通过软边界(soft margin)最大化,学习一个线性支持向量机;

​ 当训练样本线性不可分时,通过核技巧和软边界最大化,学习一个非线性支持向量机;

2.18.2 支持向量机能解决哪些问题

线性分类

​ 在训练数据中,每个数据都有n个的属性和一个二分类类别标志,我们可以认为这些数据在一个n维空间里。我们的目标是找到一个n-1维的超平面,这个超平面可以将数据分成两部分,每部分数据都属于同一个类别。

​ 这样的超平面有很多,假如我们要找到一个最佳的超平面。此时,增加一个约束条件:要求这个超平面到每边最近数据点的距离是最大的,成为最大边距超平面。这个分类器即为最大边距分类器。

非线性分类

​ SVM的一个优势是支持非线性分类。它结合使用拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件,以及核函数可以生成非线性分类器。

2.18.3 核函数特点及其作用

​ 引入核函数目的:把原坐标系里线性不可分的数据用核函数Kernel投影到另一个空间,尽量使得数据在新的空间里线性可分。
​ 核函数方法的广泛应用,与其特点是分不开的:

1)核函数的引入避免了“维数灾难”,大大减小了计算量。而输入空间的维数n对核函数矩阵无影响。因此,核函数方法可以有效处理高维输入。

2)无需知道非线性变换函数Φ的形式和参数。

3)核函数的形式和参数的变化会隐式地改变从输入空间到特征空间的映射,进而对特征空间的性质产生影响,最终改变各种核函数方法的性能。

4)核函数方法可以和不同的算法相结合,形成多种不同的基于核函数技术的方法,且这两部分的设计可以单独进行,并可以为不同的应用选择不同的核函数和算法。

2.18.4 SVM为什么引入对偶问题

1,对偶问题将原始问题中的约束转为了对偶问题中的等式约束,对偶问题往往更加容易求解。

2,可以很自然的引用核函数(拉格朗日表达式里面有内积,而核函数也是通过内积进行映射的)。

3,在优化理论中,目标函数 f(x) 会有多种形式:如果目标函数和约束条件都为变量 x 的线性函数,称该问题为线性规划;如果目标函数为二次函数,约束条件为线性函数,称该最优化问题为二次规划;如果目标函数或者约束条件均为非线性函数,称该最优化问题为非线性规划。每个线性规划问题都有一个与之对应的对偶问题,对偶问题有非常良好的性质,以下列举几个:

​ a, 对偶问题的对偶是原问题;

​ b, 无论原始问题是否是凸的,对偶问题都是凸优化问题;

​ c, 对偶问题可以给出原始问题一个下界;

​ d, 当满足一定条件时,原始问题与对偶问题的解是完全等价的。

2.18.5 如何理解SVM中的对偶问题

在硬边界支持向量机中,问题的求解可以转化为凸二次规划问题。

​ 假设优化目标为
min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) ⩾ 1 , i = 1 , 2 , ⋯   , m . (1) \begin{align} &\min_{\boldsymbol w, b}\frac{1}{2}||\boldsymbol w||^2\\ &s.t. y_i(\boldsymbol w^T\boldsymbol x_i+b)\geqslant 1, i=1,2,\cdots,m.\\ \end{align} \tag{1} w,bmin21∣∣w2s.t.yi(wTxi+b)1,i=1,2,,m.(1)
step 1. 转化问题:
min ⁡ w , b max ⁡ α i ⩾ 0 { 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) } (2) \min_{\boldsymbol w, b} \max_{\alpha_i \geqslant 0} \left\{\frac{1}{2}||\boldsymbol w||^2 + \sum_{i=1}^m\alpha_i(1 - y_i(\boldsymbol w^T\boldsymbol x_i+b))\right\} \tag{2} w,bminαi0max{21∣∣w2+i=1mαi(1yi(wTxi+b))}(2)
上式等价于原问题,因为若满足(1)中不等式约束,则(2)式求max时, α i ( 1 − y i ( w T x i + b ) ) \alpha_i(1 - y_i(\boldsymbol w^T\boldsymbol x_i+b)) αi(1yi(wTxi+b))必须取0,与(1)等价;若不满足(1)中不等式约束,(2)中求max会得到无穷大。 交换min和max获得其对偶问题:
max ⁡ α i ⩾ 0 min ⁡ w , b { 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) } \max_{\alpha_i \geqslant 0} \min_{\boldsymbol w, b} \left\{\frac{1}{2}||\boldsymbol w||^2 + \sum_{i=1}^m\alpha_i(1 - y_i(\boldsymbol w^T\boldsymbol x_i+b))\right\} αi0maxw,bmin{21∣∣w2+i=1mαi(1yi(wTxi+b))}
交换之后的对偶问题和原问题并不相等,上式的解小于等于原问题的解。

step 2.现在的问题是如何找到问题(1) 的最优值的一个最好的下界?
1 2 ∣ ∣ w ∣ ∣ 2 < v 1 − y i ( w T x i + b ) ⩽ 0 (3) \frac{1}{2}||\boldsymbol w||^2 < v\\ 1 - y_i(\boldsymbol w^T\boldsymbol x_i+b) \leqslant 0\tag{3} 21∣∣w2<v1yi(wTxi+b)0(3)
若方程组(3)无解, 则v是问题(1)的一个下界。若(3)有解, 则
∀ α > 0 ,   min ⁡ w , b { 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) } < v \forall \boldsymbol \alpha > 0 , \ \min_{\boldsymbol w, b} \left\{\frac{1}{2}||\boldsymbol w||^2 + \sum_{i=1}^m\alpha_i(1 - y_i(\boldsymbol w^T\boldsymbol x_i+b))\right\} < v α>0, w,bmin{21∣∣w2+i=1mαi(1yi(wTxi+b))}<v
由逆否命题得:若
∃ α > 0 ,   min ⁡ w , b { 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) } ⩾ v \exists \boldsymbol \alpha > 0 , \ \min_{\boldsymbol w, b} \left\{\frac{1}{2}||\boldsymbol w||^2 + \sum_{i=1}^m\alpha_i(1 - y_i(\boldsymbol w^T\boldsymbol x_i+b))\right\} \geqslant v α>0, w,bmin{21∣∣w2+i=1mαi(1yi(wTxi+b))}v
则(3)无解。

那么v是问题

(1)的一个下界。
要求得一个好的下界,取最大值即可
max ⁡ α i ⩾ 0 min ⁡ w , b { 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) } \max_{\alpha_i \geqslant 0} \min_{\boldsymbol w, b} \left\{\frac{1}{2}||\boldsymbol w||^2 + \sum_{i=1}^m\alpha_i(1 - y_i(\boldsymbol w^T\boldsymbol x_i+b))\right\} αi0maxw,bmin{21∣∣w2+i=1mαi(1yi(wTxi+b))}
step 3. 令
L ( w , b , a ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) L(\boldsymbol w, b,\boldsymbol a) = \frac{1}{2}||\boldsymbol w||^2 + \sum_{i=1}^m\alpha_i(1 - y_i(\boldsymbol w^T\boldsymbol x_i+b)) L(w,b,a)=21∣∣w2+i=1mαi(1yi(wTxi+b))
p ∗ p^* p为原问题的最小值,对应的 w , b w,b w,b分别为 w ∗ , b ∗ w^*,b^* w,b,则对于任意的 a > 0 a>0 a>0:
p ∗ = 1 2 ∣ ∣ w ∗ ∣ ∣ 2 ⩾ L ( w ∗ , b , a ) ⩾ min ⁡ w , b L ( w , b , a ) p^* = \frac{1}{2}||\boldsymbol w^*||^2 \geqslant L(\boldsymbol w^*, b,\boldsymbol a) \geqslant \min_{\boldsymbol w, b} L(\boldsymbol w, b,\boldsymbol a) p=21∣∣w2L(w,b,a)w,bminL(w,b,a)
min ⁡ w , b L ( w , b , a ) \min_{\boldsymbol w, b} L(\boldsymbol w, b,\boldsymbol a) minw,bL(w,b,a)是问题(1)的一个下界。

此时,取最大值即可求得好的下界,即
max ⁡ α i ⩾ 0 min ⁡ w , b L ( w , b , a ) \max_{\alpha_i \geqslant 0} \min_{\boldsymbol w, b} L(\boldsymbol w, b,\boldsymbol a) αi0maxw,bminL(w,b,a)

2.18.7 常见的核函数有哪些

核函数表达式备注
Linear Kernel线性核 k ( x , y ) = x t y + c k(x,y)=x^{t}y+c k(x,y)=xty+c
Polynomial Kernel多项式核 k ( x , y ) = ( a x t y + c ) d k(x,y)=(ax^{t}y+c)^{d} k(x,y)=(axty+c)d d ⩾ 1 d\geqslant1 d1为多项式的次数
Exponential Kernel指数核 k ( x , y ) = e x p ( − ∣ x − y ∣ 2 σ 2 ) k(x,y)=exp(-\frac{\left |x-y \right |}{2\sigma ^{2}}) k(x,y)=exp(2σ2xy) σ > 0 \sigma>0 σ>0
Gaussian Kernel高斯核 k ( x , y ) = e x p ( − ∣ x − y ∣ 2 2 σ 2 ) k(x,y)=exp(-\frac{\left |x-y \right |^{2}}{2\sigma ^{2}}) k(x,y)=exp(2σ2xy2) σ \sigma σ为高斯核的带宽, σ > 0 \sigma>0 σ>0,
Laplacian Kernel拉普拉斯核 k ( x , y ) = e x p ( − ∣ x − y ∣ σ ) k(x,y)=exp(-\frac{\left |x-y \right |}{\sigma}) k(x,y)=exp(σxy) σ > 0 \sigma>0 σ>0
ANOVA Kernel k ( x , y ) = e x p ( − σ ( x k − y k ) 2 ) d k(x,y)=exp(-\sigma(x^{k}-y^{k})^{2})^{d} k(x,y)=exp(σ(xkyk)2)d
Sigmoid Kernel k ( x , y ) = t a n h ( a x t y + c ) k(x,y)=tanh(ax^{t}y+c) k(x,y)=tanh(axty+c) t a n h tanh tanh为双曲正切函数, a > 0 , c < 0 a>0,c<0 a>0,c<0

2.18.9 SVM主要特点

特点:

(1) SVM方法的理论基础是非线性映射,SVM利用内积核函数代替向高维空间的非线性映射。
(2) SVM的目标是对特征空间划分得到最优超平面,SVM方法核心是最大化分类边界。
(3) 支持向量是SVM的训练结果,在SVM分类决策中起决定作用的是支持向量。
(4) SVM是一种有坚实理论基础的新颖的适用小样本学习方法。它基本上不涉及概率测度及大数定律等,也简化了通常的分类和回归等问题。
(5) SVM的最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了“维数灾难”。
(6) 少数支持向量决定了最终结果,这不但可以帮助我们抓住关键样本、“剔除”大量冗余样本,而且注定了该方法不但算法简单,而且具有较好的“鲁棒性”。这种鲁棒性主要体现在:
​ ①增、删非支持向量样本对模型没有影响;
​ ②支持向量样本集具有一定的鲁棒性;
​ ③有些成功的应用中,SVM方法对核的选取不敏感
(7) SVM学习问题可以表示为凸优化问题,因此可以利用已知的有效算法发现目标函数的全局最小值。而其他分类方法(如基于规则的分类器和人工神经网络)都采用一种基于贪心学习的策略来搜索假设空间,这种方法一般只能获得局部最优解。
(8) SVM通过最大化决策边界的边缘来控制模型的能力。尽管如此,用户必须提供其他参数,如使用核函数类型和引入松弛变量等。
(9) SVM在小样本训练集上能够得到比其它算法好很多的结果。SVM优化目标是结构化风险最小,而不是经验风险最小,避免了过拟合问题,通过margin的概念,得到对数据分布的结构化描述,减低了对数据规模和数据分布的要求,有优秀的泛化能力。
(10) 它是一个凸优化问题,因此局部最优解一定是全局最优解的优点。

2.18.10 SVM主要缺点

(1) SVM算法对大规模训练样本难以实施
​ SVM的空间消耗主要是存储训练样本和核矩阵,由于SVM是借助二次规划来求解支持向量,而求解二次规划将涉及m阶矩阵的计算(m为样本的个数),当m数目很大时该矩阵的存储和计算将耗费大量的机器内存和运算时间。
​ 如果数据量很大,SVM的训练时间就会比较长,如垃圾邮件的分类检测,没有使用SVM分类器,而是使用简单的朴素贝叶斯分类器,或者是使用逻辑回归模型分类。

(2) 用SVM解决多分类问题存在困难

​ 经典的支持向量机算法只给出了二类分类的算法,而在实际应用中,一般要解决多类的分类问题。可以通过多个二类支持向量机的组合来解决。主要有一对多组合模式、一对一组合模式和SVM决策树;再就是通过构造多个分类器的组合来解决。主要原理是克服SVM固有的缺点,结合其他算法的优势,解决多类问题的分类精度。如:与粗糙集理论结合,形成一种优势互补的多类问题的组合分类器。

(3) 对缺失数据敏感,对参数和核函数的选择敏感

​ 支持向量机性能的优劣主要取决于核函数的选取,所以对于一个实际问题而言,如何根据实际的数据模型选择合适的核函数从而构造SVM算法。目前比较成熟的核函数及其参数的选择都是人为的,根据经验来选取的,带有一定的随意性。在不同的问题领域,核函数应当具有不同的形式和参数,所以在选取时候应该将领域知识引入进来,但是目前还没有好的方法来解决核函数的选取问题。

2.18.11 逻辑回归与SVM的异同

相同点:

  • LR和SVM都是分类算法。
  • LR和SVM都是监督学习算法。
  • LR和SVM都是判别模型
  • 如果不考虑核函数,LR和SVM都是线性分类算法,也就是说他们的分类决策面都是线性的。
    说明:LR也是可以用核函数的.但LR通常不采用核函数的方法。(计算量太大

不同点:

1、LR采用log损失,SVM采用合页(hinge)损失。
逻辑回归的损失函数:
J ( θ ) = − 1 m ∑ i = 1 m [ y i l o g h θ ( x i ) + ( 1 − y i ) l o g ( 1 − h θ ( x i ) ) ] J(\theta)=-\frac{1}{m}\sum^m_{i=1}\left[y^{i}logh_{\theta}(x^{i})+ (1-y^{i})log(1-h_{\theta}(x^{i}))\right] J(θ)=m1i=1m[yiloghθ(xi)+(1yi)log(1hθ(xi))]
支持向量机的目标函数:
L ( w , n , a ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 n α i ( y i ( w T x i + b ) − 1 ) L(w,n,a)=\frac{1}{2}||w||^2-\sum^n_{i=1}\alpha_i \left( y_i(w^Tx_i+b)-1\right) L(w,n,a)=21∣∣w2i=1nαi(yi(wTxi+b)1)
​ 逻辑回归方法基于概率理论,假设样本为1的概率可以用sigmoid函数来表示,然后通过极大似然估计的方法估计出参数的值。
​ 支持向量机基于几何边界最大化原理,认为存在最大几何边界的分类面为最优分类面。

2、LR对异常值敏感,SVM对异常值不敏感

​ 支持向量机只考虑局部的边界线附近的点,而逻辑回归考虑全局。LR模型找到的那个超平面,是尽量让所有点都远离他,而SVM寻找的那个超平面,是只让最靠近中间分割线的那些点尽量远离,即只用到那些支持向量的样本。
​ 支持向量机改变非支持向量样本并不会引起决策面的变化。
​ 逻辑回归中改变任何样本都会引起决策面的变化。

3、计算复杂度不同。对于海量数据,SVM的效率较低,LR效率比较高

​ 当样本较少,特征维数较低时,SVM和LR的运行时间均比较短,SVM较短一些。准确率的话,LR明显比SVM要高。当样本稍微增加些时,SVM运行时间开始增长,但是准确率赶超了LR。SVM时间虽长,但在可接受范围内。当数据量增长到20000时,特征维数增长到200时,SVM的运行时间剧烈增加,远远超过了LR的运行时间。但是准确率却和LR相差无几。(这其中主要原因是大量非支持向量参与计算,造成SVM的二次规划问题)

4、对非线性问题的处理方式不同

​ LR主要靠特征构造,必须组合交叉特征,特征离散化。SVM也可以这样,还可以通过核函数kernel(因为只有支持向量参与核计算,计算复杂度不高)。由于可以利用核函数,SVM则可以通过对偶求解高效处理。LR则在特征空间维度很高时,表现较差。

5、SVM的损失函数就自带正则
​ 损失函数中的1/2||w||^2项,这就是为什么SVM是结构风险最小化算法的原因!!!而LR必须另外在损失函数上添加正则项!!!**

6、SVM自带结构风险最小化,LR则是经验风险最小化

7、SVM会用核函数而LR一般不用核函数。

2.19 贝叶斯分类器

2.19.1 图解极大似然估计

极大似然估计的原理,用一张图片来说明,如下图所示:

​ 例:有两个外形完全相同的箱子,1号箱有99只白球,1只黑球;2号箱有1只白球,99只黑球。在一次实验中,取出的是黑球,请问是从哪个箱子中取出的?

​ 一般的根据经验想法,会猜测这只黑球最像是从2号箱取出,此时描述的“最像”就有“最大似然”的意思,这种想法常称为“最大似然原理”。

2.19.2 极大似然估计原理

​ 总结起来,最大似然估计的目的就是:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。

​ 极大似然估计是建立在极大似然原理的基础上的一个统计方法。极大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。通过若干次试验,观察其结果,利用试验结果得到某个参数值能够使样本出现的概率为最大,则称为极大似然估计。

​ 由于样本集中的样本都是独立同分布,可以只考虑一类样本集 D D D,来估计参数向量 θ ⃗ \vec\theta θ 。记已知的样本集为:
D = x ⃗ 1 , x ⃗ 2 , . . . , x ⃗ n D=\vec x_{1},\vec x_{2},...,\vec x_{n} D=x 1,x 2,...,x n
似然函数(likelihood function):联合概率密度函数 p ( D ∣ θ ⃗ ) p(D|\vec\theta ) p(Dθ )称为相对于 x ⃗ 1 , x ⃗ 2 , . . . , x ⃗ n \vec x_{1},\vec x_{2},...,\vec x_{n} x 1,x 2,...,x n θ ⃗ \vec\theta θ 的似然函数。
l ( θ ⃗ ) = p ( D ∣ θ ⃗ ) = p ( x ⃗ 1 , x ⃗ 2 , . . . , x ⃗ n ∣ θ ⃗ ) = ∏ i = 1 n p ( x ⃗ i ∣ θ ⃗ ) l(\vec\theta )=p(D|\vec\theta ) =p(\vec x_{1},\vec x_{2},...,\vec x_{n}|\vec\theta )=\prod_{i=1}^{n}p(\vec x_{i}|\vec \theta ) l(θ )=p(Dθ )=p(x 1,x 2,...,x nθ )=i=1np(x iθ )
如果 θ ⃗ ^ \hat{\vec\theta} θ ^是参数空间中能使似然函数 l ( θ ⃗ ) l(\vec\theta) l(θ )最大的 θ ⃗ \vec\theta θ 值,则 θ ⃗ ^ \hat{\vec\theta} θ ^应该是“最可能”的参数值,那么 θ ⃗ ^ ​ \hat{\vec\theta}​ θ ^就是 θ \theta θ的极大似然估计量。它是样本集的函数,记作:
θ ⃗ ^ = d ( D ) = arg ⁡ max ⁡ θ ⃗ l ( θ ⃗ ) \hat{\vec\theta}=d(D)= \mathop {\arg \max}_{\vec\theta} l(\vec\theta ) θ ^=d(D)=argmaxθ l(θ )
θ ⃗ ^ ( x ⃗ 1 , x ⃗ 2 , . . . , x ⃗ n ) \hat{\vec\theta}(\vec x_{1},\vec x_{2},...,\vec x_{n}) θ ^(x 1,x 2,...,x n)称为极大似然函数估计值。

2.19.3 贝叶斯分类器基本原理

​ 贝叶斯决策论通过相关概率已知的情况下利用误判损失来选择最优的类别分类。
假设有 N N N种可能的分类标记,记为 Y = { c 1 , c 2 , . . . , c N } Y=\{c_1,c_2,...,c_N\} Y={c1,c2,...,cN},那对于样本 x \boldsymbol{x} x,它属于哪一类呢?

计算步骤如下:

step 1. 算出样本 x \boldsymbol{x} x属于第i个类的概率,即 P ( c i ∣ x ) ​ P(c_i|x)​ P(cix)

step 2. 通过比较所有的 P ( c i ∣ x ) P(c_i|\boldsymbol{x}) P(cix),得到样本 x \boldsymbol{x} x所属的最佳类别。

step 3. 将类别 c i c_i ci和样本 x \boldsymbol{x} x代入到贝叶斯公式中,得到:
P ( c i ∣ x ) = P ( x ∣ c i ) P ( c i ) P ( x ) . P(c_i|\boldsymbol{x})=\frac{P(\boldsymbol{x}|c_i)P(c_i)}{P(\boldsymbol{x})}. P(cix)=P(x)P(xci)P(ci).
​ 一般来说, P ( c i ) P(c_i) P(ci)为先验概率, P ( x ∣ c i ) P(\boldsymbol{x}|c_i) P(xci)为条件概率, P ( x ) P(\boldsymbol{x}) P(x)是用于归一化的证据因子。对于 P ( c i ) P(c_i) P(ci)可以通过训练样本中类别为 c i c_i ci的样本所占的比例进行估计;此外,由于只需要找出最大的 P ( x ∣ c i ) P(\boldsymbol{x}|c_i) P(xci),因此我们并不需要计算 P ( x ) P(\boldsymbol{x}) P(x)
​ 为了求解条件概率,基于不同假设提出了不同的方法,以下将介绍朴素贝叶斯分类器和半朴素贝叶斯分类器。

2.19.4 朴素贝叶斯分类器

​ 假设样本 x \boldsymbol{x} x包含 d d d个属性,即 x = { x 1 , x 2 , . . . , x d } \boldsymbol{x}=\{ x_1,x_2,...,x_d\} x={x1,x2,...,xd}。于是有:
P ( x ∣ c i ) = P ( x 1 , x 2 , ⋯   , x d ∣ c i ) P(\boldsymbol{x}|c_i)=P(x_1,x_2,\cdots,x_d|c_i) P(xci)=P(x1,x2,,xdci)
这个联合概率难以从有限的训练样本中直接估计得到。于是,朴素贝叶斯(Naive Bayesian,简称NB)采用了“属性条件独立性假设”:对已知类别,假设所有属性相互独立。于是有:
P ( x 1 , x 2 , ⋯   , x d ∣ c i ) = ∏ j = 1 d P ( x j ∣ c i ) P(x_1,x_2,\cdots,x_d|c_i)=\prod_{j=1}^d P(x_j|c_i) P(x1,x2,,xdci)=j=1dP(xjci)
这样的话,我们就可以很容易地推出相应的判定准则了:
h n b ( x ) = arg ⁡ max ⁡ c i ∈ Y P ( c i ) ∏ j = 1 d P ( x j ∣ c i ) h_{nb}(\boldsymbol{x})=\mathop{\arg \max}_{c_i\in Y} P(c_i)\prod_{j=1}^dP(x_j|c_i) hnb(x)=argmaxciYP(ci)j=1dP(xjci)
条件概率 P ( x j ∣ c i ) ​ P(x_j|c_i)​ P(xjci)的求解

如果 x j x_j xj是标签属性,那么我们可以通过计数的方法估计 P ( x j ∣ c i ) P(x_j|c_i) P(xjci)
P ( x j ∣ c i ) = P ( x j , c i ) P ( c i ) ≈ # ( x j , c i ) # ( c i ) P(x_j|c_i)=\frac{P(x_j,c_i)}{P(c_i)}\approx\frac{\#(x_j,c_i)}{\#(c_i)} P(xjci)=P(ci)P(xj,ci)#(ci)#(xj,ci)
其中, # ( x j , c i ) \#(x_j,c_i) #(xj,ci)表示在训练样本中 x j x_j xj c i c_{i} ci共同出现的次数。

如果 x j ​ x_j​ xj是数值属性,通常我们假设类别中 c i ​ c_{i}​ ci的所有样本第 j ​ j​ j个属性的值服从正态分布。我们首先估计这个分布的均值 μ ​ μ​ μ和方差 σ ​ σ​ σ,然后计算 x j ​ x_j​ xj在这个分布中的概率密度 P ( x j ∣ c i ) ​ P(x_j|c_i)​ P(xjci)

2.19.5 举例理解朴素贝叶斯分类器

使用经典的西瓜训练集如下:

编号色泽根蒂敲声纹理脐部触感密度含糖率好瓜
1青绿蜷缩浊响清晰凹陷硬滑0.6970.460
2乌黑蜷缩沉闷清晰凹陷硬滑0.7740.376
3乌黑蜷缩浊响清晰凹陷硬滑0.6340.264
4青绿蜷缩沉闷清晰凹陷硬滑0.6080.318
5浅白蜷缩浊响清晰凹陷硬滑0.5560.215
6青绿稍蜷浊响清晰稍凹软粘0.4030.237
7乌黑稍蜷浊响稍糊稍凹软粘0.4810.149
8乌黑稍蜷浊响清晰稍凹硬滑0.4370.211
9乌黑稍蜷沉闷稍糊稍凹硬滑0.6660.091
10青绿硬挺清脆清晰平坦软粘0.2430.267
11浅白硬挺清脆模糊平坦硬滑0.2450.057
12浅白蜷缩浊响模糊平坦软粘0.3430.099
13青绿稍蜷浊响稍糊凹陷硬滑0.6390.161
14浅白稍蜷沉闷稍糊凹陷硬滑0.6570.198
15乌黑稍蜷浊响清晰稍凹软粘0.3600.370
16浅白蜷缩浊响模糊平坦硬滑0.5930.042
17青绿蜷缩沉闷稍糊稍凹硬滑0.7190.103

对下面的测试例“测1”进行 分类:

编号色泽根蒂敲声纹理脐部触感密度含糖率好瓜
测1青绿蜷缩浊响清晰凹陷硬滑0.6970.460

首先,估计类先验概率 P ( c j ) P(c_j) P(cj),有
P ( 好瓜 = 是 ) = 8 17 = 0.471 P ( 好瓜 = 否 ) = 9 17 = 0.529 \begin{align} &P(好瓜=是)=\frac{8}{17}=0.471 \newline &P(好瓜=否)=\frac{9}{17}=0.529 \end{align} P(好瓜=)=178=0.471P(好瓜=)=179=0.529
然后,为每个属性估计条件概率(这里,对于连续属性,假定它们服从正态分布)
P 青绿 ∣ 是 = P (色泽 = 青绿 ∣ 好瓜 = 是) = 3 8 = 0.375 P_{青绿|是}=P(色泽=青绿|好瓜=是)=\frac{3}{8}=0.375 P青绿=P(色泽=青绿好瓜=是)=83=0.375

P 青绿 ∣ 否 = P (色泽 = 青绿 ∣ 好瓜 = 否) = 3 9 ≈ 0.333 P_{青绿|否}=P(色泽=青绿|好瓜=否)=\frac{3}{9}\approx0.333 P青绿=P(色泽=青绿好瓜=否)=930.333

P 蜷缩 ∣ 是 = P (根蒂 = 蜷缩 ∣ 好瓜 = 是) = 5 8 = 0.625 P_{蜷缩|是}=P(根蒂=蜷缩|好瓜=是)=\frac{5}{8}=0.625 P蜷缩=P(根蒂=蜷缩好瓜=是)=85=0.625

P 蜷缩 ∣ 否 = P (根蒂 = 蜷缩 ∣ 好瓜 = 否) = 3 9 = 0.333 P_{蜷缩|否}=P(根蒂=蜷缩|好瓜=否)=\frac{3}{9}=0.333 P蜷缩=P(根蒂=蜷缩好瓜=否)=93=0.333

P 浊响 ∣ 是 = P (敲声 = 浊响 ∣ 好瓜 = 是) = 6 8 = 0.750 P_{浊响|是}=P(敲声=浊响|好瓜=是)=\frac{6}{8}=0.750 P浊响=P(敲声=浊响好瓜=是)=86=0.750

P 浊响 ∣ 否 = P (敲声 = 浊响 ∣ 好瓜 = 否) = 4 9 ≈ 0.444 P_{浊响|否}=P(敲声=浊响|好瓜=否)=\frac{4}{9}\approx 0.444 P浊响=P(敲声=浊响好瓜=否)=940.444

P 清晰 ∣ 是 = P (纹理 = 清晰 ∣ 好瓜 = 是) = 7 8 = 0.875 P_{清晰|是}=P(纹理=清晰|好瓜=是)=\frac{7}{8}= 0.875 P清晰=P(纹理=清晰好瓜=是)=87=0.875

P 清晰 ∣ 否 = P (纹理 = 清晰 ∣ 好瓜 = 否) = 2 9 ≈ 0.222 P_{清晰|否}=P(纹理=清晰|好瓜=否)=\frac{2}{9}\approx 0.222 P清晰=P(纹理=清晰好瓜=否)=920.222

P 凹陷 ∣ 是 = P (脐部 = 凹陷 ∣ 好瓜 = 是) = 6 8 = 0.750 P_{凹陷|是}=P(脐部=凹陷|好瓜=是)=\frac{6}{8}= 0.750 P凹陷=P(脐部=凹陷好瓜=是)=86=0.750

P 凹陷 ∣ 否 = P (脐部 = 凹陷 ∣ 好瓜 = 否) = 2 9 ≈ 0.222 P_{凹陷|否}=P(脐部=凹陷|好瓜=否)=\frac{2}{9} \approx 0.222 P凹陷=P(脐部=凹陷好瓜=否)=920.222

P 硬滑 ∣ 是 = P (触感 = 硬滑 ∣ 好瓜 = 是) = 6 8 = 0.750 P_{硬滑|是}=P(触感=硬滑|好瓜=是)=\frac{6}{8}= 0.750 P硬滑=P(触感=硬滑好瓜=是)=86=0.750

P 硬滑 ∣ 否 = P (触感 = 硬滑 ∣ 好瓜 = 否) = 6 9 ≈ 0.667 P_{硬滑|否}=P(触感=硬滑|好瓜=否)=\frac{6}{9} \approx 0.667 P硬滑=P(触感=硬滑好瓜=否)=960.667

ρ 密度: 0.697 ∣ 是 = ρ (密度 = 0.697 ∣ 好瓜 = 是) = 1 2 π × 0.129 e x p ( − ( 0.697 − 0.574 ) 2 2 × 0.12 9 2 ) ≈ 1.959 \begin{aligned} \rho_{密度:0.697|是}&=\rho(密度=0.697|好瓜=是)\\&=\frac{1}{\sqrt{2 \pi}\times0.129}exp\left( -\frac{(0.697-0.574)^2}{2\times0.129^2}\right) \approx 1.959 \end{aligned} ρ密度:0.697∣=ρ(密度=0.697∣好瓜=是)=2π ×0.1291exp(2×0.1292(0.6970.574)2)1.959

ρ 密度: 0.697 ∣ 否 = ρ (密度 = 0.697 ∣ 好瓜 = 否) = 1 2 π × 0.195 e x p ( − ( 0.697 − 0.496 ) 2 2 × 0.19 5 2 ) ≈ 1.203 \begin{aligned} \rho_{密度:0.697|否}&=\rho(密度=0.697|好瓜=否)\\&=\frac{1}{\sqrt{2 \pi}\times0.195}exp\left( -\frac{(0.697-0.496)^2}{2\times0.195^2}\right) \approx 1.203 \end{aligned} ρ密度:0.697∣=ρ(密度=0.697∣好瓜=否)=2π ×0.1951exp(2×0.1952(0.6970.496)2)1.203

ρ 含糖: 0.460 ∣ 是 = ρ (密度 = 0.460 ∣ 好瓜 = 是) = 1 2 π × 0.101 e x p ( − ( 0.460 − 0.279 ) 2 2 × 0.10 1 2 ) ≈ 0.788 \begin{aligned} \rho_{含糖:0.460|是}&=\rho(密度=0.460|好瓜=是)\\&=\frac{1}{\sqrt{2 \pi}\times0.101}exp\left( -\frac{(0.460-0.279)^2}{2\times0.101^2}\right) \approx 0.788 \end{aligned} ρ含糖:0.460∣=ρ(密度=0.460∣好瓜=是)=2π ×0.1011exp(2×0.1012(0.4600.279)2)0.788

ρ 含糖: 0.460 ∣ 否 = ρ (密度 = 0.460 ∣ 好瓜 = 是) = 1 2 π × 0.108 e x p ( − ( 0.460 − 0.154 ) 2 2 × 0.10 8 2 ) ≈ 0.066 \begin{aligned} \rho_{含糖:0.460|否}&=\rho(密度=0.460|好瓜=是)\\&=\frac{1}{\sqrt{2 \pi}\times0.108}exp\left( -\frac{(0.460-0.154)^2}{2\times0.108^2}\right) \approx 0.066 \end{aligned} ρ含糖:0.460∣=ρ(密度=0.460∣好瓜=是)=2π ×0.1081exp(2×0.1082(0.4600.154)2)0.066

于是有
P ( 好瓜 = 是 ) × P 青绿 ∣ 是 × P 蜷缩 ∣ 是 × P 浊响 ∣ 是 × P 清晰 ∣ 是 × P 凹陷 ∣ 是 × P 硬滑 ∣ 是 × p 密度: 0.697 ∣ 是 × p 含糖: 0.460 ∣ 是 ≈ 0.063 P ( 好瓜 = 否 ) × P 青绿 ∣ 否 × P 蜷缩 ∣ 否 × P 浊响 ∣ 否 × P 清晰 ∣ 否 × P 凹陷 ∣ 否 × P 硬滑 ∣ 否 × p 密度: 0.697 ∣ 否 × p 含糖: 0.460 ∣ 否 ≈ 6.80 × 1 0 − 5 \begin{align} P(&好瓜=是)\times P_{青绿|是} \times P_{蜷缩|是} \times P_{浊响|是} \times P_{清晰|是} \times P_{凹陷|是}\newline &\times P_{硬滑|是} \times p_{密度:0.697|是} \times p_{含糖:0.460|是} \approx 0.063 \newline\newline P(&好瓜=否)\times P_{青绿|否} \times P_{蜷缩|否} \times P_{浊响|否} \times P_{清晰|否} \times P_{凹陷|否}\newline &\times P_{硬滑|否} \times p_{密度:0.697|否} \times p_{含糖:0.460|否} \approx 6.80\times 10^{-5} \end{align} P(P(好瓜=)×P青绿×P蜷缩×P浊响×P清晰×P凹陷×P硬滑×p密度:0.697∣×p含糖:0.460∣0.063好瓜=)×P青绿×P蜷缩×P浊响×P清晰×P凹陷×P硬滑×p密度:0.697∣×p含糖:0.460∣6.80×105

由于 0.063 > 6.80 × 1 0 − 5 0.063>6.80\times 10^{-5} 0.063>6.80×105,因此,朴素贝叶斯分类器将测试样本“测1”判别为“好瓜”。

2.19.6 半朴素贝叶斯分类器

​ 朴素贝叶斯采用了“属性条件独立性假设”,半朴素贝叶斯分类器的基本想法是适当考虑一部分属性间的相互依赖信息。独依赖估计(One-Dependence Estimator,简称ODE)是半朴素贝叶斯分类器最常用的一种策略。顾名思义,独依赖是假设每个属性在类别之外最多依赖一个其他属性,即:
P ( x ∣ c i ) = ∏ j = 1 d P ( x j ∣ c i , p a j ) P(\boldsymbol{x}|c_i)=\prod_{j=1}^d P(x_j|c_i,{\rm pa}_j) P(xci)=j=1dP(xjci,paj)
其中 p a j pa_j paj为属性 x i x_i xi所依赖的属性,成为 x i x_i xi的父属性。假设父属性 p a j pa_j paj已知,那么可以使用下面的公式估计 P ( x j ∣ c i , p a j ) P(x_j|c_i,{\rm pa}_j) P(xjci,paj)
P ( x j ∣ c i , p a j ) = P ( x j , c i , p a j ) P ( c i , p a j ) P(x_j|c_i,{\rm pa}_j)=\frac{P(x_j,c_i,{\rm pa}_j)}{P(c_i,{\rm pa}_j)} P(xjci,paj)=P(ci,paj)P(xj,ci,paj)

2.20 EM算法

2.20.1 EM算法基本思想

​ 最大期望算法(Expectation-Maximization algorithm, EM),是一类通过迭代进行极大似然估计的优化算法,通常作为牛顿迭代法的替代,用于对包含隐变量或缺失数据的概率模型进行参数估计。

​ 最大期望算法基本思想是经过两个步骤交替进行计算:

​ 第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值**;**

​ 第二步是最大化(M),最大化在E步上求得的最大似然值来计算参数的值。

​ M步上找到的参数估计值被用于下一个E步计算中,这个过程不断交替进行。

2.20.2 EM算法推导

​ 对于 m m m个样本观察数据 x = ( x 1 , x 2 , . . . , x m ) x=(x^{1},x^{2},...,x^{m}) x=(x1,x2,...,xm),现在想找出样本的模型参数 θ \theta θ,其极大化模型分布的对数似然函数为:
θ = arg ⁡ max ⁡ θ ∑ i = 1 m l o g P ( x ( i ) ; θ ) \theta = \mathop{\arg\max}_\theta\sum\limits_{i=1}^m logP(x^{(i)};\theta) θ=argmaxθi=1mlogP(x(i);θ)
如果得到的观察数据有未观察到的隐含数据 z = ( z ( 1 ) , z ( 2 ) , . . . z ( m ) ) z=(z^{(1)},z^{(2)},...z^{(m)}) z=(z(1),z(2),...z(m)),极大化模型分布的对数似然函数则为:
θ = arg ⁡ max ⁡ θ ∑ i = 1 m l o g P ( x ( i ) ; θ ) = arg ⁡ max ⁡ θ ∑ i = 1 m l o g ∑ z ( i ) P ( x ( i ) , z ( i ) ; θ ) (a) \theta =\mathop{\arg\max}_\theta\sum\limits_{i=1}^m logP(x^{(i)};\theta) = \mathop{\arg\max}_\theta\sum\limits_{i=1}^m log\sum\limits_{z^{(i)}}P(x^{(i)}, z^{(i)};\theta) \tag{a} θ=argmaxθi=1mlogP(x(i);θ)=argmaxθi=1mlogz(i)P(x(i),z(i);θ)(a)
由于上式不能直接求出 θ \theta θ,采用缩放技巧:
∑ i = 1 m l o g ∑ z ( i ) P ( x ( i ) , z ( i ) ; θ ) = ∑ i = 1 m l o g ∑ z ( i ) Q i ( z ( i ) ) P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) ⩾ ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) l o g P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) (1) \begin{align} \sum\limits_{i=1}^m log\sum\limits_{z^{(i)}}P(x^{(i)}, z^{(i)};\theta) & = \sum\limits_{i=1}^m log\sum\limits_{z^{(i)}}Q_i(z^{(i)})\frac{P(x^{(i)}, z^{(i)};\theta)}{Q_i(z^{(i)})} \\ & \geqslant \sum\limits_{i=1}^m \sum\limits_{z^{(i)}}Q_i(z^{(i)})log\frac{P(x^{(i)}, z^{(i)};\theta)}{Q_i(z^{(i)})} \end{align} \tag{1} i=1mlogz(i)P(x(i),z(i);θ)=i=1mlogz(i)Qi(z(i))Qi(z(i))P(x(i),z(i);θ)i=1mz(i)Qi(z(i))logQi(z(i))P(x(i),z(i);θ)(1)
上式用到了Jensen不等式:
l o g ∑ j λ j y j ⩾ ∑ j λ j l o g y j      , λ j ⩾ 0 , ∑ j λ j = 1 log\sum\limits_j\lambda_jy_j \geqslant \sum\limits_j\lambda_jlogy_j\;\;, \lambda_j \geqslant 0, \sum\limits_j\lambda_j =1 logjλjyjjλjlogyj,λj0,jλj=1
并且引入了一个未知的新分布 Q i ( z ( i ) ) Q_i(z^{(i)}) Qi(z(i))

此时,如果需要满足Jensen不等式中的等号,所以有:
P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) = c , c 为常数 \frac{P(x^{(i)}, z^{(i)};\theta)}{Q_i(z^{(i)})} =c, c为常数 Qi(z(i))P(x(i),z(i);θ)=c,c为常数
由于 Q i ( z ( i ) ) Q_i(z^{(i)}) Qi(z(i))是一个分布,所以满足
∑ z Q i ( z ( i ) ) = 1 \sum\limits_{z}Q_i(z^{(i)}) =1 zQi(z(i))=1
综上,可得:
Q i ( z ( i ) ) = P ( x ( i ) , z ( i ) ; θ ) ∑ z P ( x ( i ) , z ( i ) ; θ ) = P ( x ( i ) , z ( i ) ; θ ) P ( x ( i ) ; θ ) = P ( z ( i ) ∣ x ( i ) ; θ ) Q_i(z^{(i)}) = \frac{P(x^{(i)}, z^{(i)};\theta)}{\sum\limits_{z}P(x^{(i)}, z^{(i)};\theta)} = \frac{P(x^{(i)}, z^{(i)};\theta)}{P(x^{(i)};\theta)} = P( z^{(i)}|x^{(i)};\theta) Qi(z(i))=zP(x(i),z(i);θ)P(x(i)z(i);θ)=P(x(i);θ)P(x(i),z(i);θ)=P(z(i)x(i);θ)
如果 Q i ( z ( i ) ) = P ( z ( i ) ∣ x ( i ) ; θ ) Q_i(z^{(i)}) = P( z^{(i)}|x^{(i)};\theta) Qi(z(i))=P(z(i)x(i);θ) ,则第(1)式是我们的包含隐藏数据的对数似然的一个下界。如果我们能极大化这个下界,则也在尝试极大化我们的对数似然。即我们需要最大化下式:
arg ⁡ max ⁡ θ ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) l o g P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) \mathop{\arg\max}_\theta \sum\limits_{i=1}^m \sum\limits_{z^{(i)}}Q_i(z^{(i)})log\frac{P(x^{(i)}, z^{(i)};\theta)}{Q_i(z^{(i)})} argmaxθi=1mz(i)Qi(z(i))logQi(z(i))P(x(i)z(i);θ)
简化得:
arg ⁡ max ⁡ θ ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) l o g P ( x ( i ) , z ( i ) ; θ ) \mathop{\arg\max}_\theta \sum\limits_{i=1}^m \sum\limits_{z^{(i)}}Q_i(z^{(i)})log{P(x^{(i)}, z^{(i)};\theta)} argmaxθi=1mz(i)Qi(z(i))logP(x(i),z(i);θ)
以上即为EM算法的M步, ∑ z ( i ) Q i ( z ( i ) ) l o g P ( x ( i ) , z ( i ) ; θ ) ​ \sum\limits_{z^{(i)}}Q_i(z^{(i)})log{P(x^{(i)}, z^{(i)};\theta)}​ z(i)Qi(z(i))logP(x(i),z(i);θ)可理解为 l o g P ( x ( i ) , z ( i ) ; θ ) logP(x^{(i)}, z^{(i)};\theta) logP(x(i),z(i);θ)基于条件概率分布 Q i ( z ( i ) ) Q_i(z^{(i)}) Qi(z(i))的期望。以上即为EM算法中E步和M步的具体数学含义。

2.20.3 图解EM算法

​ 考虑上一节中的(a)式,表达式中存在隐变量,直接找到参数估计比较困难,通过EM算法迭代求解下界的最大值到收敛为止。

​ 图片中的紫色部分是我们的目标模型 p ( x ∣ θ ) p(x|\theta) p(xθ),该模型复杂,难以求解析解,为了消除隐变量 z ( i ) z^{(i)} z(i)的影响,我们可以选择一个不包含 z ( i ) z^{(i)} z(i)的模型 r ( x ∣ θ ) r(x|\theta) r(xθ),使其满足条件 r ( x ∣ θ ) ⩽ p ( x ∣ θ ) r(x|\theta) \leqslant p(x|\theta) r(xθ)p(xθ)

求解步骤如下:

(1)选取 θ 1 \theta_1 θ1,使得 r ( x ∣ θ 1 ) = p ( x ∣ θ 1 ) r(x|\theta_1) = p(x|\theta_1) r(xθ1)=p(xθ1),然后对此时的 r r r求取最大值,得到极值点 θ 2 \theta_2 θ2,实现参数的更新。

(2)重复以上过程到收敛为止,在更新过程中始终满足$r \leqslant p $.

2.20.4 EM算法流程

输入:观察数据 x = ( x ( 1 ) , x ( 2 ) , . . . x ( m ) ) x=(x^{(1)},x^{(2)},...x^{(m)}) x=(x(1),x(2),...x(m)),联合分布 p ( x , z ; θ ) p(x,z ;\theta) p(x,z;θ),条件分布 p ( z ∣ x ; θ ) p(z|x; \theta) p(zx;θ),最大迭代次数 J J J

1)随机初始化模型参数 θ \theta θ的初值 θ 0 \theta^0 θ0

2) f o r   j   f r o m   1   t o   j for \ j \ from \ 1 \ to \ j for j from 1 to j

​ a) E步。计算联合分布的条件概率期望:
Q i ( z ( i ) ) = P ( z ( i ) ∣ x ( i ) , θ j ) Q_i(z^{(i)}) = P( z^{(i)}|x^{(i)}, \theta^{j}) Qi(z(i))=P(z(i)x(i),θj)

L ( θ , θ j ) = ∑ i = 1 m ∑ z ( i ) P ( z ( i ) ∣ x ( i ) , θ j ) l o g P ( x ( i ) , z ( i ) ; θ ) L(\theta, \theta^{j}) = \sum\limits_{i=1}^m\sum\limits_{z^{(i)}}P( z^{(i)}|x^{(i)}, \theta^{j})log{P(x^{(i)}, z^{(i)};\theta)} L(θ,θj)=i=1mz(i)P(z(i)x(i),θj)logP(x(i),z(i);θ)

​ b) M步。极大化 L ( θ , θ j ) L(\theta, \theta^{j}) L(θ,θj),得到 θ j + 1 \theta^{j+1} θj+1:
θ j + 1 = arg ⁡ max ⁡ θ L ( θ , θ j ) \theta^{j+1} = \mathop{\arg\max}_\theta L(\theta, \theta^{j}) θj+1=argmaxθL(θ,θj)
​ c) 如果 θ j + 1 \theta^{j+1} θj+1收敛,则算法结束。否则继续回到步骤a)进行E步迭代。

输出:模型参数 θ ​ \theta​ θ

2.21 降维和聚类

2.21.1 图解为什么会产生维数灾难

​ 假如数据集包含10张照片,照片中包含三角形和圆两种形状。现在来设计一个分类器进行训练,让这个分类器对其他的照片进行正确分类(假设三角形和圆的总数是无限大),简单的,我们用一个特征进行分类:

​ 图2.21.1.a

​ 从上图可看到,如果仅仅只有一个特征进行分类,三角形和圆几乎是均匀分布在这条线段上,很难将10张照片线性分类。那么,增加一个特征后的情况会怎么样:

​ 图2.21.1.b

增加一个特征后,我们发现仍然无法找到一条直线将猫和狗分开。所以,考虑需要再增加一个特征:

​ 图2.21.1.c

​ 图2.21.1.d

​ 此时,可以找到一个平面将三角形和圆分开。

​ 现在计算一下不同特征数是样本的密度:

​ (1)一个特征时,假设特征空间时长度为5的线段,则样本密度为 10 ÷ 5 = 2 10 \div 5 = 2 10÷5=2

​ (2)两个特征时,特征空间大小为 5 × 5 = 25 5\times5 = 25 5×5=25,样本密度为 10 ÷ 25 = 0.4 10 \div 25 = 0.4 10÷25=0.4

​ (3)三个特征时,特征空间大小是 5 × 5 × 5 = 125 5\times5\times5 = 125 5×5×5=125,样本密度为 10 ÷ 125 = 0.08 10 \div 125 = 0.08 10÷125=0.08

​ 以此类推,如果继续增加特征数量,样本密度会越来越稀疏,此时,更容易找到一个超平面将训练样本分开。当特征数量增长至无限大时,样本密度就变得非常稀疏。

​ 下面看一下将高维空间的分类结果映射到低维空间时,会出现什么情况?

​ 图2.21.1.e

​ 上图是将三维特征空间映射到二维特征空间后的结果。尽管在高维特征空间时训练样本线性可分,但是映射到低维空间后,结果正好相反。事实上,增加特征数量使得高维空间线性可分,相当于在低维空间内训练一个复杂的非线性分类器。不过,这个非线性分类器太过“聪明”,仅仅学到了一些特例。如果将其用来辨别那些未曾出现在训练样本中的测试样本时,通常结果不太理想,会造成过拟合问题。

​ 图2.21.1.f

​ 上图所示的只采用2个特征的线性分类器分错了一些训练样本,准确率似乎没有图2.21.1.e的高,但是,采用2个特征的线性分类器的泛化能力比采用3个特征的线性分类器要强。因为,采用2个特征的线性分类器学习到的不只是特例,而是一个整体趋势,对于那些未曾出现过的样本也可以比较好地辨别开来。换句话说,通过减少特征数量,可以避免出现过拟合问题,从而避免“维数灾难”。

​ 上图从另一个角度诠释了“维数灾难”。假设只有一个特征时,特征的值域是0到1,每一个三角形和圆的特征值都是唯一的。如果我们希望训练样本覆盖特征值值域的20%,那么就需要三角形和圆总数的20%。我们增加一个特征后,为了继续覆盖特征值值域的20%就需要三角形和圆总数的45%( 0.45 2 2 ≈ 0.2 0.452^2\approx0.2 0.45220.2)。继续增加一个特征后,需要三角形和圆总数的58%( 0.58 3 3 ≈ 0.2 0.583^3\approx0.2 0.58330.2)。随着特征数量的增加,为了覆盖特征值值域的20%,就需要更多的训练样本。如果没有足够的训练样本,就可能会出现过拟合问题。

​ 通过上述例子,我们可以看到特征数量越多,训练样本就会越稀疏,分类器的参数估计就会越不准确,更加容易出现过拟合问题。“维数灾难”的另一个影响是训练样本的稀疏性并不是均匀分布的。处于中心位置的训练样本比四周的训练样本更加稀疏。

​ 假设有一个二维特征空间,如上图所示的矩形,在矩形内部有一个内切的圆形。由于越接近圆心的样本越稀疏,因此,相比于圆形内的样本,那些位于矩形四角的样本更加难以分类。当维数变大时,特征超空间的容量不变,但单位圆的容量会趋于0,在高维空间中,大多数训练数据驻留在特征超空间的角落。散落在角落的数据要比处于中心的数据难于分类。

2.21.2 怎样避免维数灾难

有待完善!!!

解决维度灾难问题:

主成分分析法PCA,线性判别法LDA

奇异值分解简化数据、拉普拉斯特征映射

Lassio缩减系数法、小波分析法、

2.21.3 聚类和降维有什么区别与联系

​ 聚类用于找寻数据内在的分布结构,既可以作为一个单独的过程,比如异常检测等等。也可作为分类等其他学习任务的前驱过程。聚类是标准的无监督学习。

​ 1)在一些推荐系统中需确定新用户的类型,但定义“用户类型”却可能不太容易,此时往往可先对原有的用户数据进行聚类,根据聚类结果将每个簇定义为一个类,然后再基于这些类训练分类模型,用于判别新用户的类型。

​ 2)而降维则是为了缓解维数灾难的一个重要方法,就是通过某种数学变换将原始高维属性空间转变为一个低维“子空间”。其基于的假设就是,虽然人们平时观测到的数据样本虽然是高维的,但是实际上真正与学习任务相关的是个低维度的分布。从而通过最主要的几个特征维度就可以实现对数据的描述,对于后续的分类很有帮助。比如对于Kaggle(数据分析竞赛平台之一)上的泰坦尼克号生还问题。通过给定一个乘客的许多特征如年龄、姓名、性别、票价等,来判断其是否能在海难中生还。这就需要首先进行特征筛选,从而能够找出主要的特征,让学习到的模型有更好的泛化性。

​ 聚类和降维都可以作为分类等问题的预处理步骤。

​ 但是他们虽然都能实现对数据的约减。但是二者适用的对象不同,聚类针对的是数据点,而降维则是对于数据的特征。另外它们有着很多种实现方法。聚类中常用的有K-means、层次聚类、基于密度的聚类等;降维中常用的则PCA、Isomap、LLE等。

2.21.4 有哪些聚类算法优劣衡量标准

不同聚类算法有不同的优劣和不同的适用条件。可从以下方面进行衡量判断:
1、算法的处理能力:处理大的数据集的能力,即算法复杂度;处理数据噪声的能力;处理任意形状,包括有间隙的嵌套的数据的能力;
2、算法是否需要预设条件:是否需要预先知道聚类个数,是否需要用户给出领域知识;

​ 3、算法的数据输入属性:算法处理的结果与数据输入的顺序是否相关,也就是说算法是否独立于数据输入顺序;算法处理有很多属性数据的能力,也就是对数据维数是否敏感,对数据的类型有无要求。

2.21.5 聚类和分类有什么区别

**聚类(Clustering) **
聚类,简单地说就是把相似的东西分到一组,聚类的时候,我们并不关心某一类是什么,我们需要实现的目标只是把相似的东西聚到一起。一个聚类算法通常只需要知道如何计算相似度就可以开始工作了,因此聚类通常并不需要使用训练数据进行学习,在机器学习中属于无监督学习。

**分类(Classification) **

​ 分类,对于一个分类器,通常需要你告诉它“这个东西被分为某某类”。一般情况下,一个分类器会从它得到的训练集中进行学习,从而具备对未知数据进行分类的能力,在机器学习中属于监督学习。

2.21.6 不同聚类算法特点性能比较

算法名称可伸缩性适合的数据类型高维性异常数据抗干扰性聚类形状算法效率
WAVECLUSTER很高数值型很高较高任意形状很高
ROCK很高混合型很高很高任意形状一般
BIRCH较高数值型较低较低球形很高
CURE较高数值型一般很高任意形状较高
K-PROTOTYPES一般混合型较低较低任意形状一般
DENCLUE较低数值型较高一般任意形状较高
OPTIGRID一般数值型较高一般任意形状一般
CLIQUE较高数值型较高较高任意形状较低
DBSCAN一般数值型较低较高任意形状一般
CLARANS较低数值型较低较高球形较低

2.21.7 四种常用聚类方法之比较

​ 聚类就是按照某个特定标准把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。即聚类后同一类的数据尽可能聚集到一起,不同类数据尽量分离。
​ 主要的聚类算法可以划分为如下几类:划分方法、层次方法、基于密度的方法、基于网格的方法以及基于模型的方法。下面主要对k-means聚类算法、凝聚型层次聚类算法、神经网络聚类算法之SOM,以及模糊聚类的FCM算法通过通用测试数据集进行聚类效果的比较和分析。

2.21.8 k-means聚类算法

k-means是划分方法中较经典的聚类算法之一。由于该算法的效率高,所以在对大规模数据进行聚类时被广泛应用。目前,许多算法均围绕着该算法进行扩展和改进。
k-means算法以k为参数,把n个对象分成k个簇,使簇内具有较高的相似度,而簇间的相似度较低。k-means算法的处理过程如下:首先,随机地 选择k个对象,每个对象初始地代表了一个簇的平均值或中心;对剩余的每个对象,根据其与各簇中心的距离,将它赋给最近的簇;然后重新计算每个簇的平均值。 这个过程不断重复,直到准则函数收敛。通常,采用平方误差准则,其定义如下:
E = ∑ i = 1 k ∑ p ∈ C i ∥ p − m i ∥ 2 E=\sum_{i=1}^{k}\sum_{p\in C_i}\left\|p-m_i\right\|^2 E=i=1kpCipmi2
 这里E是数据中所有对象的平方误差的总和,p是空间中的点, m i m_i mi是簇 C i C_i Ci的平均值[9]。该目标函数使生成的簇尽可能紧凑独立,使用的距离度量是欧几里得距离,当然也可以用其他距离度量。

算法流程
​ 输入:包含n个对象的数据和簇的数目k;
​ 输出:n个对象到k个簇,使平方误差准则最小。
​ 步骤:
  (1) 任意选择k个对象作为初始的簇中心;
  (2) 根据簇中对象的平均值,将每个对象(重新)赋予最类似的簇;
  (3) 更新簇的平均值,即计算每个簇中对象的平均值;
  (4) 重复步骤(2)、(3)直到簇中心不再变化;

2.21.9 层次聚类算法

​ 根据层次分解的顺序是自底向上的还是自上向下的,层次聚类算法分为凝聚的层次聚类算法和分裂的层次聚类算法。
 凝聚型层次聚类的策略是先将每个对象作为一个簇,然后合并这些原子簇为越来越大的簇,直到所有对象都在一个簇中,或者某个终结条件被满足。绝大多数层次聚类属于凝聚型层次聚类,它们只是在簇间相似度的定义上有所不同。

算法流程

注:以采用最小距离的凝聚层次聚类算法为例:

(1) 将每个对象看作一类,计算两两之间的最小距离;
 (2) 将距离最小的两个类合并成一个新类;
 (3) 重新计算新类与所有类之间的距离;
 (4) 重复(2)、(3),直到所有类最后合并成一类。

2.21.10 SOM聚类算法

​ SOM神经网络[11]是由芬兰神经网络专家Kohonen教授提出的,该算法假设在输入对象中存在一些拓扑结构或顺序,可以实现从输入空间(n维)到输出平面(2维)的降维映射,其映射具有拓扑特征保持性质,与实际的大脑处理有很强的理论联系。

​ SOM网络包含输入层和输出层。输入层对应一个高维的输入向量,输出层由一系列组织在2维网格上的有序节点构成,输入节点与输出节点通过权重向量连接。 学习过程中,找到与之距离最短的输出层单元,即获胜单元,对其更新。同时,将邻近区域的权值更新,使输出节点保持输入向量的拓扑特征。

算法流程

​ (1) 网络初始化,对输出层每个节点权重赋初值;
​ (2) 从输入样本中随机选取输入向量并且归一化,找到与输入向量距离最小的权重向量;
​ (3) 定义获胜单元,在获胜单元的邻近区域调整权重使其向输入向量靠拢;
​ (4) 提供新样本、进行训练;
​ (5) 收缩邻域半径、减小学习率、重复,直到小于允许值,输出聚类结果。

2.21.11 FCM聚类算法

​ 1965年美国加州大学柏克莱分校的扎德教授第一次提出了‘集合’的概念。经过十多年的发展,模糊集合理论渐渐被应用到各个实际应用方面。为克服非此即彼的分类缺点,出现了以模糊集合论为数学基础的聚类分析。用模糊数学的方法进行聚类分析,就是模糊聚类分析[12]。
​ FCM算法是一种以隶属度来确定每个数据点属于某个聚类程度的算法。该聚类算法是传统硬聚类算法的一种改进。
​ 设数据集 X = x 1 , x 2 , . . . , x n X={x_1,x_2,...,x_n} X=x1,x2,...,xn,它的模糊 c c c划分可用模糊矩阵 U = [ u i j ] U=[u_{ij}] U=[uij]表示,矩阵 U U U的元素 u i j u_{ij} uij表示第 j ( j = 1 , 2 , . . . , n ) j(j=1,2,...,n) j(j=1,2,...,n)个数据点属于第 i ( i = 1 , 2 , . . . , c ) i(i=1,2,...,c) i(i=1,2,...,c)类的隶属度, u i j u_{ij} uij满足如下条件:
{ ∑ i = 1 c u i j = 1 ∀   j u i j ∈ [ 0 , 1 ] ∀   i , j ∑ j = 1 c u i j > 0 ∀   i \begin{equation} \left\{ \begin{array}{lr} \sum_{i=1}^c u_{ij}=1 \quad\forall~j \\u_{ij}\in[0,1] \quad\forall ~i,j \\\sum_{j=1}^c u_{ij}>0 \quad\forall ~i \end{array} \right. \end{equation} i=1cuij=1 juij[0,1] i,jj=1cuij>0 i
目前被广泛使用的聚类准则是取类内加权误差平方和的极小值。即:
( m i n ) J m ( U , V ) = ∑ j = 1 n ∑ i = 1 c u i j m d i j 2 ( x j , v i ) (min)J_m(U,V)=\sum^n_{j=1}\sum^c_{i=1}u^m_{ij}d^2_{ij}(x_j,v_i) (min)Jm(U,V)=j=1ni=1cuijmdij2(xj,vi)
其中 V V V为聚类中心, m m m为加权指数, d i j ( x j , v i ) = ∣ ∣ v i − x j ∣ ∣ d_{ij}(x_j,v_i)=||v_i-x_j|| dij(xj,vi)=∣∣vixj∣∣

算法流程

(1) 标准化数据矩阵;
 (2) 建立模糊相似矩阵,初始化隶属矩阵;
 (3) 算法开始迭代,直到目标函数收敛到极小值;
 (4) 根据迭代结果,由最后的隶属矩阵确定数据所属的类,显示最后的聚类结果。

2.21.12 四种聚类算法试验

​ 选取专门用于测试分类、聚类算法的国际通用的UCI数据库中的IRIS数据集,IRIS数据集包含150个样本数据,分别取自三种不同 的莺尾属植物setosa、versicolor和virginica的花朵样本,每个数据含有4个属性,即萼片长度、萼片宽度、花瓣长度、花瓣宽度,单位为cm。 在数据集上执行不同的聚类算法,可以得到不同精度的聚类结果。基于前面描述的各算法原理及流程,可初步得如下聚类结果。

聚类方法聚错样本数运行时间/s平均准确率/(%)
K-means170.14600189
层次聚类510.12874466
SOM225.26728386
FCM120.47041792

(1) 聚错样本数:总的聚错的样本数,即各类中聚错的样本数的和;
(2) 运行时间:即聚类整个过程所耗费的时间,单位为s;
(3) 平均准确度:设原数据集有k个类,用 c i c_i ci表示第i类, n i n_i ni c i c_i ci中样本的个数, m i m_i mi为聚类正确的个数,则 m i / n i m_i/n_i mi/ni为 第i类中的精度,则平均精度为: a v g = 1 k ∑ i = 1 k m i n i avg=\frac{1}{k}\sum_{i=1}^{k}\frac{m_{i}}{n_{i}} avg=k1i=1knimi

参考文献

[1] Goodfellow I, Bengio Y, Courville A. Deep learning[M]. MIT press, 2016.
[2] 周志华. 机器学习[M].清华大学出版社, 2016.
[3] Michael A. Nielsen. “Neural Networks and Deep Learning”, Determination Press, 2015.
[4] Suryansh S. Gradient Descent: All You Need to Know, 2018.
[5] 刘建平. 梯度下降小结,EM算法的推导, 2018
[6] 杨小兵.聚类分析中若干关键技术的研究[D]. 杭州:浙江大学, 2005.
[7] XU Rui, Donald Wunsch 1 1. survey of clustering algorithm[J].IEEE.Transactions on Neural Networks, 2005, 16(3):645-67 8.
[8] YI Hong, SAM K. Learning assignment order of instances for the constrained k-means clustering algorithm[J].IEEE Transactions on Systems, Man, and Cybernetics, Part B:Cybernetics,2009,39 (2):568-574.
[9] 贺玲, 吴玲达, 蔡益朝.数据挖掘中的聚类算法综述[J].计算机应用研究, 2007, 24(1):10-13.
[10] 孙吉贵, 刘杰, 赵连宇.聚类算法研究[J].软件学报, 2008, 19(1):48-61.
[11] 孔英会, 苑津莎, 张铁峰等.基于数据流管理技术的配变负荷分类方法研究.中国国际供电会议, CICED2006.
[12] 马晓艳, 唐雁.层次聚类算法研究[J].计算机科学, 2008, 34(7):34-36.
[13] FISHER R A. Iris Plants Database https://www.ics.uci.edu/vmlearn/MLRepository.html, Authorized license.
[14] Quinlan J R. Induction of decision trees[J]. Machine learning, 1986, 1(1): 81-106.
[15] Breiman L. Random forests[J]. Machine learning, 2001, 45(1): 5-32.

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值