• 【晨读算法】为什么经常看到使用朴素贝叶斯公式的时候把分母忽略了?


    我们以李航老师《统计学习方法》上面的定义为例:

    朴素贝叶斯法对条件概率分布做了条件独立性的假设。由于这是一个较强的假设,朴素贝叶斯也由此得名。具体地,条件独立性假设是:
    P ( X = x ∣ Y = c k ) = P ( X ( 1 ) = x ( 1 ) , ⋯   , X ( n ) = x ( n ) ∣ Y = c k ) = ∏ j = 1 n P ( X ( j ) = x ( j ) ∣ Y = c k ) (1) P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},\cdots,X^{(n)}=x^{(n)}|Y=c_k)\\ =\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k) \tag{1} P(X=xY=ck)=P(X(1)=x(1),,X(n)=x(n)Y=ck)=j=1nP(X(j)=x(j)Y=ck)(1)

    朴素贝叶斯法分类时,对给定的输入 x x x,通过学习到的模型计算后验概率分布:
    P ( Y = c k ∣ X = x ) P(Y=c_k|X=x) P(Y=ckX=x)
    将后验概率最大的类作为 x x x的类输出。

    后验概率计算根据贝叶斯定理进行:
    P ( Y = c k ∣ X = x ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) ∑ k P ( X = x ∣ Y = c k ) P ( Y = c k ) (2) P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum \limits_{k}P(X=x|Y=c_k)P(Y=c_k)}\tag{2} P(Y=ckX=x)=kP(X=xY=ck)P(Y=ck)P(X=xY=ck)P(Y=ck)(2)
    将(1)式代入(2)式,有:
    P ( Y = c k ∣ X = x ) = 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 )    ,    k = 1 , 2 , ⋯   , K P(Y=c_k|X=x)=\frac{P(Y=c_k)\prod \limits_{j}P(X^{(j)}=x^{(j)}|Y=c_k)}{\sum \limits_{k}P(Y=c_k)\prod \limits_{j}P(X^{(j)}=x^{(j)}|Y=c_k)}\;,\;k=1,2,\cdots,K PY=ckX=x)=kP(Y=ck)jP(X(j)=x(j)Y=ck)P(Y=ck)jP(X(j)=x(j)Y=ck),k=1,2,,K
    这是朴素贝叶斯法分类的基本公式。于是,朴素贝叶斯分类器可以表示为:
    y = f ( x ) = arg max ⁡ 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 \limits_{j}P(X^{(j)}=x^{(j)}|Y=c_k)}{\sum \limits_{k}P(Y=c_k)\prod \limits_{j}P(X^{(j)}=x^{(j)}|Y=c_k)} y=f(x)=ckargmaxkP(Y=ck)jP(X(j)=x(j)Y=ck)P(Y=ck)jP(X(j)=x(j)Y=ck)
    注意到,在上式中,分母对所有的 c k c_k ck都是相同的,所以:
    y = arg max ⁡ c k P ( Y = c k ) ∏ j P ( X ( j ) = x ( j ) ∣ Y = c k ) y=\argmax_{c_k}P(Y=c_k)\prod \limits_{j}P(X^{(j)}=x^{(j)}|Y=c_k) y=ckargmaxP(Y=ck)jP(X(j)=x(j)Y=ck)

    到这里,我遇到了一个问题,为什么说分母对所有的 c k c_k ck都是相同的?

    我们以最简单的二分类问题来解读,那么我们知道 c = 0 c=0 c=0或者 c = 1 c=1 c=1,则:
    y 1 = P ( Y = 0 ) ∏ P ( X = x i ∣ Y = 0 ) P ( Y = 0 ) ∏ P ( X = x i ∣ Y = 0 ) + P ( Y = 1 ) ∏ P ( X = x i ∣ Y = 1 ) y_1=\frac{P(Y=0)\prod P(X=x_i|Y=0)}{P(Y=0)\prod P(X=x_i|Y=0)+P(Y=1)\prod P(X=x_i|Y=1)} y1=P(Y=0)P(X=xiY=0)+P(Y=1)P(X=xiY=1)P(Y=0)P(X=xiY=0)
    y 2 = P ( Y = 1 ) ∏ P ( X = x i ∣ Y = 1 ) P ( Y = 1 ) ∏ P ( X = x i ∣ Y = 1 ) + P ( Y = 0 ) ∏ P ( X = x i ∣ Y = 0 ) y_2=\frac{P(Y=1)\prod P(X=x_i|Y=1)}{P(Y=1)\prod P(X=x_i|Y=1)+P(Y=0)\prod P(X=x_i|Y=0)} y2=P(Y=1)P(X=xiY=1)+P(Y=0)P(X=xiY=0)P(Y=1)P(X=xiY=1)
    可以看到,分母部分二者是完全一样的式子,所以实际上分母的取值对于所有 c c c来说,始终是一样的,因此我们常常将分母省略。

  • 相关阅读:
    python用minimize() 函数替代matlab的fmincon函数
    使用WIX 进行商业智能OEM打包
    Linux编辑器-vim使用
    路西法98-生活记录ing
    【前段基础入门之】=>HTML5 的新增特性!
    计算机网络复习笔记——运输层
    【机器学习】基于CNN-RNN模型的验证码图片识别
    ChatGPT4.0怎么收费
    Ae 入门系列之十三:运动跟踪与稳定
    Springcloudgateway如何在全局过滤器中获得请求体和响应体
  • 原文地址:https://blog.csdn.net/wzk4869/article/details/126913768