本篇文章是在参考西瓜书、PPT课件、网络上相关博客等资料的基础上整理出的机器学习复习笔记,希望能给大家的机器学习复习提供帮助。这篇笔记只是复习的一个参考,大家一定要结合书本、PPT来进行复习,有些公式的推导最好能够自己演算一遍。由于作者水平有限,笔记中难免有些差错,欢迎大家评论留言。
完整版跳转
通过数据学习联合概率分布 P ( x ⃗ , y ) P(\vec{x},y) P(x,y)然后求出条件概率分布 P ( y ∣ x ⃗ ) P(y|\vec{x}) P(y∣x)作为预测的模型,即通过下式计算条件概率。
P ( y ∣ x ⃗ ) = P ( x ⃗ , y ) P ( x ⃗ ) P(y|\vec{x})=\frac{P(\vec{x},y)}{P(\vec{x})} P(y∣x)=P(x)P(x,y)
例:朴素贝叶斯、GMM
直接学习决策函数 f ( x ⃗ ) f(\vec{x}) f(x)或者条件概率分布 P ( y ∣ x ⃗ ) P(y|\vec{x}) P(y∣x)。
例:决策树、SVM、线性回归、逻辑回归、kNN
已知训练集 D = { ( x ⃗ 1 , y 1 ) , ( x ⃗ 2 , y 2 ) , … , ( x ⃗ m , y m ) } \mathcal{D}=\{(\vec{x}_1,y_1),(\vec{x}_2,y_2),\dots,(\vec{x}_m,y_m)\} D={(x1,y1),(x2,y2),…,(xm,ym)},假设每个样本独立同分布,则出现这种训练集的概率为 P ( D ∣ θ ) = ∏ i = 1 m P ( y ~ i , x ⃗ i ∣ θ ) P(\mathcal{D}|\theta)=\prod_{i=1}^m{P(\tilde{y}_i,\vec{x}_i|\theta)} P(D∣θ)=∏i=1mP(y~i,xi∣θ),我们的目标是找 θ \theta θ使得 P ( D ∣ θ ) P(\mathcal{D}|\theta) P(D∣θ)最大,即
θ ^ = arg max θ P ( D ∣ θ ) \hat{\theta}=\arg \max_{\theta}P(\mathcal{D}|\theta) θ^=argθmaxP(D∣θ)
假设已知训练集 D = { ( x ⃗ 1 , y 1 ) , ( x ⃗ 2 , y 2 ) , … , ( x ⃗ m , y m ) } \mathcal{D}=\{(\vec{x}_1,y_1),(\vec{x}_2,y_2),\dots,(\vec{x}_m,y_m)\} D={(x1,y1),(x2,y2),…,(xm,ym)}和参数 θ \theta θ的先验分布 P ( θ ) P(\theta) P(θ),MAP选择在这种条件下概率最大的 θ \theta θ,即
θ ^ = arg max θ P ( θ ∣ D ) = arg max θ P ( D ∣ θ ) P ( θ ) P ( D ) \hat{\theta}=\arg\max_{\theta}P(\theta|\mathcal{D}) = \arg\max_{\theta}{\frac{P(\mathcal{D}|\theta)P(\theta)}{P\mathcal(D)}} θ^=argθmaxP(θ∣D)=argθmaxP(D)P(D∣θ)P(θ)
最小二乘法、梯度下降法、共轭梯度法
决策树是一种基本的分类和回归方法。课程中主要利用决策树对样本进行分类。决策树,顾名思义,有着树形结构,它由结点和有向边组成,其中
优点:可读性强、分类速度快
决策树的学习通常包括三个步骤,分别是特征选择、决策树生成和决策树剪枝。
生成算法可分为以下3步:
递归返回的三种情况:
希望决策树的分支节点所包含的样本尽可能属于同一类别,即节点的“纯度”尽可能高。
假设我们要给一个数据集(属性是类别变量)编码。回顾哈夫曼编码,出现频率越多的字符会得到尽量短的编码,在这里亦然。 从信息论的角度,我们给出现概率为 p p p的属性,分配 log 2 ( 1 / p ) \log_2(1/p) log2(1/p)的编码长度。最后来计算任意一条数据的期望编码长度:
H ( x ) = − ∑ i P ( X = i ) log 2 P ( X = i ) H(x)=-\sum_i{P(X=i) \log_2{P(X=i)}} H(x)=−i∑P(X=i)log2P(X=i)
我们称这个期望编码长度为这个信源的熵,记作 H ( x ) H(x) H(x). 显然,若信源(这个数据集)只会产生一种属性,则熵为 0;若信源可以等概率地产生两种属性,则熵为 1。
于是我们认为,熵可以衡量一个数据集的信息“纯度”。信息越纯,熵就越低;信息越混杂,熵就越高。
相对熵用于描述两个分布之间的差异,假设 P P P代表真实分布, Q Q Q代表预测分布,那么这两个分布之间就有一个“相似度”,那么就可以描述它们之间的差异的大小,这就是相对熵。计算公式如下。
D K L ( p ∣ ∣ q ) = ∑ i = 1 n p ( x i ) log 2 p ( x i ) q ( x i ) D_{KL}(p||q)=\sum_{i=1}^n{p(x_i)\log_2\frac{p(x_i)}{q(x_i)}} DKL(p∣∣q)=i=1∑np(xi)log2q(xi)p(xi)
显然, D K L ( p ∣ ∣ q ) ≠ D K L ( q ∣ ∣ p ) D_{KL}(p||q) \neq D_{KL}(q||p) DKL(p∣∣q)=DKL(q∣∣p).
在机器学习中,评估一个模型的好坏,只需要计算KL散度即可,而对KL散度公式做一下变形,我们发现,只需要关注交叉熵即可:
D K L ( p ∣ ∣ q ) = ∑ i = 1 n p ( x i ) log 2 p ( x i ) − ∑ i = 1 n p ( x i ) log 2 q ( x i ) = − H ( p ( x ) ) + [ − ∑ i = 1 n p ( x i ) log 2 q ( x i ) ] \begin{aligned} D_{KL}(p||q) &=\sum_{i=1}^n{p(x_i)\log_2 p(x_i)}-\sum_{i=1}^n{p(x_i)\log_2 q(x_i)}\\ &= -H(p(x))+[-\sum_{i=1}^n{p(x_i)\log_2 q(x_i)}] \end{aligned} DKL(p∣∣q)=i=1∑np(xi)log2p(xi)−i=1∑np(xi)log2q(xi)=−H(p(x))+[−i=1∑np(xi)log2q(xi)]
等式的前一部分恰巧就是 p p p的熵,这部分是不会变化的,而等式的后一部分,就是交叉熵
H ( p , q ) = − ∑ i = 1 n p ( x i ) log 2 q ( x i ) H(p,q)=-\sum_{i=1}^n{p(x_i)\log_2 q(x_i)} H(p,q)=−i=1∑np(xi)log2q(xi)
定义信息增益
G a i n = E n t r o p y ( p a r e n t ) − ∑ c h i l d N c h i l d N p a r e n t E n t r o p y ( c h i l d ) Gain=Entropy(parent)-\sum_{child}\frac{N_{child}}{N_{parent}}Entropy(child) Gain=Entropy(parent)−child∑NparentNchildEntropy(child)
信息增益实际上反映了目标类变量与属性A变量在D(样本集)上的互信息,即
G a i n ( D , A ) = H ( D ) − H ( D ∣ A ) Gain(\mathcal{D},A)=H(\mathcal{D})-H(\mathcal{D}|A) Gain(D,A)=H(D)−H(D∣A)
特点(ID3以信息增益为准则来选择划分属性):
G a i n _ r a t i o ( D , A ) = G a i n ( D , A ) I V ( A ) Gain\_ratio(\mathcal{D},A)=\frac{Gain(\mathcal{D},A)}{IV(A)} Gain_ratio(D,A)=IV(A)Gain(D,A)
其中
I V ( A ) = − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ log 2 ∣ D v ∣ ∣ D ∣ IV(A)=-\sum_{v=1}^V{\frac{|\mathcal{D}^v|}{|\mathcal{D}|}}\log_2\frac{|\mathcal{D}^v|}{|\mathcal{D}|} IV(A)=−v=1∑V∣D∣∣Dv∣log2∣D∣∣Dv∣
称为属性 A A A的“固有值”。属性 A A A的可能取值数目越多,则 I V ( A ) IV(A) IV(A)的值通常也会越大。
特点:
C4.5算法先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率较高的,即综合考虑信息增益和增益率。
Occam’s 剃刀:选择适合训练集合数据的最简单假设
在算法变成一棵完全成熟的树之前停止它,节点的典型停止情况:
更多的限制条件:
特点:
使决策树完整生长,以自底向上的方式修剪决策树的节点,如果修剪后泛化误差有所改善,则用叶节点替换子树,叶节点的类标签由子树中的大多数实例类确定,可以使用MDL (Minimum Description Length)进行后剪枝。
特点:
给定训练集 D \mathcal{D} D和属性 A A A,令 D ~ \tilde{\mathcal{D}} D~表示 D \mathcal{D} D中 A A A属性没有缺失值的样本子集, D i ~ \tilde{\mathcal{D}^i} Di~表示 D ~ \tilde{\mathcal{D}} D~中 A A A属性取值为 a i a_i ai的样本子集, D k ~ \tilde{\mathcal{D}_k} Dk~表示 D ~ \tilde{\mathcal{D}} D~中第 k k k类的样本子集。为每个样本赋予一个权重 w x ⃗ w_{\vec{x}} wx,并定义
ρ = ∑ x ⃗ ∈ D ~ w x ⃗ ∑ x ⃗ ∈ D w x ⃗ p ~ k = ∑ x ⃗ ∈ D ~ k w x ⃗ ∑ x ⃗ ∈ D ~ w x ⃗ r ~ v = ∑ x ⃗ ∈ D ~ v w x ⃗ ∑ x ⃗ ∈ D ~ w x ⃗ \rho=\frac{\sum_{\vec{x}\in \tilde{\mathcal{D}}}{w_{\vec{x}}}}{\sum_{\vec{x}\in \mathcal{D}}{w_{\vec{x}}}}\\ \tilde{p}_k=\frac{\sum_{\vec{x}\in \tilde{\mathcal{D}}_k}{w_{\vec{x}}}}{\sum_{\vec{x}\in \tilde{\mathcal{D}}}{w_{\vec{x}}}}\\\tilde{r}_v=\frac{\sum_{\vec{x}\in \tilde{\mathcal{D}}^v}{w_{\vec{x}}}}{\sum_{\vec{x}\in \tilde{\mathcal{D}}}{w_{\vec{x}}}} ρ=∑x∈Dwx∑x∈D~wxp~k=∑x∈D~wx∑x∈D~kwxr~v=∑x∈D~wx∑x∈D~vwx
直观地看, ρ \rho ρ表示无缺失值样本所占的比例, p ~ k \tilde{p}_k p~k表示无缺失值样本中第 k k k类所占的比例, r ~ v \tilde{r}_v r~v则表示无缺失值样本中在属性 A A A上取值为 A v A^v Av的样本所占的比例。
信息增益公式的推广
G a i n ( D , A ) = ρ × G a i n ( D ~ , A ) = ρ × ( E n t ( D ~ ) − ∑ v = 1 V r ~ v E n t ( D ~ v ) ) \begin{aligned} Gain(\mathcal{D},A)&=\rho \times Gain(\tilde{\mathcal{D}},A)\\ & =\rho \times (Ent(\tilde{\mathcal{D}})-\sum_{v=1}^V {\tilde{r}_v}Ent(\tilde{\mathcal{D}}^v)) \end{aligned} Gain(D,A)=ρ×Gain(D~,A)=ρ×(Ent(D~)−v=1∑Vr~vEnt(D~v))
给定数据集 D = { ( x ⃗ 1 , y 1 ) , ( x ⃗ 2 , y 2 ) , … , ( x ⃗ m , y m ) } \mathcal{D}=\{(\vec{x}_1,y_1),(\vec{x}_2,y_2),\dots,(\vec{x}_m,y_m)\} D={(x1,y1),(x2,y2),…,(xm,ym)},其中 x ⃗ i \vec{x}_i xi为 d d d维向量。线性回归模型试图学得
f ( x ⃗ i ) = w T x ⃗ i + b ⋍ y i f(\vec{x}_i)=w^T\vec{x}_i+b\backsimeq y_i f(xi)=wTxi+b⋍yi
为便于讨论,我们把 b b b看做是 w 0 w_0 w0,进而吸收进 w w w向量中。相应的,把数据集 D \mathcal{D} D表示为一个 m × ( d + 1 ) m \times (d+1) m×(d+1)大小的矩阵 X X X,其中每行对应于一个样本,把每行的第一个元素设为1,其余的 d d d个元素对应于样本的 d d d个属性值,即
X = [ 1 x 11 x 12 ⋯ x 1 d 1 x 21 x 22 ⋯ x 2 d ⋮ ⋮ ⋮ ⋱ ⋮ 1 x m 1 x m 2 ⋯ x m d ] X= \begin{bmatrix} 1 & x_{11} & x_{12} & \cdots & x_{1d} \\ 1 & x_{21} & x_{22} & \cdots & x_{2d} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_{m1} & x_{m2} & \cdots & x_{md} \end{bmatrix} X= 11⋮1x11x21⋮xm1x12x22⋮xm2⋯⋯⋱⋯x1dx2d⋮xmd
定义误差函数
E ( w ) = ( y − X w ) T ( y − X w ) E(w)=(y-Xw)^T(y-Xw) E(w)=(y−Xw)T(y−Xw)
利用最小二乘法,我们需要求解 w ∗ w^* w∗使得上式最小,即
w ∗ = arg min w E ( w ) w^*=\arg \min_w E(w) w∗=argwminE(w)
先将 E ( w ) E(w) E(w)展开,得到
E ( w ) = ( y T − w T X T ) ( y − X w ) = y T y − y T X w − w T X T y + w T X T X w = y T y − 2 w T X T y + w T X T X w \begin{aligned} E(w)&=(y^T-w^TX^T)(y-Xw)\\ &=y^Ty-y^TXw-w^TX^Ty+w^TX^TXw\\ &=y^Ty-2w^TX^Ty+w^TX^TXw \end{aligned} E(w)=(yT−wTXT)(y−Xw)=yTy−yTXw−wTXTy+wTXTXw=yTy−2wTXTy+wTXTXw
对 w w w求导得
∂ E ( w ) ∂ w = 2 X T X w − 2 X T y \frac{\partial E(w)}{\partial w}=2X^TXw-2X^Ty ∂w∂E(w)=2XTXw−2XTy
令偏导数等于0,可得
X T X w = X T y X^TXw=X^Ty XTXw=XTy
如果 ( X T X ) − 1 (X^TX)^{-1} (XTX)−1存在,那么
w ∗ = ( X T X ) − 1 X T y w^*=(X^TX)^{-1}X^Ty w∗=(XTX)−1XTy
注: w T A w w^TAw wTAw对 w w w求偏导通常应该等于 A w + A T w Aw+A^Tw Aw+ATw,但由于这里 A = X T X A=X^TX A=XTX是对称阵,故
∂ ( w T X T X w ) ∂ w = 2 X T X w \frac{\partial (w^TX^TXw)}{\partial w}=2X^TXw ∂w∂(wTXTXw)=2XTXw
如果 ( X T X ) − 1 (X^TX)^{-1} (XTX)−1不存在,那么 X T X w = X T y X^TXw=X^Ty XTXw=XTy的解不唯一,选择哪一个解作为输出,将由学习算法的归纳偏好决定,常见的做法是引入正则化项,即倾向于选择 ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣较小的解。
本质上等价于线性拟合,只不过线性拟合的输入 X X X变为
X = [ 1 x 1 x 1 2 ⋯ x 1 m 1 x 2 x 2 2 ⋯ x 2 m ⋮ ⋮ ⋮ ⋱ ⋮ 1 x N x N 2 ⋯ x N m ] X= \begin{bmatrix} 1 & x_1 & x_1^2 & \cdots & x_1^m \\ 1 & x_2 & x_2^2 & \cdots & x_2^m \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_N & x_N^2 & \cdots & x_N^m \end{bmatrix} X= 11⋮1x1x2⋮xNx12x22⋮xN2⋯⋯⋱⋯x1mx2m⋮xNm
其余求解步骤和线性回归相似。
我们刚刚的拟合过程,只对数据负责,不对分布负责,亦即不对未来的数据负责。最小二乘法只保证了“对于这些给定的点而言,我拟合出的超平面是最好的”;没有保证对于其他的点,也能与实际情况一致。此时,模型只注重于提升“在当前数据集下的性能”,亦即把训练误差降得很低;但没有考虑泛化能力,从而测试误差会很高。
我们在多项式拟合的过程中观测到,产生过拟合时, w w w的各个参数往往具有大的绝对值。于是我们考虑能不能在训练误差较小的同时,让 w w w尽可能小。办法就是往误差函数里面加惩罚项(亦称正则项): w w w的参数越大,惩罚项越大,会增加误差。显然,当误差最小时,应该训练误差很小、惩罚项也很小。于是误差式(在最小二乘误差的基础上)改为
E ~ ( w ) = E ( w ) + λ 2 ∣ ∣ w ∣ ∣ 2 \tilde{E}(w) = E(w)+\frac {\lambda}2||w||^2 E~(w)=E(w)+2λ∣∣w∣∣2
一维高斯分布
p ( x ) = 1 2 π σ exp { − ( x − μ ) 2 2 σ 2 } p(x)=\frac{1}{\sqrt{2\pi}\sigma}\exp\{-\frac{(x-\mu)^2}{2\sigma^2}\} p(x)=2πσ1exp{−2σ2(x−μ)2}
多维高斯分布
p ( x ) = 1 ( 2 π ) k ∣ Σ ∣ exp { − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) } p(x)=\frac{1}{\sqrt{(2\pi)^k|\Sigma|}}\exp\{-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)\} p(x)=(2π)k∣Σ∣1exp{−21(x−μ)TΣ−1(x−μ)}
P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ) P(A|B)=\frac{P(B|A)P(A)}{P(B)} P(A∣B)=P(B)P(B∣A)P(A)
更一般的形式
P ( Y = y ∣ X ) = P ( X ∣ Y = y ) P ( Y = y ) ∑ y P ( X ∣ Y = y ) P ( Y = y ) P(Y=y|X)=\frac{P(X|Y=y)P(Y=y)}{\sum_yP(X|Y=y)P(Y=y)} P(Y=y∣X)=∑yP(X∣Y=y)P(Y=y)P(X∣Y=y)P(Y=y)
已知训练集 D = { ( x ⃗ 1 , y 1 ) , ( x ⃗ 2 , y 2 ) , … , ( x ⃗ m , y m ) } \mathcal{D}=\{(\vec{x}_1,y_1),(\vec{x}_2,y_2),\dots,(\vec{x}_m,y_m)\} D={(x1,y1),(x2,y2),…,(xm,ym)},假设每个样本独立同分布,则出现这种训练集的概率为 P ( D ∣ θ ) = ∏ i = 1 m P ( y ~ i , x ⃗ i ∣ θ ) P(\mathcal{D}|\theta)=\prod_{i=1}^m{P(\tilde{y}_i,\vec{x}_i|\theta)} P(D∣θ)=∏i=1mP(y~i,xi∣θ),我们的目标是找 θ \theta θ使得 P ( D ∣ θ ) P(\mathcal{D}|\theta) P(D∣θ)最大,即
θ ^ = arg max θ P ( D ∣ θ ) \hat{\theta}=\arg \max_{\theta}P(\mathcal{D}|\theta) θ^=argθmaxP(D∣θ)
在伯努利分布(Example 1)中,我们有
θ ^ h e a d = n h e a d n h e a d + n t a i l \hat{\theta}^{head}=\frac{n^{head}}{n^{head}+n^{tail}} θ^head=nhead+ntailnhead
如果在训练集中,由于样本数量较少导致 n h e a d = 0 n^{head}=0 nhead=0,那么就会有 θ ^ h e a d = 0 \hat{\theta}^{head}=0 θ^head=0,我们就会预测硬币正面朝上的概率为零,这显然是不合理的。
上式可被修正为
θ ^ h e a d = n h e a d + n ′ n h e a d + n t a i l + n ′ \hat{\theta}^{head}=\frac{n^{head}+n'}{n^{head}+n^{tail}+n'} θ^head=nhead+ntail+n′nhead+n′
其中 n ′ n' n′是伪(虚拟)计数。
我们抛硬币10次,其中8次朝上,按照MLE的思路,这个硬币抛出正面朝上的概率就是0.8,然而实际生活中,我们不太会据此判断抛这个硬币八成正面朝上。这是因为我们见过的硬币都是比较均匀的,我们有“硬币一般是均匀的”这一个先验知识。
MLE的思想中,实际参数 θ \theta θ是一个定值,我们需要通过观测,来直接估计这个值,没有利用任何先验知识。而贝叶斯思想中, θ \theta θ是一个随机变量,不同的取值概率是不一样的,具体的概率分布是由我们依据经验来估计。比如我们可以估计,硬币“正面朝上”的概率服从以0.5为均值的正态分布。
最大后验方法(MAP)不是尝试最大化 P ( D ∣ θ ) P(\mathcal{D}|\theta) P(D∣θ),而是尝试最大化 P ( θ ∣ D ) P(\theta|\mathcal{D}) P(θ∣D). 也就是说,MLE是对于每一个 θ \theta θ,比较参数 θ \theta θ生成这个数据集的概率,是在 θ \theta θ指定的情况下求生成数据集 D \mathcal{D} D的概率;MAP是考虑在数据集已知的情况下, θ \theta θ最有可能的取值,是在数据集 D \mathcal{D} D给定的情况下,求 Θ = θ \Theta=\theta Θ=θ的概率。
假设已知训练集为 D \mathcal{D} D,参数 θ \theta θ的先验分布 P ( θ ) P(\theta) P(θ),MAP选择在这种条件下概率最大的 θ \theta θ,即
θ ^ = arg max θ P ( θ ∣ D ) = arg max θ P ( D ∣ θ ) P ( θ ) P ( D ) \hat{\theta}=\arg\max_{\theta}P(\theta|\mathcal{D}) = \arg\max_{\theta}{\frac{P(\mathcal{D}|\theta)P(\theta)}{P\mathcal(D)}} θ^=argθmaxP(θ∣D)=argθmaxP(D)P(D∣θ)P(θ)
另外,我们注意到
P ( θ ∣ D ) = P ( D ∣ θ ) P ( θ ) P ( D ) ∝ P ( D ∣ θ ) P ( θ ) P(\theta|\mathcal{D}) = {\frac{P(\mathcal{D}|\theta)P(\theta)}{P\mathcal(D)}}\propto P(\mathcal{D}|\theta)P(\theta) P(θ∣D)=P(D)P(D∣θ)P(θ)∝P(D∣θ)P(θ)
因此最后的优化的式子变为
θ ^ = arg max θ P ( D ∣ θ ) P ( θ ) \hat{\theta}= \arg\max_{\theta}{P(\mathcal{D}|\theta)P(\theta)} θ^=argθmaxP(D∣θ)P(θ)
值得注意的是,当样本数量较少时,MAP会倾向于先验概率;而当样本数量较大时,先验概率起到的作用微乎其微,MAP受似然值主导。
对比
贝叶斯决策论,在分类任务中是在所有相关概率都已知的理想情形下,考虑如何基于这些概率和误判损失来选择最优的类别标记。
假设我们正在分类一个样本。对于每一个类,我们已知这个类生成这个样本的概率。那么现在想要判断某个样本 x x x出自哪个类别,只需要知道 P ( Y = i ∣ X = x ) P(Y=i|X=x) P(Y=i∣X=x),亦即
P ( Y = i ∣ x ) = P ( x ∣ Y = i ) P ( Y = i ) P ( x ) = π i p i ( x ) ∑ k π k p k ( x ) = q i ( x ) P(Y=i|x)=\frac{P(x|Y=i)P(Y=i)}{P(x)}=\frac{\pi_ip_i(x)}{\sum_k\pi_kp_k(x)}=q_i(x) P(Y=i∣x)=P(x)P(x∣Y=i)P(Y=i)=∑kπkpk(x)πipi(x)=qi(x)
其中 p i ( x ) = P ( x ∣ Y = i ) p_i(x)=P(x|Y=i) pi(x)=P(x∣Y=i), p i ( x ) p_i(x) pi(x)称为似然函数。
在执行判别时,分母显然是个定值,我们只需要判断分子的大小。也就是说,若 π a p a ( x ) > π b p b ( x ) \pi_ap_a(x)>\pi_bp_b(x) πapa(x)>πbpb(x),我们就判断 a a a类胜出。写成另一种形式,即
l a b = p a ( x ) p b ( x ) > π b π a l_{ab}=\frac{p_a(x)}{p_b(x)}>\frac{\pi_b}{\pi_a} lab=pb(x)pa(x)>πaπb
上式中 l a b l_{ab} lab称为似然比, π b π a = θ b a \frac{\pi_b}{\pi_a}=\theta_{ba} πaπb=θba称为判决阈值。 这种判别方式就是贝叶斯判别。
与之等价地,实践上可以两边取对数,再比较。决策函数是:
h ( X ) = − ln p 1 ( X ) + ln p 2 ( X ) > ln π 1 π 2 h(X)=-\ln p_1(X)+\ln p_2(X)>\ln \frac{\pi_1}{\pi_2} h(X)=−lnp1(X)+lnp2(X)>lnπ2π1
以二分类为例,如下图所示,两类分布均满足二维高斯分布
假设类别先验(class prior)如下
P ( Y = 1 ) = θ P ( Y = − 1 ) = 1 − θ P(Y=1)=\theta\\P(Y=-1)=1-\theta P(Y=1)=θP(Y=−1)=1−θ
当每个类别均是高斯分布时,我们可以得到一维决策面(decision boundary)
P ( Y = 1 ∣ X ) = P ( X ∣ Y = 1 ) P ( Y = 1 ) P ( X ) = θ 1 ( 2 π ) n 2 ∣ Σ 1 ∣ 1 2 exp { − 1 2 ( X − μ 1 ) T Σ 1 − 1 ( X − μ 1 ) } P ( X ) P(Y=1|X)=\frac{P(X|Y=1)P(Y=1)}{P(X)}=\frac{\theta \frac{1}{(2\pi)^{\frac{n}{2}}|\Sigma_1|^{\frac1{2}}}\exp\{-\frac1{2}(X-\mu_1)^T\Sigma_1^{-1}(X-\mu_1)\}}{P(X)} P(Y=1∣X)=P(X)P(X∣Y=1)P(Y=1)=P(X)θ(2π)2n∣Σ1∣211exp{−21(X−μ1)TΣ1−1(X−μ1)} P ( Y = − 1 ∣ X ) = P ( X ∣ Y = − 1 ) P ( Y = − 1 ) P ( X ) = ( 1 − θ ) 1 ( 2 π ) n 2 ∣ Σ 2 ∣ 1 2 exp { − 1 2 ( X − μ 2 ) T Σ 2 − 1 ( X − μ 2 ) } P ( X ) P(Y=-1|X)=\frac{P(X|Y=-1)P(Y=-1)}{P(X)}=\frac{(1-\theta) \frac{1}{(2\pi)^{\frac{n}{2}}|\Sigma_2|^{\frac1{2}}}\exp\{-\frac1{2}(X-\mu_2)^T\Sigma_2^{-1}(X-\mu_2)\}}{P(X)} P(Y=−1∣X)=P(X)P(X∣Y=−1)P(Y=−1)=P(X)(1−θ)(2π)2n∣Σ2∣211exp{−21(X−μ2)TΣ2−1(X−μ2)}
令 P ( Y = 1 ∣ X ) / P ( Y = − 1 ∣ X ) = 1 P(Y=1|X)/P(Y=-1|X)=1 P(Y=1∣X)/P(Y=−1∣X)=1有(决策面)
1 = θ 1 − θ Σ 2 Σ 1 exp { 1 2 ( X − μ 2 ) T Σ 2 − 1 ( X − μ 2 ) − 1 2 ( X − μ 1 ) T Σ 1 − 1 ( X − μ 1 ) } = θ 1 − θ Σ 2 Σ 1 exp { 1 2 ( X T − μ 2 T ) Σ 2 − 1 ( X − μ 2 ) − 1 2 ( X T − μ 1 T ) Σ 1 − 1 ( X − μ 1 ) } \begin{aligned} 1&=\frac{\theta}{1-\theta}\sqrt{\frac{\Sigma_2}{\Sigma_1}}\exp\{\frac1{2}(X-\mu_2)^T\Sigma_2^{-1}(X-\mu_2)-\frac1{2}(X-\mu_1)^T\Sigma_1^{-1}(X-\mu_1)\}\\ &=\frac{\theta}{1-\theta}\sqrt{\frac{\Sigma_2}{\Sigma_1}}\exp\{\frac1{2}(X^T-\mu_2^T)\Sigma_2^{-1}(X-\mu_2)-\frac1{2}(X^T-\mu_1^T)\Sigma_1^{-1}(X-\mu_1)\} \end{aligned} 1=1−θθΣ1Σ2exp{21(X−μ2)TΣ2−1(X−μ2)−21(X−μ1)TΣ1−1(X−μ1)}=1−θθΣ1Σ2exp{21(XT−μ2T)Σ2−1(X−μ2)−21(XT−μ1T)Σ1−1(X−μ1)}
两边取对数得
0 = ln θ 1 − θ + ln Σ 2 Σ 1 + 1 2 [ ( X T − μ 2 T ) Σ 2 − 1 ( X − μ 2 ) − ( X T − μ 1 T ) Σ 1 − 1 ( X − μ 1 ) ] = ln θ 1 − θ + ln Σ 2 Σ 1 + 1 2 [ ( X T Σ 2 − 1 X − X T Σ 2 − 1 μ 2 − μ 2 T Σ 2 − 1 X + μ 2 T Σ 2 − 1 μ 2 ) − ( X T Σ 1 − 1 X − X T Σ 1 − 1 μ 1 − μ 1 T Σ 1 − 1 X + μ 1 T Σ 1 − 1 μ 1 ) ] \begin{aligned} 0&=\ln\frac{\theta}{1-\theta} + \ln \sqrt{\frac{\Sigma_2}{\Sigma_1}} + \frac1{2}[(X^T-\mu_2^T)\Sigma_2^{-1}(X-\mu_2)-(X^T-\mu_1^T)\Sigma_1^{-1}(X-\mu_1)]\\ &=\ln\frac{\theta}{1-\theta} + \ln \sqrt{\frac{\Sigma_2}{\Sigma_1}} + \frac1{2}[(X^T\Sigma_2^{-1}X-X^T\Sigma_2^{-1}\mu_2-\mu_2^T\Sigma_2^{-1}X+\mu_2^T\Sigma_2^{-1}\mu_2)\\&-(X^T\Sigma_1^{-1}X-X^T\Sigma_1^{-1}\mu_1-\mu_1^T\Sigma_1^{-1}X+\mu_1^T\Sigma_1^{-1}\mu_1)] \end{aligned} 0=ln1−θθ+lnΣ1Σ2+21[(XT−μ2T)Σ2−1(X−μ2)−(XT−μ1T)Σ1−1(X−μ1)]=ln1−θθ+lnΣ1Σ2+21[(XTΣ2−1X−XTΣ2−1μ2−μ2TΣ2−1X+μ2TΣ2−1μ2)−(XTΣ1−1X−XTΣ1−1μ1−μ1TΣ1−1X+μ1TΣ1−1μ1)]
若 Σ 1 = Σ 2 \Sigma_1=\Sigma_2 Σ1=Σ2,则
0 = ln θ 1 − θ + 1 2 [ − 2 X T Σ − 1 μ 2 + μ 2 T Σ 2 − 1 μ 2 + 2 X T Σ − 1 μ 1 − μ 1 T Σ 1 − 1 μ 1 ] = ln θ 1 − θ + X T ( Σ − 1 μ 1 − Σ − 1 μ 2 ) + 1 2 ( μ 2 T Σ − 1 μ 2 − μ 1 T Σ − 1 μ 1 ) \begin{aligned} 0&=\ln\frac{\theta}{1-\theta} + \frac1{2}[-2X^T\Sigma^{-1}\mu_2+\mu_2^T\Sigma_2^{-1}\mu_2+2X^T\Sigma^{-1}\mu_1-\mu_1^T\Sigma_1^{-1}\mu_1]\\ &=\ln\frac{\theta}{1-\theta} +X^T(\Sigma^{-1}\mu_1-\Sigma^{-1}\mu_2)+\frac12(\mu_2^T\Sigma^{-1}\mu_2-\mu_1^T\Sigma^{-1}\mu_1) \end{aligned} 0=ln1−θθ+21[−2XTΣ−1μ2+μ2TΣ2−1μ2+2XTΣ−1μ1−μ1TΣ1−1μ1]=ln1−θθ+XT(Σ−1μ1−Σ−1μ2)+21(μ2TΣ−1μ2−μ1TΣ−1μ1)
由此得到了一个关于 X X X的线性分类器,亦即分类面是一条直线(二维的情况)。
首先定义
p 1 ( X ) = P ( X ∣ Y = 1 ) , p 2 ( X ) = P ( X ∣ Y = − 1 ) q 1 ( X ) = P ( Y = 1 ∣ X ) , q 2 ( X ) = P ( Y = − 1 ∣ X ) θ 1 = θ , θ 2 = 1 − θ p_1(X)=P(X|Y=1),p_2(X)=P(X|Y=-1)\\ q_1(X)=P(Y=1|X),q_2(X)=P(Y=-1|X)\\ \theta_1=\theta,\theta_2=1-\theta p1(X)=P(X∣Y=1),p2(X)=P(X∣Y=−1)q1(X)=P(Y=1∣X),q2(X)=P(Y=−1∣X)θ1=θ,θ2=1−θ
风险
r ( X ) = min [ q 1 ( X ) , q 2 ( X ) ] r(X)=\min[q_1(X),q_2(X)] r(X)=min[q1(X),q2(X)]
则贝叶斯误差(风险的期望)
ϵ = E ( r ( x ) ) = ∫ r ( x ) p ( x ) d x = ∫ min [ q 1 ( x ) , q 2 ( x ) ] p ( x ) d x = ∫ min [ θ 1 p 1 ( x ) p ( x ) , θ 2 p 2 ( x ) p ( x ) ] p ( x ) d x = ∫ min [ θ 1 p 1 ( x ) , θ 2 p 2 ( x ) ] d x = θ ∫ L 2 p 1 ( x ) d x + ( 1 − θ ) ∫ L 1 p 2 ( x ) d x \begin{aligned} \epsilon&=E(r(x))=\int r(x)p(x)dx\\ &=\int \min[q_1(x),q_2(x)]p(x)dx\\ &=\int \min[\frac{\theta_1p_1(x)}{p(x)},\frac{\theta_2p_2(x)}{p(x)}]p(x)dx\\ &=\int \min[\theta_1p_1(x),\theta_2p_2(x)]dx\\ &=\theta\int_{L_2}p_1(x)dx+(1-\theta)\int_{L_1}p_2(x)dx \end{aligned} ϵ=E(r(x))=∫r(x)p(x)dx=∫min[q1(x),q2(x)]p(x)dx=∫min[p(x)θ1p1(x),p(x)θ2p2(x)]p(x)dx=∫min[θ1p1(x),θ2p2(x)]dx=θ∫L2p1(x)dx+(1−θ)∫L1p2(x)dx
用图例来表示
贝叶斯分类器是理论上最好的分类器,因为它最小化了分类错误的概率。
如上图所示,贝叶斯分类器选择 x = x 0 x=x_0 x=x0作为决策面,这时风险的期望为 ϵ = S A + S B + S C \epsilon=S_A+S_B+S_C ϵ=SA+SB+SC;而如果选择其他决策面(例如 x = x ^ x=\hat x x=x^),则 ϵ ′ = S A + S B + S C + S D > ϵ \epsilon'=S_A+S_B+S_C+S_D>\epsilon ϵ′=SA+SB+SC+SD>ϵ。故贝叶斯分类器可以最小化风险的期望,从而使出错的概率最小。
Y Y Y为类别(两类, Y = 0 Y=0 Y=0和 Y = 1 Y=1 Y=1)随机变量,将真实类为 1 1 1的样本判断为类 0 0 0造成的损失为 a a a,反之为 b b b,如下表所示。那么期望损失最小意义下的分类准则?并用图例说明。
Y | 0 | 1 |
---|---|---|
0 | 0 | a |
1 | b | 0 |
首先定义
p 0 ( X ) = P ( X ∣ Y = 0 ) , p 1 ( X ) = P ( X ∣ Y = 1 ) q 0 ( X ) = P ( Y = 0 ∣ X ) , q 1 ( X ) = P ( Y = 1 ∣ X ) θ 0 = θ , θ 1 = 1 − θ p_0(X)=P(X|Y=0),p_1(X)=P(X|Y=1)\\ q_0(X)=P(Y=0|X),q_1(X)=P(Y=1|X)\\ \theta_0=\theta,\theta_1=1-\theta p0(X)=P(X∣Y=0),p1(X)=P(X∣Y=1)q0(X)=P(Y=0∣X),q1(X)=P(Y=1∣X)θ0=θ,θ1=1−θ
根据题意,对风险做出定义
r ( X ∣ Y = 0 ) = a P ( Y = 1 ∣ X ) r ( X ∣ Y = 1 ) = b P ( Y = 0 ∣ X ) \begin{aligned} r(X|Y=0)&=aP(Y=1|X)\\ r(X|Y=1)&=bP(Y=0|X)\\ \end{aligned} r(X∣Y=0)r(X∣Y=1)=aP(Y=1∣X)=bP(Y=0∣X)
如果希望风险尽可能小,那么对于每个 X X X,我们都应该让它的风险尽量小,即选择 r ( X ∣ Y = 0 ) r(X|Y=0) r(X∣Y=0)和 r ( X ∣ Y = 1 ) r(X|Y=1) r(X∣Y=1)中的较小值。所以,在期望损失最小意义下,
r ( X ) = min { a P ( Y = 1 ∣ X ) , b P ( Y = 0 ∣ X ) } = min { a q 1 ( X ) , b q 0 ( X ) } \begin{aligned} r(X)&=\min\{aP(Y=1|X),bP(Y=0|X)\}\\ &=\min\{aq_1(X),bq_0(X)\} \end{aligned} r(X)=min{aP(Y=1∣X),bP(Y=0∣X)}=min{aq1(X),bq0(X)}
此时风险的期望
ϵ = E ( r ( x ) ) = ∫ r ( x ) p ( x ) d x = ∫ min [ a q 1 ( x ) , b q 0 ( x ) ] p ( x ) d x = ∫ min [ a θ 1 p 1 ( x ) p ( x ) , b θ 0 p 0 ( x ) p ( x ) ] p ( x ) d x = ∫ min [ a θ 1 p 1 ( x ) , b θ 0 p 0 ( x ) ] d x = a ( 1 − θ ) ∫ L 0 p 1 ( x ) d x + b θ ∫ L 1 p 0 ( x ) d x \begin{aligned} \epsilon&=E(r(x))=\int r(x)p(x)dx\\ &=\int \min[aq_1(x),bq_0(x)]p(x)dx\\ &=\int \min[\frac{a\theta_1p_1(x)}{p(x)},\frac{b\theta_0p_0(x)}{p(x)}]p(x)dx\\ &=\int \min[a\theta_1p_1(x),b\theta_0p_0(x)]dx\\ &=a(1-\theta)\int_{L_0}p_1(x)dx+b\theta\int_{L_1}p_0(x)dx \end{aligned} ϵ=E(r(x))=∫r(x)p(x)dx=∫min[aq1(x),bq0(x)]p(x)dx=∫min[p(x)aθ1p1(x),p(x)bθ0p0(x)]p(x)dx=∫min[aθ1p1(x),bθ0p0(x)]dx=a(1−θ)∫L0p1(x)dx+bθ∫L1p0(x)dx
用图例来表示
在期望损失最小意义下,决策面 x = x 0 x=x_0 x=x0满足
a θ 1 p 1 ( x 0 ) = b θ 0 p 0 ( x 0 ) a\theta_1p_1(x_0)=b\theta_0p_0(x_0) aθ1p1(x0)=bθ0p0(x0)
如上图所示,我们选择 x = x 0 x=x_0 x=x0作为决策面,这时风险的期望为 ϵ = S A + S B + S C \epsilon=S_A+S_B+S_C ϵ=SA+SB+SC;而如果选择其他决策面(例如 x = x ^ x=\hat x x=x^),则 ϵ ′ = S A + S B + S C + S D > ϵ \epsilon'=S_A+S_B+S_C+S_D>\epsilon ϵ′=SA+SB+SC+SD>ϵ。故我们的分类器可以最小化风险的期望,从而使出错的概率最小。
注:在贝叶斯判别中, a = b = 1 a=b=1 a=b=1,实际上是这一题的特殊情况。
kNN的思想如下:对于一个个案,找到它附近的 k k k个个案(邻居),把这些邻居的类别的众数作为自己的类别。
kNN是比较接近于最优解的。有证据证明,渐近情况下,1-临近的分类器的误差小于2倍贝叶斯误差,不过这毕竟是理论结果。另外,若贝叶斯分类器误差为0,渐进地,k-临近的误差也会为0。
基本形式如下
p ^ ( X ) = 1 N k ( X ) V \hat p(X)=\frac1N\frac{k(X)}V p^(X)=N1Vk(X)
其中, k k k为落在 X X X临近区域 R R R的数据点数量, V V V为区域 R R R的体积, N N N为样本总数。
对于kNN而言,我们对上式稍作修改,得到新的密度估计
p ^ ( X ) = 1 N k − 1 V ( X ) \hat p(X)=\frac1N\frac{k-1}{V(X)} p^(X)=N1V(X)k−1
基于这个估计,可以得到贝叶斯判别的决策函数为
h ( X ) = − ln p 1 ( X ) p 2 ( X ) = − ln ( k 1 − 1 ) N 2 V 2 ( X ) ( k 2 − 1 ) N 1 V 1 ( X ) > ln π 1 π 2 h(X)=-\ln \frac{p_1(X)}{p_2(X)} = -\ln \frac{(k_1-1)N_2V_2(X)}{(k_2-1)N_1V_1(X)} > \ln \frac{\pi_1}{\pi_2} h(X)=−lnp2(X)p1(X)=−ln(k2−1)N1V1(X)(k1−1)N2V2(X)>lnπ2π1
对于Voting KNN分类器而言, k 1 + k 2 = k k_1+k_2=k k1+k2=k, V 1 = V 2 V_1=V_2 V1=V2, N 1 = N 2 N_1=N_2 N1=N2。
kNN是基于实例的学习。需要确定一个距离函数,需要确定超参数 k k k,然后kNN会根据手上已有的实例来进行分类。常用的距离函数有欧氏距离(L2范数)、曼哈顿距离(L1范数)、马氏距离等。
马氏距离的计算公式如下
D ( x , x ′ ) = ∑ i σ i 2 ( x i − x i ′ ) 2 ⇔ D ( x , x ′ ) = ( x − x ′ ) T Σ ( x − x ′ ) D(x,x^′)=\sqrt{\sum_iσ_i^2(x_i−x_i^′)^2} ⇔D(x,x^′)=\sqrt{(x−x^′)^TΣ(x−x^′)} D(x,x′)=i∑σi2(xi−xi′)2⇔D(x,x′)=(x−x′)TΣ(x−x′)
哈工大机器学习复习笔记(一)
哈工大机器学习复习笔记(二)
哈工大机器学习复习笔记(三)
哈工大机器学习复习笔记(四)