朴素贝叶斯法,就是使用贝叶斯公式的学习方法,朴素就是它假设输入变量(向量)的各个分量之间是相互独立的。所以对于分量之间不独立的分布,如果使用它学习和预测效果就不会很好。

简化策略

它是目标是通过训练数据集学习联合概率分布$P(X, Y)$用来预测。书上说,具体是先学习到先验概率分布以及条件概率分布,分别如下:(但我认为,直接学习$P(X, Y)$就行了,它要多此一举算出这两个再乘起来变成$P(X, Y)$,但其实计算量差不多,可能这样更好理解吧)

$P(Y = c_k), k = 1, 2, 3, ..., K$

$P(X = x|Y = c_k) = P(X^{(1)} = x^{(1)}, ..., X^{(n)} = x^{(n)}|Y = c_k), k = 1, 2, 3, ..., K$

其中输入空间$mathcal{X} subseteq R^n$为$n$维向量的集合,输出空间为标记集合$mathcal{Y} = {c_1, c_2, ..., c_K}$。

上面提到了先验概率分布,这里记一下先验概率分布与后验概率分布。先验概率分布与后验概率分布是相对而言的量,通常是要放在一起讨论的。如:$P(Y)$是直接测量的,或是我们经验中所认为的$Y$的概率分布,而当我们测量$X$后,条件概率分布$P(Y|X)$就是发生$X$后$Y$的后验概率分布。

书中说,因为条件概率分布$P(X = x|Y = c_k)$有指数级数量的参数,它的估计实际不可行(实际上样本的数量也不够支撑那么多参数之间的潜在交叉关系)。事实上,假设$x^{(j)}$可取值有$S_j$个,j = 1, 2,… ,n , Y 可取值有K 个,那么参数个数就是$Kprodlimits_{j=1}^{n}S_j$。所以对输入的各个分量的分布进行了假设,假设各个分量之间相互独立(所以它们的联合分布就是直接乘起来),这是一个较强的假设,朴素贝叶斯因此得名。如下:

$P(X= x|Y = c_k) =  P(X^{(1)} = x^{(1)}, ..., X^{(n)} = x^{(n)}|Y = c_k)$

$ = prodlimits_{j=1}^{n}P(X^{(j)} = x^{(j)}|Y = c_k)$

学习方式

那么如何学习呢?对于有限离散输入输出来说的表达,可以直接计算样本集的概率分布当做总体分布。

而对于连续的输入输出来说,通常要先假设$P(X, Y)$服从某个多维分布。然后,基于上面的独立性假设,$X$的各个分量是相互独立的,而各个分量和$Y$并不独立,所以可以分别拟合$P(X^{(j)}|Y), j = 1, 2, ..., n$(可以用极大似然估计拟合$P(X^{(j)}, Y)$,再计算$P(X^{(j)}|Y)$),然后把它们全都乘起来得$P(X|Y) =  prodlimits_{j=1}^{n}P(X^{(j)}|Y)$(这里和上面不一样,因为是连续的,所以不能等于某个特定的值$x_j$),再拟合边缘分布$P(Y)$,然后与$P(X|Y)$相乘获得联合分布$P(X, Y)$。 当然也可以直接拟合$P(X, Y)$,因为$X$的分量之间相互独立,所以除了外协方差矩阵中除了对角线以及包含$Y$的协方差外,其它协方差$Cov(X^{(j)}, X^{(i)})$都为0,所以要优化的参数也少了很多,形如:

$egin{bmatrix} Cov(X^{(0)}, X^{(0)}) & 0 & . & . & . & Cov(X^{(0)}, Y) 0 &Cov(X^{(1)}, X^{(1)}) & . & .& . & Cov(X^{(1)}, Y) . & & . & & & . .& & & . && .  .& & && . & .  Cov(Y, X^{(0)}) & Cov(Y, X^{(1)}) & . & . & . &Cov(Y, Y)&end{bmatrix}$

分类的时候,通过贝叶斯公式计算后验概率分布,取后验概率最大的$Y$作为预测结果:

$y = f(x) =  mathop{argmax}limits_{c_k} P(Y = c_k|X = x) $

$=  mathop{argmax}limits_{c_k} frac{P(Y = c_k, X = x)}{sumlimits_{k}P(X = x|Y = c_k)P(Y = c_k)}$

因为分母对每个$Y$都是一样的,所以可以简化为:

$=  mathop{argmax}limits_{c_k} P(Y = c_k, X = x)$

因此在这里最大后验概率的预测等价于最大联合概率。

后验最大化的含义

这里的后验概率最大化等价于机器学习中常用的期望风险最小化。如果用期望风险最小化来推出预测函数,就要定义损失函数,书上选择0-1损失函数(也可以是别的损失函数形式)。具体证明直接贴书上的图:

matlab贝叶斯判别后验概率,统计学习方法——朴素贝叶斯法、先验概率、后验概率(示例代码)...相关推荐

  1. 统计学习方法|朴素贝叶斯原理剖析及实现

    欢迎直接到我的博客查看最近文章:www.pkudodo.com.更新会比较快,评论回复我也能比较快看见,排版也会更好一点. 原始blog链接: http://www.pkudodo.com/2018/ ...

  2. 李航统计学习方法-朴素贝叶斯

    朴素贝叶斯法 朴素贝叶斯(naïve Bayes)法是基于贝叶斯定理与特征条件独立假设的分类方法[1]. 对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布:然 后基于此模型, ...

  3. 统计学习方法——朴素贝叶斯

    0.写在前面 朴素贝叶斯实际上是非常简单的一种机器学习方法,我们在之前的很多地方都讲过了,所以这里我们不再阐述具体的原理,可以移步:朴素贝叶斯. 但是,对于讨论班里,争论最多的就是课后的2个习题,因此 ...

  4. 复习04统计学习方法(朴素贝叶斯算法Naive Bayes)---图片版

  5. 三种常用的朴素贝叶斯实现算法——高斯朴素贝叶斯、伯努利朴素贝叶斯、多项式朴素贝叶斯

    朴素贝叶斯 在机器学习中,朴素贝叶斯分类器是一系列以假设特征之间强(朴素)独立下运用贝叶斯定理为基础的简单概率分类器. 朴素贝叶斯算法Naive Bayes定义中有两个关键定义:特征之间强假设独立和贝 ...

  6. 【阿旭机器学习实战】【10】朴素贝叶斯模型原理及3种贝叶斯模型对比:高斯分布朴素贝叶斯、多项式分布朴素贝叶斯、伯努利分布朴素贝叶斯

    [阿旭机器学习实战]系列文章主要介绍机器学习的各种算法模型及其实战案例,欢迎点赞,关注共同学习交流. 本文介绍了机器学习中的朴素贝叶斯的基本原理,并对3种贝叶斯模型根据鸢尾花实例进行了比较. 目录 朴 ...

  7. 《贝叶斯思维:统计建模的Python学习法》——2.3 贝叶斯框架

    本节书摘来异步社区<贝叶斯思维:统计建模的Python学习法>一书中的第2章,第2.3节,作者:[美]Allen B. Downey,更多章节内容可以访问云栖社区"异步社区&qu ...

  8. 探索贝叶斯-多项式/伯努力/补集朴素贝叶斯

    目录 1. 多项式朴素贝叶斯及其变化 1.1 多项式朴素贝叶斯MultinomialNB 2. 伯努力朴素贝叶斯BernoulliNB 3. 补集朴素贝叶斯 4. 探索贝叶斯:贝叶斯的样本不均衡问题 ...

  9. 《贝叶斯思维:统计建模的Python学习法》一1.6 MM豆问题

    本节书摘来自异步社区<贝叶斯思维:统计建模的Python学习法>一书中的第1章,第1.6节,作者[美]Allen B. Downey,更多章节内容可以访问云栖社区"异步社区&qu ...

最新文章

  1. 使用meta属性禁用手机浏览器的缩放功能
  2. javascript柱状统计图表
  3. 鸟哥的Linux私房菜(基础篇)-第五章、首次登陆与在线求助 man page
  4. java提高篇之理解java的三大特性——多态
  5. WPF实现环(圆)形菜单
  6. Super Jumping! Jumping! Jumping! HDU - 1087
  7. android studio左边选择渠道,AndroidStudio简单使用(二):左侧Structure
  8. Java实现简易四则运算器
  9. 计算机基础综合知识试题及答案,计算机基础综合知识试题及答案
  10. 神经网络应用论文题目,神经网络应用论文选题
  11. 解决-redis保存的中文变为unicode, redis的基本操作
  12. 三个人的友谊显的有些拥挤了...
  13. 本地.m3u8播放器实现
  14. 【微信小程序】小程序实现轮播图效果--swiper组件(一步步教你如何实现)
  15. 编译原理课程设计-对pl0语言进行扩充
  16. 变脸软件成犯罪帮凶​,上万个限用微信号被“复活”
  17. 7年测试工程师,裸辞掉17K的工作,想跳槽找更好的,还是太高估自己了....
  18. wireshark抓包分析ping数据包
  19. 【河南省多校脸萌第六场 A】分班级
  20. Electron理论知识 8 - 工具神器(Fiddle)

热门文章

  1. HTML+CSS简单应用实例——购物网站的制作(七)
  2. 如何建设一个合格的企业网站
  3. QcC-Q宠大乐斗企鹅鉴定及评分标准[测试版]
  4. linux设备驱动开发之环境搭建(基于exynos4412)
  5. hadoop集群搭建学习总结(一)
  6. 2020 前端必看 20个最好的 前端 Web开发工具
  7. 都说Python是万能的,这五大主要用途你一定要知道!
  8. 麓言信息ui设计不会画画可以学吗?
  9. 第27次CCF计算机软件能力认证
  10. python模块(二)—— 内置模块