搜公众号
推荐 原创 视频 Java开发 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库
Lambda在线 > 大雄的学习人生 > 朴素贝叶斯法(naive Bayes)

朴素贝叶斯法(naive Bayes)

大雄的学习人生 2019-01-27
举报

朴素贝叶斯的英文叫做 naive Bayes,换句话说就是“天真贝叶斯”,它之所以天真,是因为它认为所有的特征条件都是都是独立的,虽然这种假设在现实情况中是很难成立的,但是在特征条件相关性很小时,朴素贝叶斯法就能获得不错的结果。

算法释义

朴素贝叶斯法首先在特征条件独立假设的前提下学得输入/输出的联合概率分布,然后利用贝叶斯定理求出所有可能的输出 ck 后验概率,从中取最大的结果作为输出。

算法步骤

输入:训练数据集 T,输入实例 x 输出:实例 x 的分类 (1) 计算先验概率和条件概率: $$ \begin{array} \ P(Y = ck) \ P(X^{(j)} = a{jl} | Y = ck) \ j = 1,2,...,J; l = 1,2,...,Sj; k=1,2,...,K \end{array} $$

(2) 计算所有 y 的后验概率: $$ P(Y = ck, X = x) = P(Y = ck) \prod{j=1}^J P(X^{(j)} = x^{(j)} | Y = ck), k = 1,2,...,K $$

(3) 取最大的后验概率对应的 y 作为结果: $$ y = arg \max{ck} {P(Y = c_k, X = x)} $$


重要概念

贝叶斯定理

$$ P (A | B) = \frac {P(B | A) P(A)} {P(B)} $$ 经典的条件概率公式,相关的介绍网上很多,这里就不详述了。

特征条件独立假设

即假设特征条件(输入的不同维度)是完全独立的,即: $$ P(X^{(i)}, X^{(j)}) = P(X^{(i)})P(X^{(j)}),i ≠ j $$

参数估计

在朴素贝叶斯法中,学习模型意味着估计先验概率 P(Y = ck) 和条件概率 P(X(j) = x(j) | Y = ck),下面介绍两种估计方法。

极大似然估计

$$ \begin{array} \ P(Y = ck) = \frac {\sum{n = 1}^N I(yn = ck) } {N},k = 1,2,...,K \ P(X^{(j)} = a{jl} | Y = ck) = \frac {\sum{n = 1}^N I(xn^{(l)} = a{jl}, yn = ck) } {P(Y = ck) * N} \ j = 1,2,...,J; l = 1,2,...,S_j; k=1,2,...,K \end{array} $$

贝叶斯估计(拉普拉斯平滑)

在极大似然估计中,很有可能出现条件概率为零的情况,这样会导致其后验概率为零,很容易造成偏差,因此这里对极大似然估计法稍作改动,即贝叶斯估计: $$ \begin{array} \ P(X^{(j)} = a{jl} | Y = ck) = \frac {\sum{n = 1}^N I(xn^{(l)} = a{jl}, yn = ck) + λ } {P(Y = ck) * N + Sjλ} \ j = 1,2,...,J; l = 1,2,...,Sj; k=1,2,...,K;λ>0 \end{array} $$ 当 λ = 1时即拉普拉斯平滑。


参考文献

《统计学习方法》,李航

由于markdown的公式无法转成html,如需查看公式,请点击下方阅读全文


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《朴素贝叶斯法(naive Bayes)》的版权归原作者「大雄的学习人生」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注大雄的学习人生微信公众号

大雄的学习人生微信公众号:gh_c1532074b478

大雄的学习人生

手机扫描上方二维码即可关注大雄的学习人生微信公众号

大雄的学习人生最新文章

精品公众号随机推荐

举报