机器学习 - 朴素贝叶斯法

博客内容源于《统计机器学习》一书的阅读笔记。Python的源码实现源于《机器学习实战》部分内容。

首先,需要回顾下面的三个重要的公式:

  1. 条件概率:
    P(A|B)=P(AB)P(B)
  2. 全概率公式:
    P(A)=iP(A|Bi)P(Bi)
  3. 贝叶斯(Bayes)公式:
    P(Bi|A)=P(A|Bi)P(Bi)iP(A|Bi)P(Bi)

1. 朴素贝叶斯法的学习

朴素贝叶斯(naive bayes)法是基于贝叶斯定理与条件独立假设的分类方法。朴素贝叶斯基于两个重要的假设建立的:

1. 一个特征出现的概率与其他特征(条件)独立;(特征独立性)
2. 每个特征同等重要。(特征均衡性)

【算法描述】
设输入空间 XRn n 维向量的集合,输出空间为类标记集合Y={c1,c2,...,ck}。输入为特征向量 xX , 输出为标记 yY X 是定义在输入空间X上的随机向量, Y 是定义在输出空间Y上的随机向量。 P(X,Y) X,Y 的联合概率分布。训练数据集

T={(x1,y1),(x2,y2),...,(xN,yN)}

P(X,Y) 独立同分布产生。
朴素贝叶斯法通过 训练数据集学习联合概率分布 P(X,Y) 。先验概率分布:
P(Y=ck),k=1,2,...,K

条件概率分布:
P(X=x|Y=ck)=P(X(1)=x(1),...,Xn=xn|Y=ck),k=1,2,...,k

于是学习到联合概率分布 P(X,Y)

【分类】
朴素贝叶斯法分类时,对给定的输入 x ,通过学习到的模型计算后验概率分布P(Y=ck|X=x),将后验概率最大的类作为x类的输出。后验概率计算根据贝叶斯定理进行:

P(Y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)iP(X=x|Y=ck)P(Y=ck)

由于前面已经假设了特征独立,所以有:
P(X=x|Y=ck)=P(X(1)=x(1),...,X(n)=x(n)|Y=ck)=j=1nP(X(j)=x(j)|Y=ck)

将上式带入到 P(Y=ck|X=x) 中,得到(朴素贝叶斯的基本公式):
P(Y=ck|X=x)=P(Y=ck)nj=1P(X(j)=x(j)|Y=ck)iP(Y=ck)nj=1P(X(j)=x(j)|Y=ck)k=1,2,...,K

那么,朴素贝叶斯分类器就可以表示为:
y=f(x)=argmaxckP(Y=ck|X=x)=argmaxckP(Y=ck)nj=1P(X(j)=x(j)|Y=ck)iP(Y=ck)nj=1P(X(j)=x(j)|Y=ck)k=1,2,...,K

由于上述表示中的分母对于所有的 ck 都是相同的,所以可以略去分母,表示成:
argmaxckP(Y=ck)j=1nP(X(j)=x(j)|Y=ck)k=1,2,...,K

先验概率 ( Prior probability)
先验概率是在缺乏某个事实的情况下描述一个变量; 而后验概率是在考虑了一个事实之后的条件概率. 先验概率通常是经验丰富的专家的纯主观的估计.

后验概率 ( posterior probability)
后验概率是指通过调查或其它方式获取新的附加信息,利用贝叶斯公式对先验概率进行修正,而后得到的概率。

2. 朴素贝叶斯法使用流程

  1. 计算先验概率和条件概率
    P(Y=ck)=Ni=1I(yi=ck)N,k=1,2,...,K.P(X(j)=ajl|Y=ck)=Ni=1I(x(j)i,yi=ck)Ni=1I(yi=ck)j=1,2,...,n;l=1,2,...,Sj;k=1,2,...,K
  2. 对于给定的实例 x=(x(1),x(2),...,x(n))T ,计算:
    P(Y=ck)j=1nP(X(j)=x(j)|Y=ck)k=1,2,...,K
  3. 确定实例 x 的分类
    y=argmaxckP(Y=ck)j=1nP(X(j)=x(j)|Y=ck)k=1,2,...,K

3. 举例


这里写图片描述

  1. 首先计算先验概率和条件概率
    P(Y=1)=915P(Y=1)=615P(X(1)=1|Y=1)=29P(X(1)=2|Y=1)=39P(X(1)=3|Y=1)=49P(X(2)=S|Y=1)=19P(X(2)=M|Y=1)=49P(X(2)=L|Y=1)=49P(X(1)=1|Y=1)=36P(X(1)=2|Y=1)=26P(X(1)=3|Y=1)=16P(X(2)=S|Y=1)=36P(X(2)=M|Y=1)=26P(X(2)=L|Y=1)=16
  2. 对于给定的 x=(2,S)T 计算:
    P(Y=1)P(X(1)=2|Y=1)P(X(2)=S|Y=1)=9153919=145P(Y=1)P(X(1)=2|Y=1)P(X(2)=S|Y=1)=6152636=115
  3. 根据得出的概率,取得最大的概率的类,所以:
    y=1.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

空空的司马

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值