机器学习之贝叶斯分类

朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的基础上得出的分类方法。朴素贝叶斯法实现简单,学习与预测效率高,是一种常用的方法。当样本中的各个变量独立时,朴素贝叶斯法所得出的分类结果准确率是最高的。但是这个条件比较苛刻,在实际情况中各个变量往往具有相关性。即使如此,当变量之间相关性较低时,贝叶斯分类依然有较好的分类性能。
下边结合李航老师的统计学习方法以及一些网站用例子来直接理解贝叶斯分类。

1.病人分类

医院早上收了6个病人,信息如下表

症状职业疾病
打喷嚏护士感冒
打喷嚏农夫过敏
头痛建筑工人脑震荡
头痛建筑工人感冒
打喷嚏教师感冒
头痛教师脑震荡

问来了一个打喷嚏的建筑工人,患感冒的几率是多大。

根据贝叶斯定理
P ( A ∣ B ) = P ( B ∣ A ) ∗ P ( A ) P ( B ) P(A|B) = \frac{P(B|A)*P(A)}{P(B)} P(AB)=P(B)P(BA)P(A)
P ( 感 冒 ∣ 打 喷 嚏 , 建 筑 工 人 ) = P ( 打 喷 嚏 , 建 筑 工 人 ∣ 感 冒 ) ∗ P ( 感 冒 ) P ( 打 喷 嚏 , 建 筑 工 人 ) P(感冒|打喷嚏,建筑工人) = \frac{P(打喷嚏,建筑工人|感冒)*P(感冒)}{P(打喷嚏,建筑工人)} P()=P()P()P()
其中打喷嚏、建筑工人这两个特征可以看成是独立的,所以 P ( 打 喷 嚏 , 建 筑 工 人 ) = P ( 打 喷 嚏 ) ∗ P ( 建 筑 工 人 ) = 0.5 ∗ 0.33 = 0.166 P(打喷嚏,建筑工人) = P(打喷嚏)*P(建筑工人)=0.5*0.33=0.166 P()=P()P()=0.50.33=0.166
而从表得知P(感冒)=0.5。
P ( 打 喷 嚏 , 建 筑 工 人 ∣ 感 冒 ) = P ( 打 喷 嚏 ∣ 感 冒 ) ∗ P ( 建 筑 工 人 ∣ 感 冒 ) = 0.66 ∗ 0.33 = 0.218 P(打喷嚏,建筑工人|感冒)=P(打喷嚏|感冒)*P(建筑工人|感冒)\\=0.66*0.33=0.218 P()=P()P()=0.660.33=0.218
因此最后的结果为0.218*0.5/0.166=66%
同理,可以根据这个公式计算该病人得过敏和脑震荡的几率,取最大值为最终的判断。

2.贝叶斯分类器公式

设样本有N个特征,分别为 F 1 , F 2 . . . F n F_1,F_2...F_n F1,F2...Fn,有M个分类标签 C 1 , C 2 . . . C M C_1,C_2...C_M C1,C2...CM,则贝叶斯分类器就是求以下算式的最大值
P ( C ∣ F 1 , F 2 . . . F n ) = P ( F 1 , F 2 . . . F n ∣ C ) ∗ P ( C ) P ( F 1 , F 2 . . . . F n ) P(C|F_1,F_2...F_n)=\frac{P(F_1,F_2...F_n|C)*P(C)}{P(F_1,F_2....F_n)} P(CF1,F2...Fn)=P(F1,F2....Fn)P(F1,F2...FnC)P(C)
而对于每一个 C 1 . . . C M C_1...C_M C1...CM,分母都是一样的,因此只要求分子最大值就可以了。
贝叶斯分类再假设样本中每个特征都是独立的,因此
P ( F 1 , F 2 . . . F n ∣ C ) = P ( F 1 ∣ C ) ∗ P ( F 2 ∣ C ) . . . . P ( F n ∣ C ) P(F_1,F_2...F_n|C)=P(F_1|C)*P(F_2|C)....P(F_n|C) P(F1,F2...FnC)=P(F1C)P(F2C)....P(FnC)
对于每一个 C K k ∈ { 1 , 2... M } C_K \quad k\in\{1,2...M\} CKk{1,2...M}求得每一个 P ( F 1 , F 2 . . . F n ∣ C K ) P(F_1,F_2...F_n|C_K) P(F1,F2...FnCK)的值,取最大值时K作为此样本的分类即可

3 另一个例子

在这里插入图片描述
由以上训练样本及标签确定一个贝叶斯分类器。样本为1个2维向量,其中 X ( 1 ) ∈ { 1 , 2 , 3 } , X ( 2 ) ∈ { S , M , L } X^{(1)}\in\{1,2,3\},X^{(2)}\in\{S,M,L\} X(1){1,2,3},X(2){S,M,L},标签 Y ∈ { − 1 , 1 } Y\in\{-1,1\} Y{1,1}。并且求样本 x = { 2 , S } x=\{2,S\} x={2,S}的标签。

因为标签为-1,1,因此要求样本x的标签,即求P(Y=1|X=(2,S))和P(Y=-1|X=(2,S))。
P ( Y = 1 ∣ X = ( 2 , S ) ) = P ( X = ( 2 , S ) ∣ Y = 1 ) ∗ P ( Y = 1 ) = P ( X 1 = 2 ∣ Y = 1 ) ∗ P ( X 2 = S ∣ Y = 1 ) ∗ P ( Y = 1 ) = 2 6 ∗ 3 6 ∗ 9 15 = 1 45 \begin{aligned} P(Y=1|X=(2,S)) &= P(X=(2,S)|Y=1)*P(Y=1)\\ &=P(X_1=2|Y=1)*P(X_2=S|Y=1)*P(Y=1)\\ &=\frac{2}{6}*\frac{3}{6}*\frac{9}{15}=\frac{1}{45} \end{aligned} P(Y=1X=(2,S))=P(X=(2,S)Y=1)P(Y=1)=P(X1=2Y=1)P(X2=SY=1)P(Y=1)=6263159=451
同理求得 P ( Y = − 1 ∣ X = ( 2 , S ) ) = 1 15 P(Y=-1|X=(2,S))=\frac{1}{15} P(Y=1X=(2,S))=151,因此此样本标签记为-1。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值