学习笔记——朴素贝叶斯法

朴素贝叶斯(naive Bayes)法属于生成模型:还原出联合概率分布\(P(X,Y)\),它反映了输入与输出之间的概率关系,也就是生成数据的机制,然后基于这套机制进行分类。朴素贝叶斯法基于贝叶斯定理与特征条件独立假设的分类方法。

基本原理


输入空间\(\mathcal{X} \subseteq R^n\)
输出空间\(\mathcal{Y} = \{ c_1, c_2, ..., c_K \}\)
训练数据集\(T = \{ (x_1,y_1), (x_2,y_2), ..., (x_N,y_N) \}\)是由\(P(X,Y)\)独立同分布产生 的。

学习联合概率分布\(P(X,Y)\),具体就是学习先验概率分布:

\[P(Y=c_k), k = 1, 2, ..., K \]

和条件概率分布(根据条件独立性的假设,没有这个假设的话不好化简):

\[P(X=x | Y=c_k) = P(X^{(1)} = x^{(1)},...,X^{(n)} = x^{(n)} | Y = c_k) = \prod_{j=1}^n P(X^{(j)} = x^{(j)} | Y=c_k) \]

然后在进行分类时,对给定的输入\(x\),计算后验概率:

\[P(Y=c_k | X=x) = \frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_k P(X=x|Y=c_k) | P(Y=c_k)} \]

采用后验概率最大化准则(对应0-1损失函数的期望风险最小化准则),从所有的\(P(Y=c_k | X=x)\)中选一个最大的,上面那个公式里的分母总是不变的,所以可以化简为:

\[y = \arg \max_{c_k} P(X=x|Y=c_k)P(Y=c_k) = \arg \max_{c_k} P(Y=c_k) \prod_{j=1}^n P(X^{(j)} = x^{(j)} | Y=c_k) \]

朴素贝叶斯法的参数估计


极大似然估计

先验概率\(P(Y=c_k)\)的极大似然估计是(\(I(\cdot)\)是指示函数):

\[P(Y=c_k) = \frac{1}{N} \sum_{i=1}^N I(y_i=c_k), k=1,2,...,K \]

设第\(j\)个特征\(x^{(j)}\)可能取值的集合为\(\{ a_{j1},a_{j2},...,a_{jS_j} \}\)
条件概率\(P(X^{(j)} = a_{jl} | Y=c_k)\)的极大似然估计是:$$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,...,n; l=1,2,...,S_j; k=1,2,...,K$$

朴素贝叶斯算法

  • 输入:训练数据集\(T = \{ (x_1,y_1), (x_2,y_2), ..., (x_N,y_N) \}\);实例\(x\)
  • 实例\(x\)的分类
  1. 计算先验概率及条件概率
$$P(Y=c_k) = \frac{1}{N} \sum_{i=1}^N I(y_i=c_k), k=1,2,...,K$$$$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,...,n; l=1,2,...,S_j; k=1,2,...,K$$
  1. 对于给定的实例\(x\),计算后验概率:
$$P(Y=c_k) \prod_{j=1}^n P(X^{(j)} = x^{(j)} | Y=c_k)$$
  1. 确定实例\(x\)的类,即选择最大的那个后验概率:
$$y = \arg \max_{c_k} P(Y=c_k) \prod_{j=1}^n P(X^{(j)} = x^{(j)} | Y=c_k)$$

贝叶斯估计

用极大似然估计可能会出现所要估计的概率值为0的情况,这会影响到后验概率的计算结果,使分类产生偏差,解决这一问题的方法是采用贝叶斯估计,条件概率的贝叶斯估计是:

\[P_{\lambda}(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_j \lambda} \]

就是在原来的基础上加上个\(\lambda\),当\(\lambda=0\)时就是极大似然估计。常取\(\lambda = 1\),这时称为拉普拉斯平滑(Laplace smoothing)。
同样,先验概率的贝叶斯估计是:

\[P_{\lambda}(Y=c_k) = \frac{\sum_{i=1}^N I(y_i=c_k) + \lambda}{N+K\lambda} \]


(注:本文为读书笔记与总结,侧重算法原理,来源为[《统计学习方法》](http://book.douban.com/subject/10590856/)一书第四章)
作者:[rubbninja](http://www.cnblogs.com/rubbninja/) 出处:[http://www.cnblogs.com/rubbninja/](http://www.cnblogs.com/rubbninja/) 关于作者:目前主要研究领域为机器学习与无线定位技术,欢迎讨论与指正!
posted @ 2015-10-23 20:32  rubbninja  阅读(459)  评论(0编辑  收藏  举报