机器学习第四篇(stanford大学公开课学习笔记) —生成型学习算法之高斯判别分析模型和朴素贝叶斯方法
来源:互联网 发布:知乎 朴宝剑 编辑:程序博客网 时间:2024/06/04 08:35
一、生成型学习算法(Generative Learning Algorithms) 和判别式学习算法(Discriminative Learning Algorithms)
考虑一个区分大象(y=1)和狗(y=0)的分类问题,我们可以得到一些关于动物特征的训练样本X,回归模型或者感知器模型都试图寻找一条直线作为样本分类的边界线,从而区分大象和狗两种动物;还有另外一个思路,我们将大象和狗分开来讨论,首先观察大象具备哪些体态特征,构造大象的一个判别模型,再观察狗具备哪些体态特征,构造一个狗的判别模型,当我们拿到新的测试样本时,分别将测试数据作为大象模型和狗模型的输入,看这组数据与哪个模型拟合的更好,从而判定该动物是大象还是狗。
这两种方法分别体现了生成型算法和判别型学习算法的思想。如果一个模型试图直接学习P(y|x)或者直接将输入向量空间映射为{0,1}这样的分类标签,这种模型被称为判别型学习算法(discriminative Learning algorithms);如果一个模型试图刻画P(x|y)和p(y),然后根据贝叶斯公式计算P(y|x),这种模型被称为生成型学习算法(generative learning algotithms)。
二、高斯判别分析模型(The Gaussian Discriminant Analysis model)
1、多维高斯分布
其中,求和符号表示的是协方差:Cov(Z)=
假设输入变量X为连续的随机变量,y服从伯努利分布;于是,我们得到假设模型为:
将以上分布写成表达式为:
模型的对数似然估计为:
最后,实验结果如下图所示,两个不同的高斯分布圈代表正负样本的分布情况:
2、GDA 和 logistic regression 的比较
GDA模型和logistic regression 有着很有趣的联系,如果将p(y|x,u0,u1.....)看成是x的函数,我们可以得到:
然而,对于同样训练数据,两种模型会给出不同的分类结果,那么这两种模型孰优孰劣呢?在GDA模型中,我们强制认为y服从高斯分布,这对训练数据做了过多的假设(其实关于做很多的分布假设,都可以得到上式,即最后可以写成logistic regression 的形式,但反过来不然),由于这种假设的存在,导致GDA模型只需要更少的训练样本,如果y精确或者较准确的服从高斯分布,那么该模型得到的结果准确度会大大高于logistic regression模型,然而,如果y完全不服从高斯分布,则这种假设会让GDA模型存在较大的误差,且结果不会优于logistic regression 模型。
三、朴素贝叶斯算法(Naive Bayce)
贝叶斯假设:假设xi关于y的条件概率是独立分布的。
我们可以得到以下公式:
- 机器学习第四篇(stanford大学公开课学习笔记) —生成型学习算法之高斯判别分析模型和朴素贝叶斯方法
- 生成学习算法、高斯判别分析与朴素贝叶斯模型
- 斯坦福机器学习: 网易公开课系列笔记(五)——高斯判别分析、朴素贝叶斯
- Stanford机器学习课程笔记2-高斯判别分析与朴素贝叶斯
- Stanford机器学习课程笔记2-高斯判别分析与朴素贝叶斯
- 生成模型、高斯判别分析、朴素贝叶斯——斯坦福CS229机器学习个人总结(二)
- 机器学习第二篇(stanford大学公开课学习笔记) —局部加权回归
- 机器学习第一篇(stanford大学公开课学习笔记) —机器学习的概念和梯度下降
- 机器学习第三篇(stanford大学公开课学习笔记) —logistic regression 和softmax regression
- 生成学习算法之高斯判别分析模型
- 机器学习第五篇(stanford大学公开课学习笔记) —支持向量机(Support Vector Machine)
- 生成学习、高斯判别、朴素贝叶斯—斯坦福ML公开课笔记5
- 生成学习、高斯判别、朴素贝叶斯—斯坦福ML公开课笔记5
- 生成学习、高斯判别、朴素贝叶斯—斯坦福ML公开课笔记5
- 生成学习、高斯判别、朴素贝叶斯—斯坦福ML公开课笔记5
- Andrew Ng机器学习笔记(五)——生成学习算法和朴素贝叶斯算法
- 公开课机器学习笔记(9)朴素贝叶斯
- 公开课机器学习笔记(8)生成学习算法
- ArcServer发布地图时出现package failed解决方法
- oracle导入数据
- 为什么类中的成员变量可以不赋值就运算?
- 资源加载进度条
- 高质量C/C++编程指南 阅读笔记(三)重载
- 机器学习第四篇(stanford大学公开课学习笔记) —生成型学习算法之高斯判别分析模型和朴素贝叶斯方法
- 谷歌账号登录Google API Oauth 2.0简单申请和使用教程
- Spark的应用程序执行模型
- POJ 2418——Hardwood Species c++STL(map的应用)
- 【Android】细说visibility属性
- 获取Android状态栏高度的屡试不爽的方法
- JAVA双缓存机制
- Openfire插件开发流程
- 暑期训练赛(6)E