机器学习算法笔记2_1:生成学习算法(Generative Learning algorithms)

我们之前学习的算法都是基于p(y|x;θ), 他的思想是找出找出一个决策边界来将两类分开,而生成算法是先对两个类别分别建模,为了将样本分开,将样本代入两个模型,看样本与哪个类别更匹配。

这种试图直接从输入x映射到类别标签{0,1}的算法被称为判别学习算法;而通过计算p(x|y)(和p(y))来得到模型的算法被称为生成学习算法

通过贝叶斯函数得到p(y|x)=p(x|y)p(y)p(x),

argmaxyp(y|x)=argmaxyp(x|y)p(y)p(x)=argmaxyp(x|y)p(x)

  1. 高斯判决分析(GDA, Gaussian discriminant analysis)

    假设p(x|y)服从多元正太分布.

    1. 多元正太分布

      Cov(X)=Σ=E[(X?E(X)(X?E(X))T)]=E[XXT]?(E[X]E[X]T)

      左图Σ=I,中图Σ=0.6I,右图Σ=2I,可以看到随着协方差增大,分布越趋近”扁平”。

      随着协方差非对角线元素的增大,分布越趋于正45度方向压缩

      随着协方差非对角线元素的减小, 分布逐渐向-45度方向压缩。右图显示,任意地改变参数分布投影趋近椭圆。

    2. 高斯判决分析模型(GDA)
      • 应用条件:特征x为连续随机变量
      • 模型:用多远正态分布给f(x|y)建模,模型如下:

        即:

        从上式可以看出这个模型通常采用不同的均值,相同的方差。即模型的参数为?,Σ,μ0,μ1,写成对数形式如下:

        参数计算如下

        样本分布图

    3. 高斯决策模型与逻辑回归的关系

      如果将p(y=1|x;?,μ0,μ1,Σ)看成关于x的函数,则其形式可以改写成:

      这正是LR的形式。即如果p(x|y)符合多元高斯分布且共享Σ,则p(y|x)将符合Logistics函数的形式,但这只是充分不必要条件,f(y|x)若符合Logistic函数,不能推出f(x|y)符合多元正太分布。

      GDA与LR的比较:

      1. GDA对x具有很强的假设(服从多元正太分布),如果满足则能更好的适应样本,会是更好的模型,且asymptotically efficient;在大的训练样本的前提下,没有模型能比GDA更好。但是LR鲁棒性更强,不要求x一定符合高斯分布;
      2. GDA需要的训练样本比LR更少

        实际中由于LR对数据先验概率的适应性而更多的被使用。

  2. 朴素贝叶斯(Naive Bays):适用于文本分类

    GDA中,要求x是连续的向量,而朴素贝叶斯则是针对输入x是离散变量的情况。

    1. 朴素贝叶斯假设

      假设当给定y时向量x的各个分量相互独立

    2. 推论

      p(x1,...,x50000)=p(x1|y)p(x2|y,x1)p(x3|y,x1,x2)...p(x3|y,x1,x2,...x49999)=p(x1|y)p(x2|y)p(x3|y)p(x50000|y)=∏i=1np(xi|y)

      以垃圾邮件过滤为例,假设样本是如下所示的向量,每个元素对应词汇表中一个词汇,如果邮件中存在对应词则置为1否则为0;

      那么模型参数是

      ?i|y=1=p(xi=1|y=1)?i|y=0=p(xi=1|y=0)?y=p(y=1)

      ,对于训练集{(x(i),y(i));i=1,2,...,m},可以写出如下联合似然函数:

  3. Laplace平滑

    上面的朴素贝叶斯有一个问题,当有一个此前从未出现的词出现在一个新的email中时,由于:

    从而使

    造成无法判决。

    为避免这种情况,可以使用拉普拉斯平滑法:

    其中k为z可能取值的数量。

  4. 文本分类事件模型(Event models for text classification)

    在的朴素贝叶斯模型是基于多元伯努利分布(x向量元素只能取0或1),其生成一封邮件的过程是

    与不素贝叶斯模型不同的是,多项事件模型(multinomal event model)表示一封邮件的向量x中的元素取自{1,2,…,|V|}, 其中,V为字典长度,这样,一封邮件就被表示成长度等于邮件词汇数的向量。该模型生成邮件的过程是这样的:

    虽然概率形式上和朴素贝叶斯很相似,但是其含义发生了很大的变化,特别是xi|y已经变成了多项式分布。

    参数:

    使用拉普拉斯平滑后的参数:

(斯坦福机器学习笔记)

时间: 2024-10-07 04:13:10

机器学习算法笔记2_1:生成学习算法(Generative Learning algorithms)的相关文章

2020/03/05 生成模型&生成学习(Generative Learning)的流程

在之前的学习2020/01/02 深度学习数学基础学习--朴素贝叶斯中,大概的了解了生成学习的原理,但是对算法实现的 完整流程 不够清晰,所以今天想通过对生成学习回顾,明确一下生成学习的流程框架. 学习资料:斯坦福CS229-note2-Generative Learning algorithms的1.2节 必要的概念 类别先验概率: \(P(c)\) 类条件概率: \(P(\vec x | c)\) ,其中\(\vec x=(x_{1},x_{2},...,x_{m}); m为属性\),\(\

生成学习算法

生成学习算法引入 目前为止,我们主要讲解了条件概率模型p(y|x,θ)的学习算法.接下来,我们将讨论其他的学习算法.接下来举个例子,比如现在遇到一个分类问题,基于一些特征来判断一个动物是大象 (y = 1) 还是小狗 (y = 0).基于给定的数据集,我们可以采用logistic回归或者感知器学习的方法来寻找一条直线(称之为决策边界)把大象和小狗分割开割开来.之后预测新的动物时,只要判断它在决策边界的哪一边就可以预测其所属分类. 现在有另外一种方法.首先是查看大象的数据,然后建立一个什么是大象的

(笔记)斯坦福机器学习第五讲--生成学习算法

 本讲内容 1. Generative learning algorithms(生成学习算法) 2. GDA(高斯判别分析) 3. Naive Bayes(朴素贝叶斯) 4. Laplace Smoothing(拉普拉斯平滑) 1.生成学习算法与判别学习算法 判别学习算法:直接学习  或者学习一个假设  直接输出0或者1.logistic回归是判别学习算法的一个例子. 生成学习算法:对  建模,即在给定所属的类别的情况下,对特征出现的概率建模.出于技术上的考虑,也会对  建模.   根据贝叶斯公

Stanford机器学习[第五讲]-生成学习算法

本课内容: 生成学习算法的介绍: 第一个典型的生成学习算法--高斯判别分析: 生成学习算法与之前的判别学习算法的对比: 朴素贝叶斯算法, Laplace平滑. 1.生成学习算法 学习算法分为两种:一种是判别学习算法(Discriminative Learning Algorithm),简称DLA,另一种是生成学习算法(Generative Learning Algorithm),简称GLA. DLA通过建立输入空间X与输出标注{1, 0}间的映射关系学习得到p(y|x).而GLA首先确定p(x|

生成学习算法(Generative Learning algorithms)

一:引言 在前面我们谈论到的算法都是在给定x的情况下直接对p(y|x;Θ)进行建模.例如,逻辑回归利用hθ(x) = g(θTx)对p(y|x;Θ)建模. 现在考虑这样一个分类问题,我们想根据一些特征来区别动物是大象(y=1)还是狗(y=0).给定了这样一个训练集,逻辑回归或感知机算法要做的就是去找到一个决策边界,将大象和狗的样本分开来.但是如果换个思路,首先根据大象的特征来学习出一个大象的模型,然后根据狗的特征学习出狗的模型,最后对于一个新的样本,提取它的特征先放到大象的模型中求得是大象的概率

分类和逻辑回归(Classification and logistic regression),广义线性模型(Generalized Linear Models) ,生成学习算法(Generative Learning algorithms)

分类和逻辑回归(Classification and logistic regression) http://www.cnblogs.com/czdbest/p/5768467.html 广义线性模型(Generalized Linear Models) http://www.cnblogs.com/czdbest/p/5769326.html 生成学习算法(Generative Learning algorithms) http://www.cnblogs.com/czdbest/p/5771

Stanford大学机器学习公开课(五):生成学习算法、高斯判别、朴素贝叶斯

(一)生成学习算法 在线性回归和Logistic回归这种类型的学习算法中我们探讨的模型都是p(y|x;θ),即给定x的情况探讨y的条件概率分布.如二分类问题,不管是感知器算法还是逻辑回归算法,都是在解空间中寻找一条直线从而把两种类别的样例分开,对于新的样例,只要判断在直线的哪一侧即可:这种直接对问题求解的方法可以称为判别学习方法. 而生成学习算法则是对两个类别分别进行建模,用新的样例去匹配两个模板,匹配度较高的作为新样例的类别,比如分辨大象(y=1)和狗(y=0),首先,观察大象,然后建立一个大

机器学习-斯坦福:学习笔记5-生成学习算法

生成学习算法 本次课程大纲: 1. 生成学习算法 2. 高斯判别分析(GDA,Gaussian Discriminant Analysis) -          高斯分布(简要) -          对比生成学习算法&判别学习算法(简要) 3. 朴素贝叶斯 4. Laplace平滑 复习: 分类算法:给出一个训练集,若使用logistic回归算法,其工作方式是观察这组数据,尝试找到一条直线将图中不同的类分开,如下图. 之前讲的都是判别学习算法,本课介绍一种不同的算法:生成学习算法. 1. 生

【cs229-Lecture5】生成学习算法:1)高斯判别分析(GDA);2)朴素贝叶斯(NB)

参考: cs229讲义 机器学习(一):生成学习算法Generative Learning algorithms:http://www.cnblogs.com/zjgtan/archive/2013/06/08/3127490.html 首先,简单比较一下前几节课讲的判别学习算法(Discriminative Learning Algorithm)和本节课讲的生成学习算法(Generative Learning Algorithm)的区别. eg:问题:Consider a classi?cat