一,概念
朴素贝叶斯是基于贝叶斯定理的分类方法,是应用比较广泛的分类方法。
朴素贝叶斯假设特征之间相互独立,虽然在一定程度上降低了贝叶斯分类的效果,但是,在实际应用中却有很好的效果。
二,算法原理
假设有m个类别 y 1 , y 2 , . . . , y m y_1,y_2,...,y_m y1,y2,...,ym,有n个特征 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn,由朴素贝叶斯算法可以得出 P ( Y ∣ X ) P(Y|X) P(Y∣X):
P ( Y ∣ X ) = P ( Y ) P ( X ∣ Y ) P ( X ) ( 1 ) P(Y|X)=\frac{P(Y)P(X|Y)}{P(X)} (1) P(Y∣X)=P(X)P(Y)P(X∣Y)(1)
其中, P ( Y ) P(Y) P(Y)是 Y Y Y的先验概率, P ( Y ∣ X ) P(Y|X) P(Y∣X)是Y的后验概率。
由于 X X X之间是相互独立的,由独立的性质可以得到
P ( X 1 X 2 ) = P ( X 1 ) P ( X 2 ) ( 2 ) P ( X ∣ Y = y ) = P ( X 1 ∣ Y = y ) P ( X 2 ∣ Y = y ) ( 3 ) P(X_1X_2)=P(X_1)P(X_2) (2)\\ P(X|Y=y)=P(X_1|Y=y)P(X_2|Y=y) (3) P(X1X2)=P(X1)P(X2)(2)P(X∣Y=y)=P(X1∣Y=y)P(X2∣Y=y)(3)
所以(1)式中的条件概率分布变成如下的形式:
P ( X ∣ Y = y ) = ∏ i n P ( x i ∣ Y = y ) ( 4 ) P(X|Y=y)=\prod\limits_i^nP(x_i|Y=y)(4) P(X∣Y=y)=i∏nP(xi∣Y=y)(4)
由此可以计算出后验概率
P ( Y ∣ X ) = P ( Y ) ∏ i n P ( x i ∣ Y = y ) P ( X ) ( 5 ) P(Y|X)=\frac{P(Y)\prod\limits_i^nP(x_i|Y=y)}{P(X)} (5) P(Y∣X)=P(X)P(Y)i∏nP(xi∣Y=y)(5)
由此得到了第J个样本所属的样本分类,即:
P ( y j ∣ x 1 , x 2 , . . . , x n ) = P ( y j ) ∏ i = 1 n P ( x i ∣ y j ) ∏ i = 1 n P ( X ) ( 6 ) P(y_j|x_1,x_2,...,x_n)=\frac{P(y_j)\prod\limits_{i=1}^nP(x_i|y_j)}{\prod\limits_{i=1}^nP(X)} (6) P(yj∣x1,x2,...,xn)=i=1∏nP(X)P(yj)i=1∏nP(xi∣yj)(6)
三,优缺点
优点:如果特征存在缺失的时候,朴素贝叶斯就有很好的用处。想象一下,如果某个特征缺失,预测的结果与特征之间的联系有关,预测的结果可能就不会很好。朴素贝叶斯的算法也很稳定,对于不同的数据分类结果的差异很小。如果数据的特征大多数都是独立的,那么朴素贝斯斯的分类效果会很好。
缺点:朴素贝叶斯的缺点就是,特征间的独立性。在现实生活中,往往很难找到多个特征之间是相互独立的。
四,引例
(一)提出问题
判断一个人是否去图书馆,假如与以下因素有关,天气好坏,当天是否有高数课,当天是否有其他校园活动,假设这些因素是独立的
天气 | 高数课 | 校园活动 | 是否去图书馆 |
---|---|---|---|
好 | 有 | 无 | 去 |
坏 | 有 | 有 | 去 |
好 | 无 | 无 | 不去 |
坏 | 无 | 有 | 去 |
好 | 有 | 有 | 不去 |
坏 | 无 | 无 | 不去 |
好 | 无 | 无 | 不去 |
坏 | 有 | 无 | 去 |
想要知道此名学生在天气好,无高数课,有校园活动的情况下是否去图书馆?
通过贝叶斯公式可知,去图书馆的概率为:
p ( 去 ∣ 天气好,无高数课,有校园活动 ) = p ( 天气好,无高数课,有校园活动 ∣ 去 ) p ( 去 ) p ( 天气好,无高数课,有校园活动 ) p(去|天气好,无高数课,有校园活动)=\frac{p(天气好,无高数课,有校园活动|去)p(去)}{p(天气好,无高数课,有校园活动)} p(去∣天气好,无高数课,有校园活动)=p(天气好,无高数课,有校园活动)p(天气好,无高数课,有校园活动∣去)p(去)
再次条件下不去图书馆的概率为:
p ( 不去 ∣ 天气好,无高数课,有校园活动 ) = p ( 天气好,无高数课,有校园活动 ∣ 不去 ) p ( 不去 ) p ( 天气好,无高数课,有校园活动 ) p(不去|天气好,无高数课,有校园活动)=\frac{p(天气好,无高数课,有校园活动|不去)p(不去)}{p(天气好,无高数课,有校园活动)} p(不去∣天气好,无高数课,有校园活动)=p(天气好,无高数课,有校园活动)p(天气好,无高数课,有校园活动∣不去)p(不去)
(二)概率计算
1,改名学生去图书馆的概率:
天气 | 高数课 | 校园活动 | 是否去图书馆 |
---|---|---|---|
好 | 有 | 无 | 去 |
坏 | 有 | 有 | 去 |
坏 | 无 | 有 | 去 |
坏 | 有 | 无 | 去 |
p(去)=4/8=1/2
p(天气好|去)=1/4
p(无高数课|去)=1/4
p(有校园活动|去 )=1/2
p(天气好)=1/2
p(无高数课)=1/2
p(有校园活动)=5/8
p(去|天气好,无高数课,有校园活动)=[(1/4 * 1/4 * 1/2)(1/2)] / (1/2 * 1/2 * 5/8)
2,改名学生不去图书馆的概率:
天气 | 高数课 | 校园活动 | 是否去图书馆 |
---|---|---|---|
好 | 无 | 无 | 不去 |
好 | 有 | 有 | 不去 |
坏 | 无 | 无 | 不去 |
好 | 无 | 无 | 不去 |
p(不去)=4/8=1/2
p(天气好|不去)=3/4
p(无高数课|不去)=1/2
p(有校园活动|不去 )=1/4
p(天气好)=1/2
p(无高数课)=1/2
p(有校园活动)=5/8
p(不去|天气好,无高数课,有校园活动)=[(3/4 * 1/2 * 1/4)(1/2)] / (1/2 * 1/2 * 5/8)
3,比较
p(去|天气好,无高数课,有校园活动) < p(不去|天气好,无高数课,有校园活动)
所以我们根据朴素贝叶斯算法可以给改名学生的答案,是不去图书馆