zoukankan      html  css  js  c++  java
  • 【分类算法】朴素贝叶斯(Naive Bayes)

    0 - 算法

      给定如下数据集

    $$T={(x_1,y_1),(x_2,y_2),cdots,(x_N,y_N)},$$

    假设$X$有$J$维特征,且各维特征是独立分布的,$Y$有$K$种取值。则对于输入$x$,朴素贝叶斯算法的输出为

    $$y=argmax_{c_k}P(Y=c_k)prod_j P(X^{(j)}=x^{(j)}|Y=c_k),j=1,cdots,J,k=1,cdots,K,$$

    其中先验概率$P(Y=c_k)$和条件概率$P(X^{(j)}=x^{(j)}|Y=c_k)$的极大似然估计在下一节给出。

    1 - 推导

      朴素贝叶斯的基本公式为

    $$P(B|A)=frac{P(A|B)P(B)}{P(A)},$$

      因此,对于输入数据$x$,预测类别$c_k$的概率可以表示为

    $$egin{align}P(Y=c_k|X=x)=frac{P(X=x|Y=c_k)P(Y=c_k)}{P(X=x)}end{align}$$

      且有,

    $$egin{align}P(X=x)=P(Y=c_k)sum_{k}P(X=x|Y=c_k)end{align}$$

      根据特征之间独立分布,又有

    $$egin{align}P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},cdots,X^{(J)}=x^{(J)}|Y=c_k)=prod_{j=1}^JP(X^{(j)}=x^{(j)}|Y=c_k)end{align}$$

      将式$(3)$代入式$(2)$可得

    $$egin{align}P(X=x)=sum_{k}P(Y=c_k)prod_{j=1}^JP(X^{(j)}=x^{(j)}|Y=c_k)end{align}$$

      将式$(3)(4)$代入式$(1)$可得

    $$egin{align}P(Y=c_k|X=x)=frac{P(Y=c_k)prod_{j=1}^JP(X^{(j)}=x^{(j)}|Y=c_k)}{sum_{k}P(Y=c_k)prod_{j=1}^JP(X^{(j)}=x^{(j)}|Y=c_k)}end{align}$$

      注意到,对于所有类别$Y=c_k$,其分母均是一样的,因此最终算法可以将分母去掉而不影响预测概率的相对大小。朴素贝叶斯算法可写成如下形式

    $$y=argmax_{c_k}P(Y=c_k|X=x)=argmax_{c_k}P(Y=c_k)prod_{j=1}^JP(X^{(j)}=x^{(j)}|Y=c_k),$$

    由上式可知,朴素贝叶斯算法只需要对$P(Y=c_k)$和$P(X^{(j)}=x^{(j)}|Y=c_k)$进行参数估计(极大似然估计)即可。

      先验概率$P(Y=c_k)$的极大似然估计可以表示为

    $$P(Y=c_k)=frac{sum_{j=1}^N I(y_i=c_k)}{N}, k=1,2,cdots,K,$$

      条件概率$P(X^{(j)}=x^{(j)}|Y=c_k)$的极大似然估计,假设第$j$个特征$x^{(j)}$的取值集合为${a_{j1},a_{j2},cdots,a_{jS_j}}$,则有

    $$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)}, j=1,2,cdots,J;l=1,2,cdots,S_j;k=1,2,cdots,K.$$

    2 - 参考资料

    《统计学习方法》,李航

  • 相关阅读:
    redis 误删dump.rdb 解决方案
    Redis 初级应用
    .net core 依赖注入
    Android 基础总结
    hander用法笔记
    百万条数据快速查询优化技巧参考(优化并不是绝对,具体得根据业务实际情况)
    网站收藏
    自定义MVC HtmlHelpe之分页
    asp.net 页面请求原理
    Two Sum
  • 原文地址:https://www.cnblogs.com/CZiFan/p/11759980.html
Copyright © 2011-2022 走看看