机器学习之朴素贝叶斯

朴素贝叶斯

先验概率 P ( Y ) P(Y) P(Y):根据以往的经验和分析,在实验或采样前就能得到的概率Y。

后验概率 P ( Y ∣ X ) P(Y|X) P(YX) :指某件事Y已经发生,想要计算这件事发生的原因是某个因素X引起的概率,

条件概率 P ( X ∣ Y ) P(X|Y) P(XY): 在Y发生的情况下,X发生的概率。

朴素贝叶斯(Naive Bayes)是基于贝叶斯定理特征条件独立假设(较强假设,朴素)的分类方法。是一种生成模型

朴素贝叶斯法就是给定输入 X X X,想要求得后验概率 P ( Y ∣ X ) P(Y|X) P(YX),这样就能把后验概率最大的那一类 Y Y Y作为预测值。

1、如何求后验概率呢?

根据贝叶斯公式 P ( Y = c k ∣ X = x ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) ∑ i P ( X = x ∣ Y = c i ) P ( Y = c i ) P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_{i}P(X=x|Y=c_i)P(Y=c_i)} P(Y=ckX=x)=iP(X=xY=ci)P(Y=ci)P(X=xY=ck)P(Y=ck),这个公式里后验概率是已知的,条件概率是未知的。

推导:

P ( Y = c k ∣ X = x ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) P ( X = x ) ( 两 个 条 件 概 率 公 式 凑 的 ) P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{P(X=x)} (两个条件概率公式凑的) P(Y=ckX=x)=P(X=x)P(X=xY=ck)P(Y=ck)

P ( Y = c k ∣ X = x ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) ∑ i P ( X = x ∣ Y = c i ) P ( Y = c i ) ( 根 据 全 概 率 公 式 ) P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_{i}P(X=x|Y=c_i)P(Y=c_i)}(根据全概率公式) P(Y=ckX=x)=iP(X=xY=ci)P(Y=ci)P(X=xY=ck)P(Y=ck)

2、如何求条件概率呢?

首先直接计算 P ( X ∣ Y ) P(X|Y) P(XY)是不可能的。

如果输入空间X有1000维,每一维有至少2个取值,则样本的可能取值为 2 1000 2^{1000} 21000,这导致用来表示 P ( X ( 1 ) = x ( 1 ) , . . x ( 1000 ) = X ( 1000 ) ∣ Y = c k ) P(X^{(1) }=x^{(1)},..x^{(1000)}=X^{(1000)}|Y=c_k) P(X(1)=x(1),..x(1000)=X(1000)Y=ck)需要的参数(X取值组合)特别多也有 2 1000 2^{1000} 21000

所以朴素贝叶斯法对条件概率分布做了条件独立性的假设,由于这个假设很强,所以“朴素”由此得名。

条件独立性假设: P ( X = x ∣ Y = c k ) = P ( X ( 1 ) = x ( 1 ) , . . x ( 1000 ) = X ( 1000 ) ∣ Y = c k ) = ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) P(X=x|Y=c_k)=P(X^{(1) }=x^{(1)},..x^{(1000)}=X^{(1000)}|Y=c_k)=\prod_{j=1}^n P(X^{(j) }=x^{(j)}|Y=c_k) P(X=xY=ck)=P(X(1)=x(1),..x(1000)=X(1000)Y=ck)=j=1nP(X(j)=x(j)Y=ck)

3、继续推导

P ( Y = c k ∣ X = x ) = P ( Y = c k ) ∏ j P ( X ( j ) = x ( j ) ∣ Y = c k ) ∑ i P ( Y = c i ) ∏ j P ( X ( j ) = x ( j ) ∣ Y = c i ) ( 根 据 独 立 性 推 导 ) P(Y=c_k|X=x)=\frac{P(Y=c_k)\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_k)}{\sum_{i}P(Y=c_i)\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_i)}(根据独立性推导) P(Y=ckX=x)=iP(Y=ci)jP(X(j)=x(j)Y=ci)P(Y=ck)jP(X(j)=x(j)Y=ck)

所以要预测输入 X X X的类别,就要使后验概率最大化,朴素贝叶斯分类器可以表示为:

y = f ( x ) = a r g m a x c k P ( Y = c k ) ∏ j P ( X ( j ) = x ( j ) ∣ Y = c k ) ∑ k P ( Y = c k ) ∏ j P ( X ( j ) = x ( j ) ∣ Y = c k ) ( 后 验 概 率 最 大 化 ) y=f(x)=argmax_{c_k}\frac{P(Y=c_k)\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_k)}{\sum_{k}P(Y=c_k)\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_k)}(后验概率最大化) y=f(x)=argmaxckkP(Y=ck)jP(X(j)=x(j)Y=ck)P(Y=ck)jP(X(j)=x(j)Y=ck)

由于分母对所有 Y Y Y的取值是相同的,所以只考虑分子:

y = f ( x ) = a r g m a x c k P ( Y = c k ) ∏ j P ( X ( j ) = x ( j ) ∣ Y = c k ) y=f(x)=argmax_{c_k}P(Y=c_k)\prod_{j}P(X^{(j)}=x^{(j)}|Y=c_k) y=f(x)=argmaxckP(Y=ck)jP(X(j)=x(j)Y=ck)

补充:

常说朴素贝叶斯方法是典型的生成学习方法,训练数据学习联合概率分布 P ( X , Y ) P(X,Y) P(X,Y),然后求得后验概率分布 P ( Y ∣ X ) P(Y|X) P(YX)。问题是我们这里哪里学习了联合概率分布呢?不是求的先验概率*条件概率,然后使后验概率最大化吗?

因为联合概率=先验概率*条件概率,即 P ( X , Y ) = P ( Y ) ∗ P ( X ∣ Y ) P(X,Y)=P(Y)*P(X|Y) P(X,Y)=P(Y)P(XY),求的就是联合概率。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值