高斯判别分析(Gaussian discriminative analysis )是一个较为直观的模型,基本的假设是我们得到的数据是独立同分布的(IID),虽然在实际中这种假设很难达到,但有时候拥有了好的假设可以得到较好的结果。在Andrew Ng大神的CS229 Lecture notes中有一个例子:假设我们要对大象和狗分类,回归模型和感知机模型是在两类数据之间找到一个decision boundary,通过这个decision boundary来区分大象和狗。高斯判别分析提供了另外一种思路:首先我们观察大象,对大象建立一个模型来描述他的特点;在观察狗,并建立相应的模型来描述狗。当一个新的狗或者象过来时,我们首先带入象模型和狗模型,最后决定新来的的动物的类别。

  这是一种软分类的思路,所谓软分类就是我们对一个样本决定它的类别时有一个可信度的概念,比方说当数据位于decision boundary附近的时候,我们将数据硬分为0或者1类(在这里是象和狗类)有时是不合理的,因为这是类别的不确定性更大。软分类的思路在高斯混合模型(GMM)中也有体现(Anil K. Jain在08年在TPAMI发了一篇文章是关于如何利用GMM来分类,小菜今年才想到这个思路,只能follow人家了)。我感觉这一点是高斯判别分析相对于其他模型的优越之处。

以下是干货

我们处理的数据往往是多维的,因此高斯分布也应该是多维的。一维的正态分布为

那么,n维正态分布表示为

这里;后边的表示参数,该式表示以μ为均值,Σ为协方差的n维正态分布。

将n为高斯模型应用到监督学习中,假设输入数据为x,类别为y(0或者1),那么对应二类的分类问题有

这就是经典的高斯判别分析模型,更为直观化的表述为

p(y)是满足伯努利概型(就是独立实验),第二个式子指的是当类别为y=0是,x的分布为一个高斯分布,第三个式子与第二个式子。上式中有四个参数(两个高斯分布用了同一个方差),实际上感觉5个的话更精确。

剩下的问题就是如何对这些参数进行估计了,用极大似然估计的观点本人没有做出来(才疏学浅),可以用下面直观地思路求解:每个数据的类别已经知道了,并且每一组别的数据分布都是高斯的,我们可以直接用高斯分布的参数估计来求解4(或者5)个参数。我们知道高斯分布的均值的估计就是数据的均值,那么

如果两个高斯分布用一个Σ,那么

否则,可以单独求取每个类别的方差,还有一个参数Φ,直接统计点的个数得到

这就是GDA的思路和实现方式,看起来这个模型还是一个较为naive的模型,此模型只能应用于监督学习中,并且数据的分部必须大致是高斯分布的,对于一些奇怪的形状,可能并没有好的分类结果。

上面提到,高斯判别分析是一个软分类器,这就直接体现在数据与类别的分布(或者中心)的“亲近”程度上,至于怎么做,相信都有不同的见解。最主要的是这种基于数据density的方式的思路是很有创新性的。

以下是实现结果

下面给出用MATLAB实现的高判别分析的代码

 1 clc,clear
 2 mu1 = [2 3];
 3 SIGMA1 = [1 0; 0 1];
 4 n1=2;
 5 m1=50;
 6 r1 = mvnrnd(mu1,SIGMA1,m1);
 7
 8 mu2 = [5 5];
 9 SIGMA2 = [1 0; 0 1];
10 n2=2;
11 m2=100;
12 r2 = mvnrnd(mu2,SIGMA2,m2);
13
14 x=[r1;r2];
15 y=[zeros(m1,1);ones(m2,1)];
16
17 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18 % plot the datas
19 figure
20 pos = find(y);
21 neg = find(y == 0);
22 plot(x(pos, 1), x(pos, 2), '+')
23 hold on
24 plot(x(neg, 1), x(neg, 2), 'o')
25 hold on
26 xlabel('axis X')
27 ylabel('axis Y')
28
29
30 %%%%%%%%%%%%%%%%%%%
31 sigma1 = cov(x(neg,:));
32 sigma2 = cov(x(pos,:));
33 mu1=mean(x(neg,:));
34 mu2=mean(x(pos,:));
35
36 [x1 y1]=meshgrid(linspace(0,10,100)',linspace(0,10,100)');
37
38
39 X1=[x1(:) y1(:)];
40 z1=mvnpdf(X1,mu1,sigma1);
41 contour(x1,y1,reshape(z1,100,100),8);
42 hold on;
43
44 z2=mvnpdf(X1,mu2,sigma2);
45 contour(x1,y1,reshape(z2,100,100),8);
46 hold off; 

原创文章,转载请注明出处,谢谢!

转载于:https://www.cnblogs.com/taokongcn/p/4117413.html

[监督学习]GDA 高斯判别分析相关推荐

  1. 线性分类(四)-- 高斯判别分析 GDA

    高斯判别分析(Gaussian Discriminant analysis,GDA),与之前的线性回归和Logistic回归从方法上讲有很大的不同,GDA是一种生成学习算法(Generative Le ...

  2. 高斯判别分析(GDA)和朴素贝叶斯(NB)

    生成模型和判别模型 监督学习一般学习的是一个决策函数y=f(x)y=f(x)y=f(x)或者是条件概率分布p(y∣x)p(y|x)p(y∣x). 判别模型直接用数据学习这个函数或分布,例如Linear ...

  3. 高斯判别分析GDA的简单python实现

    参考文章:https://blog.csdn.net/qq_30091945/article/details/81508055 作为机器学习的小白,最近将GDA给简单实现了,有很多不足的地方,欢迎大家 ...

  4. 高斯判别分析 matlab,机器学习导论(5)–GDA高斯判别模型

    引言 之前介绍过分类方法使用最小二乘法或者Logistic回归实现分类,通过直接给定相应的预测函数实现数据的划分,例如预测函数在二分类中的实现就是一条直线之类.接下来对于给定的测试样本特征X,直接判定 ...

  5. 生成学习算法.高斯判别分析(GDA).GDA与Logistic模型

    http://blog.csdn.net/v1_vivian/article/details/52190572 <Andrew Ng 机器学习笔记>这一系列文章文章是我再观看Andrew ...

  6. 高斯判别分析- GDA原理简介

    GDA是生成学习方法的一个典型代表. 判别学习方法是直接对P(y | x)进行建模,也就是说生成学习方法学到的是P(y | x)这样一个条件概率:另外一种判别学习方法是直接输出hθ(x)hθ(x)h_ ...

  7. 经典机器学习算法:高斯判别分析GDA

    高斯判别分析介绍 高斯判别分析 GDA GDA模型 模型求解 具体计算 高斯判别分析 GDA GDA:Guassian Discrimant Analysis 高斯判别分析属于两分类.软分类.概率生成 ...

  8. 高斯判别分析(GDA)——含python代码

    基本数学知识 多元正态分布   多元正态分布是正态分布在多维变量下的扩展,它的参数是一个均值向量(mean(mean(mean vector)μvector)μvector)\mu和协方差矩阵(cov ...

  9. Gaussian Discriminative Analysis 高斯判别分析 GDA

    Gaussian Discriminative Analysis 高斯判别分析 GDA Multidimensional Gaussian Model z ∼ N ( μ ⃗ , Σ ) z \sim ...

最新文章

  1. BeginInvoke与EndInvoke方法解决多线程接收委托返回值问题
  2. Docker源码分析(二):Docker Client创建与命令执行
  3. JZOJ 3813. 【NOIP2014模拟9.7】我要的幸福
  4. Hibernate-HQL
  5. JFreeChart项目实例
  6. (素材源代码) 猫猫学iOS 之UIDynamic重力、弹性碰撞吸附等现象牛逼Demo
  7. 微信小程序通过getUserProfile和wx.login获取后端的token
  8. 叮咚!你有一份来自明源云的圣诞邀约
  9. 100条经典C笔试题
  10. Netflix工程总监眼中的分类算法:深度学习优先级最低
  11. 无限极分类php简单,创建无限极分类树型结构的简单方法
  12. 使用migration创建表时,出错的解决方法
  13. 直接拿来用!最火的iOS开源项目(一~三)
  14. 工信部同意中国互联网信息中心设立域名根服务器及运行机构
  15. 代理记账和专职会计哪个更适合企业?
  16. 中职学校计算机课程标准,中等职业学校课程标准发布
  17. kubectl edit 与kubectl rollout
  18. Excel 常用技巧目录
  19. 小学计算机走进智慧城堡教案,重庆大学出版社四年级上册信息技术教案设计.docx...
  20. 用Python实现序列帧播放器

热门文章

  1. 2.MySQL索引优化
  2. LeetCode 1061. Lexicographically Smallest Equivalent String
  3. http://www.cnblogs.com/yungboy/archive/2010/05/28/1746376.html
  4. 离开,是为了新的开始
  5. JAVA实现把PPT转PDF的方法
  6. linux备份文件到ftp上,Linux如何利用ssh传送文件至FTP空间进行备份
  7. 计算机将程序和数据同时存放在机器哪部分,计算机一级考试单选题
  8. php redis hset过期时间,详解Redis中数据过期策略
  9. 计算机系技能比赛黑板报,关于技能比武主题的黑板报
  10. 求sin(x)的近似值