本篇文章是在参考西瓜书、PPT课件、网络上相关博客等资料的基础上整理出的机器学习复习笔记,希望能给大家的机器学习复习提供帮助。这篇笔记只是复习的一个参考,大家一定要结合书本、PPT来进行复习,有些公式的推导最好能够自己演算一遍。由于作者水平有限,笔记中难免有些差错,欢迎大家评论留言。
完整版跳转
1. 概述
1.1 学习模型的分类
1.1.1 生成模型
通过数据学习联合概率分布
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
1.1.2 判别模型
直接学习决策函数
f
(
x
⃗
)
f(\vec{x})
f(x)或者条件概率分布
P
(
y
∣
x
⃗
)
P(y|\vec{x})
P(y∣x)。
例:决策树、SVM、线性回归、逻辑回归、kNN
1.2 估计参数的方法
1.2.1 极大似然估计(MLE)
已知训练集
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∣θ)
1.2.2 最大后验估计(MAP)
假设已知训练集
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(θ)
1.2.3 算法
最小二乘法、梯度下降法、共轭梯度法
2. 决策树
决策树是一种基本的分类和回归方法。课程中主要利用决策树对样本进行分类。决策树,顾名思义,有着树形结构,它由结点和有向边组成,其中
- 内部节点表示一个特征或者属性
- 叶子结点表示一种分类
- 有向边代表一种划分规则
优点:可读性强、分类速度快
决策树的学习通常包括三个步骤,分别是特征选择、决策树生成和决策树剪枝。
2.1 生成算法
生成算法可分为以下3步:
- 选择根节点,将所有数据放在根节点;
- 选择一个最优特征,并根据这个特征将训练数据分割成子集;
- 递归执行上一步,直至所有数据子集都基本被正确分类,或者没有合适的特征为止.
递归返回的三种情况:
- 当前结点包含的样本全属于同一类别,无需划分;
- 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分(标记为叶节点,将类别设置为该点所含样本最多的类别,可看做是当前节点的后验分布);
- 当前结点包含的样本集合为空,不能划分(标记为叶节点,类别设置为该节点父节点所含样本数最多的类别).
2.2 特征选择
希望决策树的分支节点所包含的样本尽可能属于同一类别,即节点的“纯度”尽可能高。
切分方案
- 对于类别变量:可以考虑多路切分,一个取值对应一路切分。也可以考虑两路切分,此时将类别分成两个子集,此时需要找到最优切分方案。
- 对于连续变量:可以考虑先离散化(例如聚类等手段),转为类别变量;也可以考虑二值决策(小于V的放在一路,大于等于V的放另一路),不过计算量可能很大。
熵
假设我们要给一个数据集(属性是类别变量)编码。回顾哈夫曼编码,出现频率越多的字符会得到尽量短的编码,在这里亦然。 从信息论的角度,我们给出现概率为
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。
于是我们认为,熵可以衡量一个数据集的信息“纯度”。信息越纯,熵就越低;信息越混杂,熵就越高。
![](https://i-blog.csdnimg.cn/blog_migrate/34dc9df53b1b2ea9438c527e8be327f0.png)
条件熵
- 特定条件熵:是指
X
X
X在给定
Y
=
v
Y=v
Y=v这个条件时的熵
H
(
X
∣
Y
=
v
)
H(X|Y=v)
H(X∣Y=v)
H ( X ∣ Y = v ) = − ∑ i P ( X = i ∣ Y = v ) log 2 P ( X = i ∣ Y = v ) H(X|Y=v)=-\sum_i{P(X=i|Y=v)\log_2{P(X=i|Y=v)}} H(X∣Y=v)=−i∑P(X=i∣Y=v)log2P(X=i∣Y=v) - 条件熵:是指
X
X
X在给定
Y
Y
Y条件下的熵
H
(
X
∣
Y
)
H(X|Y)
H(X∣Y)
H ( X ∣ Y ) = ∑ v ∈ v a r ( Y ) P ( Y = v ) H ( X ∣ Y = v ) H(X|Y)=\sum_{v\in var(Y)}{P(Y=v)H(X|Y=v)} H(X∣Y)=v∈var(Y)∑P(Y=v)H(X∣Y=v) - 互信息:
I ( X ; Y ) = H ( X ) − H ( X ∣ Y ) = H ( Y ) − H ( Y ∣ X ) = H ( X ) + H ( Y ) − H ( X , Y ) I(X;Y)=H(X)-H(X|Y)=H(Y)-H(Y|X)=H(X)+H(Y)-H(X,Y) I(X;Y)=H(X)−H(X∣Y)=H(Y)−H(Y∣X)=H(X)+H(Y)−H(X,Y)
相对熵(KL散度)
相对熵用于描述两个分布之间的差异,假设
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以信息增益为准则来选择划分属性):
- 信息增益大的特征具有更强的分类能力(如果某个特征的信息增益为0,则表示其没有什么分类能力)
- 缺点:倾向于选择具有切分分支多的属性,易导致生成的决策树不具有泛化能力
增益率
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)的值通常也会越大。
特点:
- 本质上是对信息增益乘以加权系数,当特征A取值集合较大时加权系数较小,表示抑制该特征,反之亦成立
- 缺点:对可取值数目较少的属性有所偏好
C4.5算法先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率较高的,即综合考虑信息增益和增益率。
2.3 剪枝算法
Occam’s 剃刀:选择适合训练集合数据的最简单假设
2.3.1 预剪枝
在算法变成一棵完全成熟的树之前停止它,节点的典型停止情况:
- 如果所有实例都属于同一个类,则停止
- 如果所有属性值都相同,则停止
更多的限制条件:
- 如果实例数量少于用户指定的阈值,则停止;
- 如果实例的类分布与可用的特征无关,停止(例如,使用$ χ 2 \chi^2 χ2检验);
- 如果扩展当前节点不能改善混杂度量(例如,基尼系数或信息增益),停止。
特点:
- 不仅降低了过拟合的风险,还显著减少了决策树的训练时间;
- 有些划分虽然当前无法带来泛化性能的提升,甚至可能导致泛化性能暂时下降,但在其基础上进行的后续划分却有可能导致性能显著提高。因此,预剪枝基于“贪心”本质禁止这些分支展开,可能存在欠拟合的风险。
2.3.2 后剪枝
使决策树完整生长,以自底向上的方式修剪决策树的节点,如果修剪后泛化误差有所改善,则用叶节点替换子树,叶节点的类标签由子树中的大多数实例类确定,可以使用MDL (Minimum Description Length)进行后剪枝。
特点:
- 后剪枝决策树通常比预剪枝决策树保留了更多的分支,欠拟合风险较小,且泛化性能往往优于预剪枝决策树;
- 训练时间开销比未剪枝决策树和预剪枝决策树要大得多。
2.4 缺失值处理
给定训练集
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))
- 如果 x ⃗ \vec{x} x在属性 A A A上的取值已知,则正常划分且保持权重 w x ⃗ w_{\vec{x}} wx;
- 如果 x ⃗ \vec{x} x在属性 A A A上的取值缺失,则将该样本同时划入所有子结点,且样本权值在与属性 A v A^v Av对应的子结点中调整为 r ~ v ⋅ w x ⃗ \tilde{r}_v \cdot w_{\vec{x}} r~v⋅wx.
![](https://i-blog.csdnimg.cn/blog_migrate/15aa4c922aeb6549b16b582ce1ba0183.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6f8facb64ebe87aff06f3da41263331e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3d42bee33ad9ad630c54bc859b4dac3a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/65645a2d0fdb245b4e42bd4425cc10f3.png)
3. 曲线拟合(Lab1)
3.1 线性回归和最小二乘法
给定数据集
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∣∣较小的解。
3.2 多项式拟合
本质上等价于线性拟合,只不过线性拟合的输入
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
其余求解步骤和线性回归相似。
3.3 过拟合
我们刚刚的拟合过程,只对数据负责,不对分布负责,亦即不对未来的数据负责。最小二乘法只保证了“对于这些给定的点而言,我拟合出的超平面是最好的”;没有保证对于其他的点,也能与实际情况一致。此时,模型只注重于提升“在当前数据集下的性能”,亦即把训练误差降得很低;但没有考虑泛化能力,从而测试误差会很高。
我们在多项式拟合的过程中观测到,产生过拟合时,
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
- 当惩罚项比重较大时会降低模型复杂度,有可能会出现欠拟合的情况;
- 当惩罚项比重适当时模型复杂度与问题匹配,能较好地拟合数据,并且有一定的泛化能力;
- 而当惩罚项比重较小时,会逐渐退化为原模型,这时有过拟合的风险。
4. 统计学习的建模工具
4.1 高斯分布
一维高斯分布
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−μ)}
4.2 贝叶斯公式
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)
4.3 极大似然估计(MLE)
已知训练集
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∣θ)
![](https://i-blog.csdnimg.cn/blog_migrate/b92258c7ff59f78ae948e6b4e585c763.png)
![](https://i-blog.csdnimg.cn/blog_migrate/791ddd8e83cf54faf07d3650afc9847b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/bb3ffdc6a9dc74e27564f226e7c598b9.png)
过拟合
在伯努利分布(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,我们就会预测硬币正面朝上的概率为零,这显然是不合理的。
解决方案:Smoothing
上式可被修正为
θ
^
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′是伪(虚拟)计数。
4.4 最大后验估计(MAP)
我们抛硬币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(θ)
![](https://i-blog.csdnimg.cn/blog_migrate/934c7ec1914726a930b8efb7521c9b1e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/95f1f47f0a109f780a0ad9c56c5363b2.png)
值得注意的是,当样本数量较少时,MAP会倾向于先验概率;而当样本数量较大时,先验概率起到的作用微乎其微,MAP受似然值主导。
两种参数估计方法的对比和缺点
对比
- MLE中 θ \theta θ是一个未知的常数,需要从数据中进行估计;MAP中 θ \theta θ是一个随机变量,我们假设了它的先验分布
- 如果MAP中
θ
\theta
θ的先验服从均匀分布,则两种估计得到的结果相同
缺点 - MLE:如果数据集太小容易过拟合
- MAP:两个有着不同先验的人将会得到不同的估计
5. 贝叶斯判别
贝叶斯决策论,在分类任务中是在所有相关概率都已知的理想情形下,考虑如何基于这些概率和误判损失来选择最优的类别标记。
5.1 决策面推导
假设我们正在分类一个样本。对于每一个类,我们已知这个类生成这个样本的概率。那么现在想要判断某个样本
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
以二分类为例,如下图所示,两类分布均满足二维高斯分布
![](https://i-blog.csdnimg.cn/blog_migrate/d9dc9d9ddda6aa46028987d5249c0113.png)
假设类别先验(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的线性分类器,亦即分类面是一条直线(二维的情况)。
5.2 贝叶斯误差
首先定义
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
用图例来表示
![](https://i-blog.csdnimg.cn/blog_migrate/61b929d76ad0d48813c1380c0941dce3.png)
贝叶斯分类器是理论上最好的分类器,因为它最小化了分类错误的概率。
如上图所示,贝叶斯分类器选择
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>ϵ。故贝叶斯分类器可以最小化风险的期望,从而使出错的概率最小。
2020年第二题
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
用图例来表示
![](https://i-blog.csdnimg.cn/blog_migrate/99ac3f0b660972649bbd9f971557b9a2.png)
在期望损失最小意义下,决策面
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)
- 当 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 x分为第1类
- 当 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 x分为第0类
如上图所示,我们选择
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,实际上是这一题的特殊情况。
5.3 KNN分类器
kNN的思想如下:对于一个个案,找到它附近的 k k k个个案(邻居),把这些邻居的类别的众数作为自己的类别。
![](https://i-blog.csdnimg.cn/blog_migrate/c8bb43e8721aae29581c402959e5317c.png)
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)
![](https://i-blog.csdnimg.cn/blog_migrate/8aa2dfa073fd8c904e462d3761ee5fb1.png)
其中,
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′)
总结
- kNN不具有显式的学习过程,它直接基于实例对样本进行预测(惰性学习的代表);
- kNN是非参数学习算法,它没有任何参数需要学习( k k k是超参数,不是需要学习的参数);
- 当训练样本数量较大时kNN的精度较高;
- 当数据很大的情况下kNN的计算成本较高;
- 若某一个类的个案特别多,如果 k k k选得稍大了一点,就会导致错误分类(极端情况, k → + ∞ k \to +\infty k→+∞时,则kNN会直接把样本分到具有样本数量最多的类别)。
![](https://i-blog.csdnimg.cn/blog_migrate/9c989f06b5015782e9e53a340782ee80.png)