sklearn.naive_bayes中几种朴素贝叶斯分类器(Python实现朴素贝叶斯分类器)
朴素贝叶斯分类器
一 、贝叶斯分类器是什么?
贝叶斯分类器是以贝叶斯决策论为基础的一类分类器 。和频率决策论不同 ,贝叶斯决策论使用后验概率来计算将某个数据data分类为某一类c的风险概率 。对分类任务来说 ,在所有相关概率都已知的理想情况下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。
贝叶斯判定准则
假设对于数据集D ,有N种可能的类别标记 ,即
Y
=
{
c
1
,
c
2
.
.
.
c
n
,
}
Y=\{c_{1},c_{2}...c_{n},\}
Y={c1,c2...cn,},λ
i
j
\lambda_{ij}
λij是将一个真实标记为c
j
c_{j}
cj的样本误分类为c
i
c_{i}
ci的损失 ,基于后验概率P
(
c
i
∣
x
)
P(c_{i}|x)
P(ci∣x)可获得将样本x分类为c
i
c_{i}
ci所产生的期望损失 ,即在样本x上的“条件概率 ” 。R
(
c
i
∣
x
)
=
∑
j
=
i
N
λ
i
j
P
(
c
j
∣
x
)
R(c_{i}|x)=\sum^{N}_{j=i}{\lambda_{ij}P(c_{j}|x)}
R(ci∣x)=j=i∑NλijP(cj∣x) 我们的任务就是寻找一个判定标准h
:
X
→
Y
h:X\rightarrow Y
h:X→Y以最小化总体风险 。
R
(
h
)
=
E
x
[
R
(
h
(
x
)
∣
x
)
]
R(h)=E_{x}[R(h(x)|x)]
R(h)=Ex[R(h(x)∣x)] 对于每个样本x ,若h能以最小化条件风险R(h(x)|x),则总体风险R(h)也将被最小化 。这就产生了贝叶斯判定准则(Bayes decision rule):为最小化总体风险 ,只需在每个样本上选择那个能使条件风险R(c|x)最小的类别标记 ,即h
∗
(
x
)
=
a
r
g
m
i
n
c
∈
Y
R
(
c
∣
x
)
h^{*}(x)=arg\quad min_{c\in Y}{R(c|x)}
h∗(x)=argminc∈YR(c∣x)此时 ,h
∗
h^{*}
h∗称为贝叶斯最优分类器 ,与之对应的总体风险R(h*)称为在贝叶斯风险 。
具体来说,若目标是最小化分类风险 ,那么λ
i
j
=
{
i
f
i
=
j
1
o
t
h
e
r
w
i
s
e
\lambda_{ij}=\begin{cases}0&if\quad i=j\\1&otherwise\end{cases}
λij={01ifi=jotherwise 此时条件风险R
(
c
∣
x
)
=
1
−
P
(
c
∣
x
)
R(c|x)=1-P(c|x)
R(c∣x)=1−P(c∣x)于是 ,最小化分类错误率的贝叶斯最优分类器为h
∗
(
x
)
=
a
r
g
m
a
x
c
∈
Y
P
(
c
∣
x
)
(
1.1
)
h^{*}(x)=arg\quad max_{c\in Y}P(c|x)\quad(1.1)
h∗(x)=argmaxc∈YP(c∣x)(1.1) ,即对每个样本x ,选择能使后验概率P
(
c
∣
x
)
P(c|x)
P(c∣x)最大的类别标记 。基于贝叶斯定理 ,P
(
c
∣
x
)
P(c|x)
P(c∣x)可写为P
(
c
∣
x
)
=
P
(
c
)
P
(
x
∣
c
)
P
(
x
)
(
1.2
)
P(c|x)=\dfrac{P(c)P(x|c)}{P(x)}\quad(1.2)
P(c∣x)=P(x)P(c)P(x∣c)(1.2),其中 ,P
(
c
)
P(c)
P(c)是类“先验(prior) ”概率;P
(
x
∣
c
)
P(x|c)
P(x∣c)是样本x相对于类别标记c的条件概率 。朴素贝叶斯分类器
不难发现 ,基于贝叶斯公式来估计后验概率
P
(
c
∣
x
)
P(c|x)
P(c∣x)的主要难度在于类条件概率P
(
x
∣
c
)
P(x|c)
P(x∣c)是所有属性的联合概率 ,难以从有限的训练集上进行直接计算 。为了避开这个坑 ,朴素贝叶斯分类器的做法是 ,假设所有属性都互相独立 。那么 ,基于属性条件独立假设 ,式(1.2)可重写为
P
(
c
∣
x
)
=
P
(
c
)
P
(
x
)
∏
i
=
1
d
P
(
x
i
∣
c
)
(
1.3
)
P(c|x)=\dfrac{P(c)}{P(x)}\prod^{d}_{i=1}{P(x_{i}|c)}\quad(1.3)
P(c∣x)=P(x)P(c)i=1∏dP(xi∣c)(1.3) 其中d
d
d为属性数目 ,x
i
x_{i}
xi为x
\mathbf{x}
x在第i
i
i个属性上的取值 。
由于对于所有类别来说P
(
x
)
P(x)
P(x)相同 ,因此基于式(1.1)的贝叶斯判定准则有h
n
b
(
x
)
=
a
r
g
m
a
x
c
∈
Y
P
(
c
)
∏
i
=
1
d
P
(
x
i
∣
c
)
h_{nb}(x)=argmax_{c\in Y}P(c)\prod^{d}_{i=1}P(x_{i}|c)
hnb(x)=argmaxc∈YP(c)i=1∏dP(xi∣c)。
显然,朴素贝叶斯分类器的训练过程就是基于训练集D来估计先验概率P
(
c
)
P(c)
P(c) ,并为每个属性估计条件概率P
(
x
i
∣
c
)
P(x_{i}|c)
P(xi∣c) 。令D
c
D_{c}
Dc表示训练集D种第c
c
c类样本组成的集合 ,若有充足的独立同分布样本,则可容易地估计出类先验概率P
(
c
)
=
∣
D
c
∣
∣
D
∣
P(c)=\dfrac{|D_{c}|}{|D|}
P(c)=∣D∣∣Dc∣。
对于离散属性而言 ,令D
c
,
x
i
D_{c,x_{i}}
Dc,xi表示D
c
D_{c}
Dc中在第i
i
i个属性上取值为x
i
x_{i}
xi的样本组成的集合 ,则条件概率P
(
x
i
∣
c
)
P(x_{i}|c)
P(xi∣c)可估计为P
(
x
i
∣
c
)
=
∣
D
c
,
x
i
∣
∣
D
c
∣
P(x_{i}|c)=\dfrac{|D_{c,x_{i}}|}{|D_{c}|}
P(xi∣c)=∣Dc∣∣Dc,xi∣。
对于连续属性可考虑概率密度函数,假定p
(
x
i
∣
c
)
N
(
μ
c
,
i
,
σ
c
,
i
2
)
p(x_{i}|c)~\mathcal{N}(\mu_{c,i},\sigma^{2}_{c,i})
p(xi∣c)N(μc,i,σc,i2) ,其中μ
c
,
i
\mu_{c,i}
μc,i和σ
c
,
i
2
\sigma^{2}_{c,i}
σc,i2分别是第c
c
c类样本在第i
i
i个属性上取值的均值和方差 ,则有p
(
x
i
∣
c
)
=
1
2
π
σ
c
,
i
e
x
p
(
−
(
x
i
−
μ
c
,
i
)
2
2
σ
c
,
i
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!