zoukankan      html  css  js  c++  java
  • 朴素贝叶斯

    1. 基本方法

    设$X, Y$分别是定义在输入空间和输出空间上的随机变量。$P(X,Y)$是$X$和$Y$的联合概率分布。训练数据集
    egin{equation}
    T = {(x_1, y_1), (x_2, y_2),...,(x_n, y_n) }
    end{equation}
    由$P(X,Y)$独立同​分布产生。

    朴素贝叶斯是一种生成学习方法。与生成学习方法相对的是鉴别学习方法。两种学习方法的主要差别是:鉴别学习方法直接求解后验概率分布$P(Y|X)$。生成学习方法是先求解联合概率分布$P(X,Y)$,再求解后验概率分布$P(Y|X)$。

    朴素贝叶斯要想学习联合概率分布$P(X,Y)$,需要先学习先验概率分布
    egin{equation}
    P(Y=c_k), k=1,2,...,K
    end{equation}
    和条件概率分布
    egin{equation}
    P(X=x|Y=c_k) = P(X^{(1)}=x^{(1)},...,X^{(m)}=x^{(m)} | Y=c_k), k=1,2,...,K
    end{equation}
    其中,$x^{(i)}$是指样本$x$的第$i$个特征。$m$是特征的数量,即每个样本有$m$个特征。

    联合概率分布就等于先验概率乘以条件概率,即
    egin{equation}
    P(X=x, Y=c_k) = P(X=x|Y=c_k) imes P(Y=c_k)
    end{equation}


    但是由于条件概率很难求解($P(X^{(1)}=x^{(1)},...,X^{(m)}=x^{(m)} | Y=c_k)$参数太多,难以计算),所以对条件概率进行了独立性的假设。即
    egin{equation}
    egin{aligned}
    P(X=x|Y=c_k) & = P(X^{(1)}=x^{(1)},...,X^{(m)}=x^{(m)} | Y=c_k) \
    & = prod_{j=1}^m P(X^{(j)}=x^{(j)} | Y=c_k)
    end{aligned}
    end{equation}
    条件独立假设的含义是,在类别确定的情况下,不同特征之间是相互独立的。

    朴素贝叶斯的分类准则是,对于输入$x$,计算后验概率分布$P(Y=c_k | X=x)$,将后验概率最大的类作为$x$的类别输出。后验概率可以通过贝叶斯定理计算:
    egin{equation}
    P(Y=c_k | X=x) = frac{P(X=x | Y=c_k) P(Y=c_k)}{P(X=x)}
    label{bayes}
    end{equation}
    其中
    egin{equation}
    P(X=x | Y=c_k) P(Y=c_k) = P(Y=c_k) prod_{j=1}^m P(X^{(j)}=x^{(j)} | Y=c_k)
    label{condition}
    end{equation}
    egin{equation}
    egin{aligned}
    P(X=x) & = sum_{k=1}^K P(X=x, Y=c_k) \
    & = sum_{k=1}^K P(Y=c_k) P(X=x | Y=c_k) \
    & = sum_{k=1}^K P(Y=c_k) prod_{j=1}^m P(X^{(j)}=x^{(j)} | Y=c_k)
    end{aligned}
    label{prior}
    end{equation}

    将公式( ef{condition}),( ef{prior})代入公式( ef{bayes}),可得后验概率
    egin{equation}
    P(Y=c_k | X=x) = frac{P(Y=c_k) prod_{j=1}^m P(X^{(j)}=x^{(j)} | Y=c_k)}{sum_{k=1}^K P(Y=c_k) prod_{j=1}^m P(X^{(j)}=x^{(j)} | Y=c_k)}
    label{posterior}
    end{equation}

    可以发现,公式( ef{posterior})中的分母与k的取值无关。贝叶斯的分类准则是将样本分类到后验概率最大的类别中,即
    egin{equation}
    egin{aligned}
    f(x) & = underset{c_k}{argmax} ;;; P(Y=c_k | X=x) \
    & = underset{c_k}{argmax} ;;; P(Y=c_k) prod_{j=1}^m P(X^{(j)}=x^{(j)} | Y=c_k)
    end{aligned}
    end{equation}


    2. 参数估计方法
    2.1 极大似然估计

    朴素贝叶斯方法,需要估计先验分布$P(Y=c_k)$与条件分布$P(X^{(j)}=x^{(j)}|Y=c_k)$。可以用极大似然估计方法进行概率的估计。先验概率的极大似然估计是
    egin{equation}
    P(Y=c_k) = frac{sum_{i=1}^n I(y_i=c_k)}{n}, k=1,2,...,K
    end{equation}
    其中,$I(*)$是指示函数,即$I(true)=1$, $I(false)=0$。

    设第$j$个特征$x^{(j)}$的可能取值集合是${a_{j1},a_{j2},...,a_{jS_j}}$,则条件概率$P(X^{(j)}=x^{(j)}|Y=c_k)$的极大似然估计是
    egin{equation}
    P(X^{(j)}=a_{jl}|Y=c_k) = frac{sum_{i=1}^n I(x_i^{(j)}=a_{jl}, y_i=c_k)}{sum_{i=1}^n I(y_i=c_k)}
    end{equation}


    2.2 贝叶斯估计

    在极大似然估计方法中,概率估计会出现等于0的情况。即在训练样本从未出现过的数据,条件概率估计会等于0。这样明显是不利于学习与预测的。这时可以采用贝叶斯估计,条件概率的贝叶斯估计是
    egin{equation}
    P(X^{(j)}=a_{jl}|Y=c_k) = frac{sum_{i=1}^n I(x_i^{(j)}=a_{jl}, y_i=c_k) + lambda}{sum_{i=1}^n I(y_i=c_k) + S_jlambda}
    end{equation}
    式中$lambda ge 0$,当$lambda=0$时,即退化为极大似然估计。常取$lambda=1$,这时也称为拉普拉斯平滑(Laplace smoothing)。

    同样,先验分布的贝叶斯估计是
    egin{equation}
    P(Y=c_k) = frac{sum_{i=1}^n I(y_i=c_k) + lambda}{n+Klambda}
    end{equation}

  • 相关阅读:
    ubuntu13.04中把ibus中的中文拼音输入设为默认
    PHP中获取星期的几种方法
    linux 指令(经常更新)
    手机禁止浏览器往下拉
    Linux常用命令大全
    flask之SQLAlchemy
    【原创】微服务为什么一定要用docker
    flask3
    nginx+uWSGI+django+virtualenv+supervisor发布web服务器
    flask之jinji2模板介绍
  • 原文地址:https://www.cnblogs.com/grindge/p/3928485.html
Copyright © 2011-2022 走看看