生成模型和判别模型

监督学习一般学习的是一个决策函数y=f(x)y=f(x)y=f(x)或者是条件概率分布p(y∣x)p(y|x)p(y∣x)。

判别模型直接用数据学习这个函数或分布,例如Linear Regression和Logistic Regression。
生成模型是先用数据学习联合概率分布p(x,y)p(x,y)p(x,y),然后使用贝叶斯公式求p(y∣x)p(y|x)p(y∣x)
p(y∣x)=p(y)p(x∣y)p(x)p(y|x)=\frac{p(y)p(x|y)}{p(x)}p(y∣x)=p(x)p(y)p(x∣y)​
y=arg⁡max⁡yp(y∣x)y=\arg\max_yp(y|x)y=argymax​p(y∣x)
又yyy不影响p(x)p(x)p(x),故
y=arg⁡max⁡yp(y)p(x∣y)y=\arg\max_yp(y)p(x|y)y=argymax​p(y)p(x∣y)

高斯判别分析

假设:
y∼Bernoulli(ϕ)x∣y=0∼N(μ0,Σ)x∣y=1∼N(μ1,Σ)y \sim Bernoulli(\phi) \\ x|y=0 \sim \mathcal{N}(\mu_0,\Sigma) \\x|y=1 \sim \mathcal{N}(\mu_1, \Sigma)y∼Bernoulli(ϕ)x∣y=0∼N(μ0​,Σ)x∣y=1∼N(μ1​,Σ)
那么p(y)=ϕy(1−ϕ)(1−y)p(x∣y=0)=12πn/2∣Σ∣1/2exp⁡(−12(x−μ0)TΣ−1(x−μ0))p(x∣y=1)=12πn/2∣Σ∣1/2exp⁡(−12(x−μ1)TΣ−1(x−μ1))p(y) =\phi^y(1-\phi)^{(1-y)} \\ p(x|y=0) =\frac{1}{2\pi^{n/2}|\Sigma|^{1/2}}\exp \left(-\frac{1}{2}(x-\mu_0)^T\Sigma^{-1}(x-\mu_0)\right) \\ p(x|y=1) =\frac{1}{2\pi^{n/2}|\Sigma|^{1/2}}\exp \left(-\frac{1}{2}(x-\mu_1)^T\Sigma^{-1}(x-\mu_1)\right) p(y)=ϕy(1−ϕ)(1−y)p(x∣y=0)=2πn/2∣Σ∣1/21​exp(−21​(x−μ0​)TΣ−1(x−μ0​))p(x∣y=1)=2πn/2∣Σ∣1/21​exp(−21​(x−μ1​)TΣ−1(x−μ1​))
于是使用极大似然估计求得参数μ0,μ1,Σ,ϕ\mu_0,\mu_1,\Sigma,\phiμ0​,μ1​,Σ,ϕ
最终GDA模型如下:

朴素贝叶斯模型

在朴素贝叶斯模型中我们假设给定yyy,所有的特征x1,x2,…,xnx_1, x_2, \ldots, x_nx1​,x2​,…,xn​都是独立的,这是一个非常重要的假设。有了这个假设,我们就可以很方便的求解p(x∣y)p(x|y)p(x∣y)了,而yyy服从伯努利分布,p(x,y)p(x,y)p(x,y)也就有了。
p(x∣y)=p(x1∣y)p(x2∣y)…p(xn∣y)p(x|y)=p(x_1|y)p(x_2|y)\ldots p(x_n|y)p(x∣y)=p(x1​∣y)p(x2​∣y)…p(xn​∣y)
对于离散情况,我们假定p(xi∣y)p(x_i|y)p(xi​∣y)服从多项式分布(包括二项式分布)。
对于连续情况,我们假定p(xi∣y)p(x_i|y)p(xi​∣y)服从高斯分布。
然后使用极大似然估计求解模型中参数,最后使用y=arg⁡max⁡yp(x,y)y=\arg\max_y p(x,y)y=argmaxy​p(x,y)求得yyy。

在连续情况下,我们一般使用高斯判别分析;在离散情况下,则使用朴素贝叶斯模型。

转载博客:高斯判别分析(GDA)和朴素贝叶斯(NB)

高斯判别分析(GDA)和朴素贝叶斯(NB)相关推荐

  1. #第26篇分享:一个文本分类的数据挖掘(python语言:sklearn 朴素贝叶斯NB)(2)

    #sklearn 朴素贝叶斯NB算法常用于文本分类,尤其是对于英文等语言来说,分类效果很好:它常用于垃圾文本过滤.情感预测.推荐系统等:是基于概率进行预测的模型,可以做二分类及多分类( 朴素贝叶斯是个 ...

  2. ML之NB:利用朴素贝叶斯NB算法(TfidfVectorizer+不去除停用词)对20类新闻文本数据集进行分类预测、评估

    ML之NB:利用朴素贝叶斯NB算法(TfidfVectorizer+不去除停用词)对20类新闻文本数据集进行分类预测.评估 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 class ...

  3. ML之NB:利用朴素贝叶斯NB算法(CountVectorizer+不去除停用词)对fetch_20newsgroups数据集(20类新闻文本)进行分类预测、评估

    ML之NB:利用朴素贝叶斯NB算法(CountVectorizer+不去除停用词)对fetch_20newsgroups数据集(20类新闻文本)进行分类预测.评估 目录 输出结果 设计思路 核心代码 ...

  4. NLP之TopicModel:朴素贝叶斯NB的先验概率之Dirichlet分布的应用

    NLP之TopicModel:朴素贝叶斯NB的先验概率之Dirichlet分布的应用 目录 1.Dirichlet骰子先验和后验分布的采样 2.稀疏Dirichlet先验的采样 1.Dirichlet ...

  5. NLP之TM之Dirichlet:朴素贝叶斯NB的先验概率之Dirichlet分布的应用

    NLP之TM之Dirichlet:朴素贝叶斯NB的先验概率之Dirichlet分布的应用 目录 1.Dirichlet骰子先验和后验分布的采样 2.稀疏Dirichlet先验的采样 1.Dirichl ...

  6. EM算法--应用到三个模型: 高斯混合模型 ,混合朴素贝叶斯模型,因子分析模型...

    主要是对Ng教授的machinelearning视频学习和参考jerryLead讲义整理(特别鸣谢~): 由"判别模型.生成模型与朴素贝叶斯方法 "一节得知: 判别模型求的是条件概 ...

  7. 机器学习实战(三)朴素贝叶斯NB(Naive Bayes)

    目录 0. 前言 1. 条件概率 2. 朴素贝叶斯(Naive Bayes) 3. 朴素贝叶斯应用于文本分类 4. 实战案例 4.1. 垃圾邮件分类案例 学习完机器学习实战的朴素贝叶斯,简单的做个笔记 ...

  8. 【机器学习算法笔记系列】朴素贝叶斯(NB)算法详解和实战

    朴素贝叶斯(NB)算法概述 朴素贝叶斯(Naïve Bayes, NB)算法,是一种基于贝叶斯定理与特征条件独立假设的分类方法.朴素:特征条件独立:贝叶斯:基于贝叶斯定理.属于监督学习的生成模型,实现 ...

  9. 【机器学习入门】(3) 朴素贝叶斯算法:多项式、高斯、伯努利,实例应用(心脏病预测)附python完整代码及数据集

    各位同学好,今天我和大家分享一下朴素贝叶斯算法中的三大模型.在上一篇文章中,我介绍了朴素贝叶斯算法的原理,并利用多项式模型进行了文本分类预测. 朴素贝叶斯算法 -- 原理,多项式模型文档分类预测,附p ...

最新文章

  1. cookie 免密登录_python
  2. 成员变量和属性区别(@property那点事儿)
  3. 软考-信息系统项目管理师-知识管理
  4. Win2003 IIS下,ASP.NET无法访问数据库和网页
  5. Bootstrap 3 : 图片上传预览 image upload preview
  6. maven打本地JAR包
  7. 如何使用digiKam进行照片管理
  8. Uber无人车安全员之困:这是一份机械、枯燥、影响心理的工作
  9. mysql的动态建表_mysql数据库动态创建表的实例分享
  10. php做个抽签人名,怎样在excel制作一个用于抽签函数,别的工具也行(excel随机抽取人名不重复)...
  11. 携号转网实时手机号归属地查询接口API
  12. 上网行为管理软件的主要功能、并简要说明上网行为管理类的软件的原理。
  13. 十张数据图回顾雾霾,北京污染从南向北加深趋势明显
  14. Express 框架的使用(详细)
  15. 【易通慧谷】通过一个案例两张概念图解析供应链金融
  16. flex布局 justify-content 新属性值 space-evenly
  17. Linux 安装 Composer
  18. unity简单小球下落
  19. 手段-目的理论定性研究实践经验分享
  20. python用stomp扩展连接activemq(千千万万要注意,默认端口是61613,不是62613)

热门文章

  1. 【整理】RPA选择器针对SAP系统的设置
  2. 如何对系统中设置的修改记录增加log日志
  3. 4、Power Map—实例:演示报告封面
  4. 《他其实没那么喜欢你》经典台词(2)
  5. 究竟有多少假代购,在2亿多海淘用户市场里浑水摸鱼?
  6. 混凝土静力受压弹性模量试验计算公式_2019年度水运材料考试大纲微试验
  7. tengine简单安装_实操丨如何在EAIDK上部署Tengine开发AI应用之物体检测应用入门(C++)...
  8. python 文件路径格式化_python 存储为txt文件路径
  9. 入栈和出栈c语言源程序,用c语言可执行文件实现顺序栈的出栈、入栈、判栈空、判栈满!急求啊? 爱问知识人...
  10. python循环五角星做法_python实现while循环打印星星的四种形状