1.朴素贝叶斯简介
**朴素贝叶斯(Naive Bayesian)**算法能够根据数据加先验概率来估计后验概率,在垃圾邮件分类、文本分类、信用等级评定等多分类问题中得到广泛应用。对于多数的分类算法,比如决策树、KNN等,他们都是判别方法,也就是直接学习出特征输出Y和特征X之间的关系。但朴素贝叶斯和多数分类算法都不同,朴素贝叶斯是生成算法,也就是先找出特征输出Y和特征X的联合分布 P ( X , Y ) P(X,Y) P(X,Y),然后用 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)得出。
朴素贝叶斯算法的优点在于简单易懂、学习效率高,在某些领域的分类问题中能够与决策树相媲美。但朴素贝叶斯算法以自变量之间的独立性和连续变量的正态性假设为前提,会导致算法精度在一定程度上受到影响。
2.朴素贝叶斯算法模型
2.1统计知识回顾
深入算法原理之前,我们先来回顾下统计学的相关知识。
- 条件概率公式
P ( X , Y ) = P ( X ) P ( Y ) X 、 Y 相 互 独 立 P(X,Y)=P(X)P(Y)\ X、Y相互独立 P(X,Y)=P(X)P(Y) X、Y相互独立
- 条件概率公式
P ( Y ∣ X ) = P ( X , Y ) P ( X ) P ( X ∣ Y ) = P ( X , Y ) P ( Y ) P(Y|X)=\frac{P(X,Y)}{P(X)} \\ P(X|Y)=\frac{P(X,Y)}{P(Y)} P(Y∣X)=P(X)P(X,Y)P(X∣Y)=P(Y)P(X,Y)
- 全概率公式
P ( X ) = ∑ j P ( X ∣ Y = Y j ) P ( Y j ) 其 中 ∑ j P ( Y j ) = 1 P(X)=\sum_{j}P(X|Y=Y_j)P(Y_j)\ 其中\sum _{j}P(Y_j)=1 P(X)=j∑P(X∣Y=Yj)P(Yj) 其中j∑P(Yj)=1
经过上面统计学知识,我们能够得出贝叶斯公式。
P ( Y k ∣ X ) = P ( X , Y k ) P ( X ) = P ( X ∣ Y k ) P ( Y k ) ∑ k = 1 K P ( X ∣ Y = Y k ) P ( Y k ) P(Y_k|X)=\frac{P(X,Y_k)}{P(X)}=\frac{P(X|Y_k)P(Y_k)}{\sum_{k=1}^{K}P(X|Y=Y_k)P(Y_k)} P(Yk∣X)=P(X)P(X,Yk)=∑k=1KP(X∣Y=Yk)P(Yk)P(X∣Yk)P(Yk)
2.2朴素贝叶斯模型
假设我们已经有部分数据,并且能从数据中得到先验概率,那么如何得到后验概率 P ( Y k ∣ X ) P(Y_k|X) P(Yk∣X)呢?下面我们通过构建朴素贝叶斯分类模型来解决后验概率问题,假设分类模型数据有m个样本,每个样本有n个特征,特征输出有K个类别,定义为 C 1 , C 2 , … , C k {C1,C2,…,Ck} C1,C2,…,Ck。
{ ( x 1 ( 1 ) , x 2 ( 1 ) , . . . , x n ( 1 ) , y 1 ) , ( x 1 ( 2 ) , x 2 ( 2 ) , . . . , x n ( 2 ) , y 2 ) , . . . , ( x 1 ( m ) , x 2 ( m ) , . . . , x n ( m ) , y m ) } \{ (x_{1}^{(1)},x_{2}^{(1)},...,x_{n}^{(1)},y_1),(x_{1}^{(2)},x_{2}^{(2)},...,x_{n}^{(2)},y_2),...,(x_{1}^{(m)},x_{2}^{(m)},...,x_{n}^{(m)},y_m)\} {
(x1(1),x2(1),...,xn(1),y1),(x1(2),x2(2),...,xn(2),y2),...,(x1(m),x2(m),...,xn(m),ym)}
从样本中我们能够学习得到朴素贝叶斯的先验分布概率
P ( Y = C k ) ( k = 1 , 2 , … , K ) P(Y=C_k)(k=1,2,…,K) P(Y=Ck)(k=1,2,…,K)
然后学习得到条件概率分布
P ( X ∣ Y = C k ) = P ( X 1 = x ( 1 ) , X 2 = x ( 2 ) , . . . , X n = x ( n ) ∣ Y = C k ) P(X|Y=C_k)=P(X_1=x^{(1)},X_2=x^{(2)},...,X_n=x^{(n)}|Y=C_k) P(X∣Y=Ck)=P(X1=x(1),X2=x(2),...,Xn=x(n)∣Y=Ck)
最后结合贝叶斯公式便可得到X和Y的联合分布 P ( X , Y = C k ) P(X,Y=C_k) P(X,Y=Ck)
P ( X , Y = C k ) = P ( Y = C k ) P ( X ∣ Y = C k ) ( 1 ) = P ( Y = C k ) P ( X 1 = x ( 1 ) , X 2 = x ( 2 ) , . . . , X n = x ( n ) ∣ Y = C k ) ( 2 ) P(X,Y=C_k)=P(Y=C_k)P(X|Y=C_k)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (1) \\ =P(Y=C_k)P(X_1=x^{(1)},X_2=x^{(2)},...,X_n=x^{(n)}|Y=C_k)\ \ (2) P(X,Y=Ck)=P(Y=Ck)P(X∣Y=Ck) (1)=P(Y=Ck)P(X1=x(1),X2=x(2),...,X