1 前言
朴素贝叶斯的”朴素“在于其两个假设:
- 特征之间相互独立
- 特征之间同等重要
特征也就是 X = ( x 1 , x 2 , x 3 . . . x n ) T X = (x_1, x_2, x_3 ... x_n )^T X=(x1,x2,x3...xn)T的每一个分量。
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)
- A是结果,B是原因
- P ( A ) P(A) P(A)是先验概率,一般人为给出
- P ( A ∣ B ) P(A|B) P(A∣B)是后验概率,也就是我们想求解的概率
- P ( B ∣ A ) P(B|A) P(B∣A)是条件概率或似然概率,是根据统计结果来的
- 贝叶斯公式就是:后验 = 先验 * 似然
可以用图片帮助理解:
根据条件概率公式:
P
(
A
∣
B
)
=
P
(
A
B
)
P
(
B
)
P
(
B
∣
A
)
=
P
(
A
B
)
P
(
A
)
P(A|B) = \frac{P(AB)}{P(B)} \qquad P(B|A) = \frac{P(AB)}{P(A)}
P(A∣B)=P(B)P(AB)P(B∣A)=P(A)P(AB)
P
(
A
B
)
=
P
(
A
∣
B
)
P
(
B
)
=
P
(
B
∣
A
)
P
(
A
)
P(AB) = P(A|B)P(B)=P(B|A)P(A)
P(AB)=P(A∣B)P(B)=P(B∣A)P(A)
3 朴素贝叶斯用于分类问题
对于分类问题,设
C
k
C_k
Ck是类别,
X
=
(
x
1
,
x
2
,
x
3
.
.
.
x
n
)
T
X = (x_1, x_2, x_3 ... x_n )^T
X=(x1,x2,x3...xn)T是特征,用n维向量表示。
P
(
C
k
∣
X
)
=
P
(
C
k
)
P
(
X
∣
C
k
)
P
(
X
)
P(C_k|X) = \frac{P(C_k)P(X|C_k)}{P(X)}
P(Ck∣X)=P(X)P(Ck)P(X∣Ck)对于一个给定的样本
X
X
X,我们需要确定其最可能属于的类别
C
k
C_k
Ck,由于
X
X
X是给定的,
P
(
X
)
P(X)
P(X)是定值,
X
X
X属于类别
C
k
C_k
Ck的概率正比于:
P
(
C
k
∣
X
)
∝
P
(
C
k
)
P
(
X
∣
C
k
)
P(C_k|X) \propto P(C_k)P(X|C_k)
P(Ck∣X)∝P(Ck)P(X∣Ck)对于每一个
X
X
X可能属于的类别
C
i
C_i
Ci,只需计算出
P
(
C
i
)
P
(
X
∣
C
i
)
P(C_i)P(X|C_i)
P(Ci)P(X∣Ci),值最大的类别就是
X
X
X最可能属于的类别。
4 独立性假设
X = ( x 1 , x 2 , x 3 . . . x n ) T X = (x_1, x_2, x_3 ... x_n )^T X=(x1,x2,x3...xn)T,对于朴素贝叶斯中的内容,根据链式法则:
P ( x 1 , x 2 , x 3 . . . x n ∣ C k ) \qquad P(x_1, x_2, x_3...x_n|C_k) P(x1,x2,x3...xn∣Ck)
= > P ( x 1 , x 2 , x 3 . . . x n − 1 ∣ C k , x n ) P ( x n ∣ C k ) =>P(x_1,x_2,x_3...x_{n-1}|C_k,x_n)P(x_n|C_k) =>P(x1,x2,x3...xn−1∣Ck,xn)P(xn∣Ck)
= > P ( x 1 , x 2 , x 3 . . . x n − 2 ∣ C k , x n − 1 , x n ) P ( x n − 1 ∣ C k , x n ) P ( x n ∣ C k ) =>P(x_1,x_2,x_3...x_{n-2}|C_k,x_{n-1},x_n)P(x_{n-1}|C_k,x_n)P(x_n|C_k) =>P(x1,x2,x3...xn−2∣Ck,xn−1,xn)P(xn−1∣Ck,xn)P(xn∣Ck)
= > . . . =>... =>...
=
>
P
(
x
1
∣
C
k
,
x
2
,
x
3
.
.
.
x
n
)
P
(
x
2
∣
C
k
,
x
3
.
.
.
x
n
)
.
.
.
P
(
x
n
−
1
∣
C
k
,
x
n
)
P
(
x
n
∣
C
k
)
=>P(x_1|C_k,x_2,x_3...x_n)P(x_2|C_k,x_3...x_n)...P(x_{n-1}|C_k,x_n)P(x_n|C_k)
=>P(x1∣Ck,x2,x3...xn)P(x2∣Ck,x3...xn)...P(xn−1∣Ck,xn)P(xn∣Ck)
根据朴素贝叶斯的假设,各个特征之间的独立的,也就是说
x
i
x_i
xi的概率不受
x
j
x_j
xj影响,即
P
(
x
i
∣
C
k
,
x
i
+
1...
x
n
)
=
P
(
x
i
∣
C
k
)
P(x_i|C_k,x_i+1...x_n) = P(x_i|C_k)
P(xi∣Ck,xi+1...xn)=P(xi∣Ck)因此
P
(
X
∣
C
k
)
=
∏
i
=
1
n
P
(
x
i
∣
C
k
)
P(X|C_k)=\prod_{i=1}^{n}P(x_i|C_k)
P(X∣Ck)=i=1∏nP(xi∣Ck)
朴素贝叶斯公式写作:
P
(
C
k
∣
X
)
∝
P
(
C
k
)
∏
i
=
1
n
P
(
x
i
∣
C
k
)
P(C_k|X) \propto P(C_k)\prod_{i=1}^{n}P(x_i|C_k)
P(Ck∣X)∝P(Ck)i=1∏nP(xi∣Ck)
5 朴素贝叶斯用于文本情感分类
训练集给出了若干积极与消极的文本,任务是对训练集中的文本进行分类。
-
有两个类别, C o C_o Co是积极, C 1 C_1 C1是消极。
-
每一个词项看作一个特征 x i x_i xi。
-
用训练集中积极和消极文本所占的比例作为 P ( C 0 ) P(C_0) P(C0)和 P ( C 1 ) P(C_1) P(C1)。
-
用 x i x_i xi在 C k C_k Ck集合下的 t f − i d f tf-idf tf−idf值作为 P ( x i ∣ C k ) P(x_i|C_k) P(xi∣Ck),即
t f − i d f ( x i ) = w o r d _ c o u n t ( x i ) w o r d s ( C k ) l o g d o c s ( C k ) w o r d _ d o c s ( x i ) tf-idf(x_i)=\frac{{word\_count(x_i)}}{words(C_k)}log\frac{docs(C_k)}{word\_docs(x_i)} tf−idf(xi)=words(Ck)word_count(xi)logword_docs(xi)docs(Ck) -
这里做加1平滑:
t f = w o r d _ c o u n t ( x i ) + 1 w o r d s ( C k ) + 1 tf = \frac{{word\_count(x_i)}+1}{words(C_k)+1} tf=words(Ck)+1word_count(xi)+1 i d f = l o g d o c s ( C k ) + 1 w o r d _ d o c s ( x i ) + 1 + 1 idf = log\frac{docs(C_k)+1}{word\_docs(x_i)+1}+1 idf=logword_docs(xi)+1docs(Ck)+1+1 -
同时,注意到 P ( X ∣ C k ) P(X|C_k) P(X∣Ck)正比于的式子是连乘,为了避免小数点累乘,将其每一项取 l o g log log,改为连加 P ( C k ∣ X ) ∝ l o g ( P ( C k ) ) + ∑ i = 1 n l o g ( P ( x i ∣ C k ) ) P(C_k|X) \propto log(P(C_k))+\sum_{i=1}^{n}log(P(x_i|C_k)) P(Ck∣X)∝log(P(Ck))+i=1∑nlog(P(xi∣Ck))
-
在python的
texts_to_matrix
函数中,通过mode='tfidf'
计算词项 x i x_i xi在文档 d o c j doc_j docj(属于类别 C k C_k Ck)中的 t f − i d f tf-idf tf−idf的值,计算公式为 t f = 1 + l o g ( n ( x i , d o c j ) ) tf=1+log(n(x_i, doc_j)) tf=1+log(n(xi,docj)) i d f = l o g ( 1 + N ( C k ) 1 + n ( x i , C k ) ) idf=log(1+\frac{N(C_k)}{1+n(x_i,C_k)}) idf=log(1+1+n(xi,Ck)N(Ck)) t f tf tf值与 x i x_i xi在文档 d o c j doc_j docj中出现的次数有关, i d f idf idf对于每个词项都是一样的,与文档无关,是通过 C k C_k Ck类别的文档总数和包含该词项的文档数决定的