朴素贝叶斯算法(naive Bayes algorithm)

算法:

输入:训练数据 T={(x1,y1),(x2,y2),,(xN,yN)} ,其中 xi=(x(1)i,x(2)i,,x(n)i)T , x(j)i 是第 i 个样本的第 j 个特征, x(j)i{aj1,aj2,,ajsj} ajl 是第 j 个特征可能取的第 l 个值, j=1,2,,n l=1,2,,Sj yi{c1,c2,,cK} ;实例 x
输出:实例 x 的分类。
(1) 计算先验概率及条件概率

P(Y=ck)=Ni=1I(yi=ck)N,k=1,2,,K
P(X(j)=ajl|Y=ck)=Ni=1I(x(j)i=ajl,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)

模型:

P(X,Y) ,条件独立性假设

策略:

极大后验概率估计

推理思路:

通过训练数据集学习 P(X,Y) ,具体地,学习先验概率分布 P(Y=ck) 和条件概率分布 P(X=x|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) 最大的类作为 x 的类输出
P(Y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)kP(X=x|Y=ck)P(Y=ck)=P(Y=ck)jP(X(j)=x(j)|Y=ck)kP(Y=ck)jP(X(j)=x(j)|Y=ck)

分母对所有 ck 都是相同的,所以
y=argmaxckP(Y=ck)j=1nP(X(j)=x(j)|Y=ck)

算法缺陷及改进

可能出现估计的概率为0,采用贝叶斯估计代替极大似然估计

Pλ(Y=ck)=Ni=1I(yi=ck)+λN+Kλ,k=1,2,,K
Pλ(X(j)=ajl|Y=ck)=Ni=1I(x(j)i=ajl,yi=ck)+λNi=1I(yi=ck)+Sjλ

λ0 ,当 λ=0 即为极大似然估计。常取 λ=1 此时称为拉普拉斯平滑。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值