朴素贝叶斯:
1、 特征 特征 特征 条件独立假设
2、基于 贝叶斯定理 贝叶斯定理 贝叶斯定理 --条件概率公式
分类算法,广泛应用于NLP --文本分类
贝叶斯定理
条件概率公式:
p
(
y
∣
x
)
=
p
(
x
,
y
)
p
(
x
)
p(y|x) = \frac {p(x,y)} {p(x)}
p(y∣x)=p(x)p(x,y)
=
p
(
y
)
p
(
x
∣
y
)
p
(
x
)
=\frac {p(y)p(x|y)} {p(x)}
=p(x)p(y)p(x∣y)
=
p
(
y
)
∗
p
(
x
(
1
)
,
x
(
2
)
.
.
.
x
(
n
)
∣
y
)
p
(
x
)
=\frac {p(y)*p(x^{(1)},x^{(2)}...x^{(n)}|y)} {p(x)}
=p(x)p(y)∗p(x(1),x(2)...x(n)∣y)
其中
p
(
x
,
y
)
p(x,y)
p(x,y) 为随机变量
x
,
y
x,y
x,y 的联合概率分布
若
x
,
y
x,y
x,y相互独立,则
p
(
x
,
y
)
=
p
(
x
)
∗
p
(
y
)
p(x,y) = p(x)*p(y)
p(x,y)=p(x)∗p(y)
由于朴素贝叶斯是
特征
特征
特征 条件独立假定的,
即
x
(
1
)
,
x
(
2
)
.
.
.
x
(
n
)
x^{(1)},x^{(2)}...x^{(n)}
x(1),x(2)...x(n)之间相互独立
则 p ( y ∣ x ) = p ( y ) ∗ p ( x ( 1 ) ∣ y ) ∗ p ( x ( 2 ) ∣ y ) . . . p ( x ( n ) ∣ y ) p ( x ) p(y|x) = \frac {p(y)*p(x^{(1)}|y)*p(x^{(2)}|y)...p(x^{(n)}|y) } {p(x)} p(y∣x)=p(x)p(y)∗p(x(1)∣y)∗p(x(2)∣y)...p(x(n)∣y)
先验概率及估计
假如
y
y
y 服从多项式分布,取值有
k
k
k类,
y
(
1
)
,
y
(
2
)
.
.
.
y
(
k
)
y^{(1)},y^{(2)}...y^{(k)}
y(1),y(2)...y(k),类别
y
(
l
)
y^{(l)}
y(l)发生的概率记为
p
l
p_l
pl,即为先验概率
进行m次随机实验,假如类别为
y
(
l
)
y^{(l)}
y(l) 发生了
M
l
M_l
Ml次,则似然函数:
L
(
p
l
)
=
p
l
M
l
∗
(
1
−
p
l
)
m
−
M
l
L(p_l) = p_l^{M_l}*(1-p_l)^{m-M_l}
L(pl)=plMl∗(1−pl)m−Ml
采用极大似然法估计 p l p_l pl:
对
L
(
p
l
)
L(p_l)
L(pl)取对数,然后对
p
l
p_l
pl求导,令 其= 0
求得
p
l
=
M
l
m
p_l = \frac {M_l}{m}
pl=mMl
后验概率及估计
朴素贝叶斯分类中,对于一个样本
x
i
x_i
xi,其属于类别
y
(
l
)
y^{(l)}
y(l) 的概率为:
p
(
y
(
l
)
∣
x
i
)
=
p
(
x
i
,
y
(
l
)
)
p
(
x
i
)
p(y^{(l)}|x_i) = \frac {p(x_i,y^{(l)})}{p(x_i)}
p(y(l)∣xi)=p(xi)p(xi,y(l))
此条件概率即为后验概率
使用
l
l
l类别的先验概率,
l
l
l类别下的条件概率,来估计此后验概率
例子
假如,班级有100个学生,男生60,女生40,男生中近视人数占一半,女生中近视的只有25%,随机选出一个近视的学生,其为女性的概率是?
解:
要求解的概率:
p
(
女性
∣
近视
)
=
p
(
女性,近视
)
p
(
近视
)
p(女性|近视) = \frac {p(女性,近视)}{p(近视)}
p(女性∣近视)=p(近视)p(女性,近视)
=
p
(
女性
)
∗
p
(
近视
∣
女性
)
p
(
近视
)
=\frac {p(女性)*p(近视|女性)}{p(近视)}
=p(近视)p(女性)∗p(近视∣女性)
p
(
女性
)
=
0.4
p(女性) = 0.4
p(女性)=0.4
p
(
近视
∣
女性
)
=
0.25
p(近视|女性) = 0.25
p(近视∣女性)=0.25
p
(
近视
)
=
0.4
p(近视) = 0.4
p(近视)=0.4
则所求概率为 0.25 0.25 0.25
多项式NB
先验概率,条件概率,均服从多项式分布,则为多项式朴素贝叶斯
from sklearn.naive_bayes import MultinomialNB
clf = MultinomialNB(alpha=1.0) #拉普拉斯平滑
高斯NB
特征值,为连续值时,采用高斯分布进行估计 条件概率 条件概率 条件概率,则为高斯朴素贝叶斯
from sklearn.naive_bayes import GaussianNB
clf = GaussianNB()
sklearn中的NB
from sklearn.naive_bayes import MultinomialNB
clf = MultinomialNB(alpha=1.0) #alpha 平滑参数
from sklearn.naive_bayes import GaussianNB
clf = GaussianNB()
基于NB 的垃圾邮件分类
不文明评论的检测