你觉得朴素贝叶斯朴素吗? 个人觉得,一点也不朴素,如同“平凡出真知”,朴素贝叶斯还是很挺厉害的。如果想要了解朴素贝叶斯,那么需要先了解贝叶斯估计和极大似然估计。
极大似然估计
对于一个数据集T服从概率分布P,但是P中参数未知,针对极大似然估计,就是将未知参数看作一个定值,从而找未知参数能使得数据集T发生的概率最大。
极
大
似
然
估
计
:
假
设
某
个
数
据
集
T
(
x
1
,
x
2
,
.
.
.
,
x
n
)
服
从
正
态
分
布
X
N
(
μ
,
σ
2
)
,
但
是
某
具
体
参
数
θ
未
知
,
如
何
通
过
极
大
似
然
估
计
得
到
θ
^
使
得
随
机
样
本
出
现
的
概
率
最
大
?
求
解
过
程
:
(
1
)
正
态
分
布
下
μ
的
极
大
似
然
估
计
是
:
f
(
x
)
=
1
2
π
σ
e
−
(
x
−
μ
)
2
2
σ
2
(
2
)
损
失
函
数
:
L
(
μ
)
=
∏
i
=
1
n
1
2
π
σ
e
−
(
x
i
−
μ
)
2
2
σ
2
(
3
)
取
对
数
:
ln
L
(
μ
)
=
−
n
l
n
(
2
π
)
1
2
σ
2
∑
i
=
1
n
(
x
i
−
μ
)
2
(
4
)
求
导
:
∂
ln
L
(
μ
)
∂
μ
=
−
1
σ
2
∑
i
=
1
n
(
x
i
−
μ
)
2
(
5
)
令
导
数
为
0
:
∂
ln
L
(
μ
)
∂
μ
=
0
=
>
μ
^
=
1
n
∑
i
=
1
n
x
i
=
x
‾
极大似然估计:\\ 假设某个数据集T(x_1,x_2,...,x_n)服从正态分布X~N(\mu,\sigma^2),但是某具体参数\theta未知,\\ 如何通过极大似然估计得到\hat{\theta}使得随机样本出现的概率最大?\\ 求解过程:(1) 正态分布下\mu的极大似然估计是:\\ f(x)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}}\\ (2)损失函数:L(\mu)=\prod_{i=1}^n\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x_i-\mu)^2}{2\sigma^2}}\\ (3)取对数:\ln L(\mu)=-nln(\sqrt{2\pi})\frac{1}{2\sigma^2}\sum_{i=1}^n(x_i-\mu)^2 \\ (4)求导:\frac{\partial \ln L(\mu)}{\partial \mu}=-\frac{1}{\sigma^2}\sum_{i=1}^n(x_i-\mu)^2 \\ (5)令导数为0:\frac{\partial \ln L(\mu)}{\partial \mu}=0 => \hat{\mu}=\frac{1}{n}\sum_{i=1}^n x_i = \overline{x}
极大似然估计:假设某个数据集T(x1,x2,...,xn)服从正态分布X N(μ,σ2),但是某具体参数θ未知,如何通过极大似然估计得到θ^使得随机样本出现的概率最大?求解过程:(1)正态分布下μ的极大似然估计是:f(x)=2πσ1e−2σ2(x−μ)2(2)损失函数:L(μ)=i=1∏n2πσ1e−2σ2(xi−μ)2(3)取对数:lnL(μ)=−nln(2π)2σ21i=1∑n(xi−μ)2(4)求导:∂μ∂lnL(μ)=−σ21i=1∑n(xi−μ)2(5)令导数为0:∂μ∂lnL(μ)=0=>μ^=n1i=1∑nxi=x
贝叶斯估计
相比较贝叶斯估计,极大似然估计会出现概率为0的情况。
假 设 样 本 D ( x 1 , x 2 . . . x n ) 是 正 态 分 布 N ( μ , σ 2 ) , 其 中 σ 2 已 知 。 假 设 μ 的 先 验 分 布 是 正 态 分 布 N ( 0 , τ 2 ) , 如 果 每 个 样 本 的 概 率 独 立 且 同 步 分 布 , 那 么 贝 叶 斯 估 计 ? ( 1 ) 第 一 步 : 假 设 数 据 集 D 的 全 概 率 为 P ( D ) , 那 么 p ( μ ∣ D ) = P ( D ∣ μ ) P ( μ ) P ( D ) , 其 中 P ( μ ) 是 服 从 N ( 0 , τ 2 ) 分 布 的 先 验 概 率 , 从 而 得 到 L ( μ ) : L ( μ ) = P ( μ ∣ D ) = P ( D ∣ μ ) P ( μ ) P ( D ) = P ( μ ) P ( x 1 ∣ μ ) P ( x 2 ∣ μ ) . . . P ( x n ∣ μ ) ∫ P ( μ , x 1 , x 2 , . . . x n ) d μ , 由 此 看 出 ∫ P ( μ , x 1 , x 2 , . . . x n ) d μ 是 一 个 常 数 , 可 以 记 作 K 。 = K 1 2 π τ e − μ 2 2 τ 2 ∏ i = 1 n 1 2 π σ e − ( x i − μ ) 2 2 σ 2 ( 2 ) 第 二 步 : 取 对 数 。 ln P ( μ ∣ D ) = − μ 2 2 τ 2 K + ∑ i = 1 n ( − ( x i − μ ) 2 2 σ 2 ) ( 3 ) 第 三 步 : 求 导 。 ∂ l n ∂ μ = − μ τ 2 + ∑ i = 1 n ( − ( x i − μ ) σ 2 ) ( 4 ) 第 四 步 : 令 导 数 为 0 。 可 得 到 : μ ^ = ∑ i = 1 n x i n + σ 2 τ 2 由 此 可 以 看 出 , 当 n → ∞ , 贝 叶 斯 估 计 概 率 和 极 大 似 然 估 计 概 率 是 差 不 多 的 , 但 是 如 果 n → 0 , 贝 叶 斯 估 计 不 会 等 于 0 , 相 对 而 言 , 更 加 精 确 些 。 假设样本D(x_1,x_2...x_n)是正态分布N(\mu,\sigma^2),其中\sigma^2已知。\\ 假设\mu的先验分布是正态分布N(0,\tau^2),如果每个样本的概率独立且同步分布,那么贝叶斯估计?\\ (1)第一步:假设数据集D的全概率为P(D),那么p(\mu|D) = \frac{P(D|\mu)P(\mu)}{P(D)},\\ 其中P(\mu)是服从N(0,\tau^2)分布的先验概率,从而得到L(\mu): L(\mu)=P(\mu|D)=\frac{P(D|\mu)P(\mu)}{P(D)}\\ =\frac{P(\mu)P(x_1|\mu)P(x_2|\mu)...P(x_n|\mu)}{\int P(\mu,x_1,x_2,...x_n)d\mu},由此看出\int P(\mu,x_1,x_2,...x_n)d\mu是一个常数,可以记作K。\\ = K\frac{1}{\sqrt{2\pi}\tau}e^{-\frac{\mu^2}{2\tau^2}} \prod_{i=1}^n\frac{1}{\sqrt{2\pi}\sigma} e^{-\frac{(x_i-\mu)^2}{2\sigma^2}} \\ (2) 第二步:取对数。\ln P(\mu|D)=-\frac{\mu^2}{2\tau^2} K + \sum_{i=1}^n(-\frac{(x_i-\mu)^2}{2\sigma^2})\\ (3) 第三步:求导。\frac{\partial ln}{\partial \mu}=-\frac{\mu}{\tau^2} + \sum_{i=1}^n(-\frac{(x_i-\mu)}{\sigma^2})\\ (4)第四步:令导数为0。可得到:\hat{\mu}=\frac{\sum_{i=1}^n x_i}{n+\frac{\sigma^2}{\tau^2}}\\ 由此可以看出,当n \rightarrow \infty,贝叶斯估计概率和极大似然估计概率是差不多的,\\ 但是如果n \rightarrow 0,贝叶斯估计不会等于0,相对而言,更加精确些。 假设样本D(x1,x2...xn)是正态分布N(μ,σ2),其中σ2已知。假设μ的先验分布是正态分布N(0,τ2),如果每个样本的概率独立且同步分布,那么贝叶斯估计?(1)第一步:假设数据集D的全概率为P(D),那么p(μ∣D)=P(D)P(D∣μ)P(μ),其中P(μ)是服从N(0,τ2)分布的先验概率,从而得到L(μ):L(μ)=P(μ∣D)=P(D)P(D∣μ)P(μ)=∫P(μ,x1,x2,...xn)dμP(μ)P(x1∣μ)P(x2∣μ)...P(xn∣μ),由此看出∫P(μ,x1,x2,...xn)dμ是一个常数,可以记作K。=K2πτ1e−2τ2μ2i=1∏n2πσ1e−2σ2(xi−μ)2(2)第二步:取对数。lnP(μ∣D)=−2τ2μ2K+i=1∑n(−2σ2(xi−μ)2)(3)第三步:求导。∂μ∂ln=−τ2μ+i=1∑n(−σ2(xi−μ))(4)第四步:令导数为0。可得到:μ^=n+τ2σ2∑i=1nxi由此可以看出,当n→∞,贝叶斯估计概率和极大似然估计概率是差不多的,但是如果n→0,贝叶斯估计不会等于0,相对而言,更加精确些。
朴素贝叶斯法
朴素贝叶斯(Native Bayes)法是基于贝叶斯定理与特征条件独立假设的分类方法。
朴素贝叶斯实际上学习到的是生成数据机制,因此属于生成模型。
朴素贝叶斯法的基本假设是条件独立性。
朴素贝叶斯模型
设 输 入 空 间 χ ⊆ R n 为 n 维 向 量 的 集 合 , 输 出 空 间 维 类 标 记 集 合 Y = ( c 1 , c 2 , . . c K ) 。 输 入 为 特 征 向 量 x ∈ χ , 输 出 标 记 y ∈ Y , P ( X , Y ) 是 X 和 Y 的 联 合 概 率 分 布 。 训 练 数 据 集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . ( x N , y N ) } 。 朴 素 贝 叶 斯 分 类 时 , 对 给 定 的 输 入 x , 朴 素 贝 叶 斯 分 类 器 模 型 如 下 : y = f ( x ) = a r g m a x P ( Y = c K ) ∏ j P ( X ( j ) = x ( j ) ∣ Y = c K ) ∑ K P ( Y = c K ) ∏ j P ( X ( j ) = x ( j ) ∣ Y = c K ) 设输入空间\chi \subseteq R^n为n维向量的集合,输出空间维类标记集合Y=(c_1,c_2,..c_K)。\\ 输入为特征向量x \in \chi,输出标记y\in Y,P(X,Y)是X和Y的联合概率分布。\\ 训练数据集T=\{(x_1,y_1),(x_2,y_2),...(x_N,y_N)\}。\\ 朴素贝叶斯分类时,对给定的输入x,朴素贝叶斯分类器模型如下:\\ y=f(x)=arg max\frac{P(Y=c_K)\prod_jP(X^{(j)}=x^{(j)}|Y=c_K)}{\sum_K P(Y=c_K)\prod_jP(X^{(j)}=x^{(j)}|Y=c_K)} 设输入空间χ⊆Rn为n维向量的集合,输出空间维类标记集合Y=(c1,c2,..cK)。输入为特征向量x∈χ,输出标记y∈Y,P(X,Y)是X和Y的联合概率分布。训练数据集T={(x1,y1),(x2,y2),...(xN,yN)}。朴素贝叶斯分类时,对给定的输入x,朴素贝叶斯分类器模型如下:y=f(x)=argmax∑KP(Y=cK)∏jP(X(j)=x(j)∣Y=cK)P(Y=cK)∏jP(X(j)=x(j)∣Y=cK)
损失函数
朴素贝叶斯法将实例分到后验概率最大的类中,这损失函数正符合0-1损失函数。根据期望风险最小化准则得到后验概率最大化准则:
f
(
x
)
=
a
r
g
m
a
x
c
K
P
(
c
K
∣
X
=
x
)
f(x)=arg max_{c_K} P(c_K|X=x)
f(x)=argmaxcKP(cK∣X=x)
参数估计就是采用上面刚开始谈到的极大似然估计和贝叶斯估计。
朴素贝叶斯算法
输 入 : 训 练 数 据 集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . ( x N , y N ) } , 其 中 x i = ( x i ( 1 ) , x i ( 2 ) , . . . x i ( n ) ) T , x i ( j ) 表 示 第 i 个 样 本 的 j 个 特 征 , x i ( j ) ∈ { a j 1 , a j 2 . . . a j S j } , a j l 是 第 j 个 特 征 可 能 取 得 第 l 个 值 , j = 1 , 2.. n , l = 1 , 2 , . . S j , y i ∈ { c 1 , c 2 , . . . c K } ; 实 例 x ; 输 出 : 实 例 x 的 分 类 。 ( 1 ) 计 算 先 验 概 率 以 及 每 个 条 件 概 率 P ( Y = c K ) = ∑ i = 1 N I ( y i = c K ) N , k = 1 , 2 , . . . K P ( X ( j ) = a j l ∣ Y = c K ) = ∑ i = 1 N I ( x i ( j ) = a j l , y i = c K ) ∑ i = 1 N I ( y i = c K ) , j = 1 , 2... n ; l = 1 , 2 , . . S j ; k = 1 , 2 , . . . K ( 2 ) 计 算 每 个 标 签 下 的 实 例 的 概 率 P ( Y = c K ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c K ) , k = 1 , 2... K ( 3 ) 确 定 的 实 例 x 的 类 。 y = a r g m a x c K P ( Y = c K ) ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c K ) 输入:训练数据集T=\{(x_1,y_1),(x_2,y_2),...(x_N,y_N)\},其中x_i=(x_i^{(1)},x_i^{(2)},...x_i^{(n)})^T,\\ x_i^{(j)}表示第i个样本的j个特征,x_i^{(j)} \in \{a_{j1},a_{j2}...a_{jS_j}\},\\ a_{jl}是第j个特征可能取得第l个值,j=1,2..n,l=1,2,..S_j,y_i \in \{c_1,c_2,...c_K\};实例x; 输出:实例x的分类。\\ (1)计算先验概率以及每个条件概率\\ P(Y=c_K)=\frac{\sum_{i=1}^N I(y_i=c_K)}{N},k=1,2,...K \\ P(X^{(j)}=a_{jl}|Y=c_K)=\frac{\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_K)}{\sum_{i=1}^NI(y_i=c_K)},j=1,2...n;l=1,2,..S_j;k=1,2,...K \\ (2) 计算每个标签下的实例的概率 \\ P(Y=c_K)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_K),k=1,2...K \\ (3)确定的实例x的类。\\ y=arg max_{c_K} P(Y=c_K)\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_K) 输入:训练数据集T={(x1,y1),(x2,y2),...(xN,yN)},其中xi=(xi(1),xi(2),...xi(n))T,xi(j)表示第i个样本的j个特征,xi(j)∈{aj1,aj2...ajSj},ajl是第j个特征可能取得第l个值,j=1,2..n,l=1,2,..Sj,yi∈{c1,c2,...cK};实例x;输出:实例x的分类。(1)计算先验概率以及每个条件概率P(Y=cK)=N∑i=1NI(yi=cK),k=1,2,...KP(X(j)=ajl∣Y=cK)=∑i=1NI(yi=cK)∑i=1NI(xi(j)=ajl,yi=cK),j=1,2...n;l=1,2,..Sj;k=1,2,...K(2)计算每个标签下的实例的概率P(Y=cK)j=1∏nP(X(j)=x(j)∣Y=cK),k=1,2...K(3)确定的实例x的类。y=argmaxcKP(Y=cK)j=1∏nP(X(j)=x(j)∣Y=cK)
在朴素贝叶斯估计中,条件概率的贝叶斯估计是:
P
λ
(
X
(
j
)
=
a
j
l
∣
Y
=
c
K
)
=
∑
i
=
1
N
I
(
x
i
(
j
)
=
a
j
l
,
y
i
=
c
K
)
+
λ
∑
i
=
1
N
I
(
y
i
=
c
K
)
+
S
j
λ
当
λ
≥
0
,
等
价
于
在
随
机
变
量
上
各
个
取
值
的
频
数
上
赋
予
一
个
正
数
λ
。
当
λ
=
0
,
贝
叶
斯
估
计
等
于
极
大
似
然
估
计
。
常
取
λ
=
1
,
这
时
称
为
拉
普
拉
斯
平
滑
(
L
a
p
l
a
c
e
S
m
o
o
t
h
i
n
g
)
。
此
时
有
:
P
λ
(
X
(
j
)
=
a
j
l
∣
Y
=
c
K
)
>
0
∑
l
=
1
S
j
P
(
X
(
j
)
=
a
j
l
∣
Y
=
c
K
)
=
1
P
λ
(
X
(
j
)
=
a
j
l
∣
Y
=
c
K
)
=
∑
i
=
1
N
I
(
x
i
(
j
)
=
a
j
l
,
y
i
=
c
K
)
+
λ
∑
i
=
1
N
I
(
y
i
=
c
K
)
+
S
j
λ
当
λ
≥
0
,
等
价
于
在
随
机
变
量
上
各
个
取
值
的
频
数
上
赋
予
一
个
正
数
λ
。
当
λ
=
0
,
贝
叶
斯
估
计
等
于
极
大
似
然
估
计
。
常
取
λ
=
1
,
这
时
称
为
拉
普
拉
斯
平
滑
(
L
a
p
l
a
c
e
S
m
o
o
t
h
i
n
g
)
。
此
时
有
:
P
λ
(
X
(
j
)
=
a
j
l
∣
Y
=
c
K
)
>
0
∑
l
=
1
S
j
P
(
X
(
j
)
=
a
j
l
∣
Y
=
c
K
)
=
1
P_{\lambda}(X^{(j)}=a_{jl}|Y=c_K)=\frac{\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_K)+\lambda}{\sum_{i=1}^NI(y_i=c_K)+S_j\lambda} \\ 当\lambda \geq 0,等价于在随机变量上各个取值的频数上赋予一个正数\lambda。\\ 当\lambda=0,贝叶斯估计等于极大似然估计。常取\lambda=1,这时称为拉普拉斯平滑(Laplace Smoothing)。此时有:\\ P_{\lambda}(X^{(j)}=a_{jl}|Y=c_K) > 0 \\ \sum_{l=1}^{S_j} P(X^{(j)}=a_{jl}|Y=c_K) = 1P_{\lambda}(X^{(j)}=a_{jl}|Y=c_K)=\frac{\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_K)+\lambda}{\sum_{i=1}^NI(y_i=c_K)+S_j\lambda} \\ 当\lambda \geq 0,等价于在随机变量上各个取值的频数上赋予一个正数\lambda。\\ 当\lambda=0,贝叶斯估计等于极大似然估计。常取\lambda=1,这时称为拉普拉斯平滑(Laplace Smoothing)。此时有:\\ P_{\lambda}(X^{(j)}=a_{jl}|Y=c_K) > 0 \\ \sum_{l=1}^{S_j} P(X^{(j)}=a_{jl}|Y=c_K) = 1
Pλ(X(j)=ajl∣Y=cK)=∑i=1NI(yi=cK)+Sjλ∑i=1NI(xi(j)=ajl,yi=cK)+λ当λ≥0,等价于在随机变量上各个取值的频数上赋予一个正数λ。当λ=0,贝叶斯估计等于极大似然估计。常取λ=1,这时称为拉普拉斯平滑(LaplaceSmoothing)。此时有:Pλ(X(j)=ajl∣Y=cK)>0l=1∑SjP(X(j)=ajl∣Y=cK)=1Pλ(X(j)=ajl∣Y=cK)=∑i=1NI(yi=cK)+Sjλ∑i=1NI(xi(j)=ajl,yi=cK)+λ当λ≥0,等价于在随机变量上各个取值的频数上赋予一个正数λ。当λ=0,贝叶斯估计等于极大似然估计。常取λ=1,这时称为拉普拉斯平滑(LaplaceSmoothing)。此时有:Pλ(X(j)=ajl∣Y=cK)>0l=1∑SjP(X(j)=ajl∣Y=cK)=1
先验概率的贝叶斯估计是:
P
λ
(
Y
=
c
K
)
=
∑
i
=
1
N
I
(
y
i
=
c
K
)
+
λ
N
+
K
λ
,
k
=
1
,
2
,
3...
K
,
l
=
1
,
2
,
3...
S
j
P_{\lambda}(Y=c_K) = \frac{\sum_{i=1}^N I(y_i=c_K)+\lambda}{N+K\lambda},k=1,2,3...K,l=1,2,3...S_j
Pλ(Y=cK)=N+Kλ∑i=1NI(yi=cK)+λ,k=1,2,3...K,l=1,2,3...Sj
小结
朴素贝叶斯是在条件独立性的基础上的,由于这一假设,模型包含的条件概率的数量大大减少,朴素贝叶斯法的学习与预测大为简化。因此朴素贝叶斯法高效,且易于实现,缺点就是分类的性能不一定很高。