生成模型之高斯鉴别分析
2014-04-06 12:17
162 查看
线性回归中,我们假设Y满足以sita*X为均值的高斯分布。也就是假设P(Y|X)~N(sita*X,yita)。这种假设拟合P(Y|X)的方法我们称为判别法。
有这么一种方法,尝试去假设X的分布情况,也就是假设拟合P(X|Y)。这就是生成模型。
使用生成模型,得到拟合分布P(X|Y)之后,我们再使用bays规则,求得某个新样本属于某个标签的概率:
然后,取其中概率最大的类作为分类结果:
高斯分布是熟知的自然分布。我们用多变量的高斯分布,来假设样本特征满足这样的分布,生成高斯鉴别分析模型。
所谓的多变量高斯分布如下:
其中,sigma表示方差矩阵,u表示均值向量。也就是假设X满足分布:
简单的二维高斯标准模型如下,其中u=0,sigma=I;
现在考虑一个分类问题,x为输入特征,y为标签。我们假设x属于多变量高斯分布,y属于伯努利分布,那么有:
进而可以写成:
然后我们要写出其最大释然函数。值得注意的是,现在的释然函数是P(X,Y),而不是之前线性回归的P(Y|X)。
最大化释然函数,得到参数如下:
我们可以把分布图画出,如下:
上如中,两个高斯分布拟合x,从而得出一条直线来划分两类样本。
高斯鉴别模型与logistic回归有着有趣的联系。如果我们用概率的知识,写出P(Y=1|X)的概率模型,会得到:
与logistic回归有着相同的形式。也就是说,高斯鉴别模型与logistic回归是对同一个模型的不同角度描述。
区别:
有这样的结论:如果P(X|Y)属于高斯分布,那么P(Y|X)会属于logistic分布;但反之不成立。
也就是说,高斯分布比logistic有更强的约束,是一种被包含的关系。
如果原分布就是高斯分布,那么高斯鉴别模型能更好地拟合数据;
而有许多其他的分布,最终也能得到logistic相同的形式,如泊松分布等等。也就是logistic回归对不正确的分布假设有更好的鲁棒性。如果原分布不是高斯,那么我们用logistic分布照样能很好地拟合数据。
结论:logistic回归有更广泛的适用性。
上述许多图来自斯坦福的讲义,接下来用matlab实现:
以(8,4),(4,8)为中心,方差为1,构建两类正态分布的样本,如下:
协方差矩阵为:
0.99 -0.04
-0.04 1.13
取P(X|Y=1)=P(X|Y=0)得到分界面:
Ax+By=C;
其中:
A = -5.7206
B = 7.4201
C = 9.9559
画出图,如下:
有这么一种方法,尝试去假设X的分布情况,也就是假设拟合P(X|Y)。这就是生成模型。
使用生成模型,得到拟合分布P(X|Y)之后,我们再使用bays规则,求得某个新样本属于某个标签的概率:
然后,取其中概率最大的类作为分类结果:
高斯鉴别分析
高斯分布是熟知的自然分布。我们用多变量的高斯分布,来假设样本特征满足这样的分布,生成高斯鉴别分析模型。所谓的多变量高斯分布如下:
其中,sigma表示方差矩阵,u表示均值向量。也就是假设X满足分布:
简单的二维高斯标准模型如下,其中u=0,sigma=I;
现在考虑一个分类问题,x为输入特征,y为标签。我们假设x属于多变量高斯分布,y属于伯努利分布,那么有:
进而可以写成:
然后我们要写出其最大释然函数。值得注意的是,现在的释然函数是P(X,Y),而不是之前线性回归的P(Y|X)。
最大化释然函数,得到参数如下:
我们可以把分布图画出,如下:
上如中,两个高斯分布拟合x,从而得出一条直线来划分两类样本。
高斯鉴别模型与logistic回归的关系
高斯鉴别模型与logistic回归有着有趣的联系。如果我们用概率的知识,写出P(Y=1|X)的概率模型,会得到:与logistic回归有着相同的形式。也就是说,高斯鉴别模型与logistic回归是对同一个模型的不同角度描述。
区别:
有这样的结论:如果P(X|Y)属于高斯分布,那么P(Y|X)会属于logistic分布;但反之不成立。
也就是说,高斯分布比logistic有更强的约束,是一种被包含的关系。
如果原分布就是高斯分布,那么高斯鉴别模型能更好地拟合数据;
而有许多其他的分布,最终也能得到logistic相同的形式,如泊松分布等等。也就是logistic回归对不正确的分布假设有更好的鲁棒性。如果原分布不是高斯,那么我们用logistic分布照样能很好地拟合数据。
结论:logistic回归有更广泛的适用性。
Matlab实现
上述许多图来自斯坦福的讲义,接下来用matlab实现:以(8,4),(4,8)为中心,方差为1,构建两类正态分布的样本,如下:
Matlab得到样本分布的拟合参数:
clear; clc; X1(1,:)=random('norm',8,1,[1,100]); X1(2,:)=random('norm',4,1,[1,100]); Y1=zeros(1,100); plot(X1(1,:),X1(2,:),'+'); hold on; X2(1,:)=random('norm',4,1,[1,100]); X2(2,:)=random('norm',8,1,[1,100]); Y2=ones(1,100); plot(X2(1,:),X2(2,:),'*'); u0=mean(X1,2); u1=mean(X2,2); for i=1:100 X1(:,i)=X1(:,i)-u0; X2(:,i)=X2(:,i)-u1; end X=[X1,X2]; sigma=1/(200)*X*X'; a=sigma'*u1-sigma'*u0; b=u1'*sigma'-u0'*sigma'; c=u1'*sigma'*u1-u0'*sigma'*u0; A=a(1)+b(1); B=a(2)+b(2); C=c; A B C x=0:12; y=-(A.*x-C)/B; hold on; plot(x,y);
结果:
拟合得到中心:(3.985,7.985),(4.006,8.081)协方差矩阵为:
0.99 -0.04
-0.04 1.13
取P(X|Y=1)=P(X|Y=0)得到分界面:
Ax+By=C;
其中:
A = -5.7206
B = 7.4201
C = 9.9559
画出图,如下:
相关文章推荐
- 生成模型、高斯判别分析、朴素贝叶斯——斯坦福CS229机器学习个人总结(二)
- 生成学习算法、高斯判别分析与朴素贝叶斯模型
- 生成模型中的高斯判别分析和朴素贝叶斯
- 生成学习算法之高斯判别分析模型
- 分类-3-生成学习-2-高斯判别分析、协方差
- 生成学习算法.高斯判别分析(GDA).GDA与Logistic模型
- [置顶] 生成学习算法、高斯判别分析、朴素贝叶斯、Laplace平滑——斯坦福ML公开课笔记5
- EF自动生成的模型edmx代码分析
- QEMU内存管理之生成FlatView内存拓扑模型过程分析(基于QEMU2.0.0)
- 深入浅出机器学习之生成模型,高斯判别
- 『科学计算』高斯判别分析模型实现
- 机器学习笔记五 - 生成学习算法、高斯判别分析、朴素贝叶斯、拉普拉斯平滑
- BZOJ 2467 浅谈不看mod高斯消元惨痛教训及基环树生成树性质分析
- 【原创】有关Silverlight中自动生成的类中 没有WCF层edmx模型新加入的对象 原因分析。
- 【EF 2】浅谈ADO数据模型生成串(二):数据库连接串分析
- 【EF 2】浅谈ADO数据模型生成串(二):数据库连接串分析
- 机器学习第四篇(stanford大学公开课学习笔记) —生成型学习算法之高斯判别分析模型和朴素贝叶斯方法
- EF自动生成的模型edmx代码分析
- Entity Framework自动生成的模型edmx文件代码分析
- 机器学习(八):CS229ML课程笔记(4)——生成学习,高斯判别分析,朴素贝叶斯