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

http://blog.csdn.net/v1_vivian/article/details/52190572

《Andrew Ng 机器学习笔记》这一系列文章文章是我再观看Andrew Ng的Stanford公开课之后自己整理的一些笔记,除了整理出课件中的主要知识点,另外还有一些自己对课件内容的理解。同时也参考了很多优秀博文,希望大家共同讨论,共同进步。

网易公开课地址:http://open.163.com/special/opencourse/machinelearning.html


本篇博文涉及课程五:生成学习算法


主要内容有:

(1)生成学习算法

2)高斯判别分析(GDA)



生成学习算法


在线性回归和Logistic回归这些学习算法中我们探讨的模型都是p(y|x;θ),即给定x的情况探讨y的条件概率分布。
例如二分类问题,我们之前的都是在解空间中寻找一条直线,从而把两种类别的样例分开,对于新的样例,只要判断在直线的哪一侧即可;这种直接对问题求解的方法可以称为判别学习方法

生成学习算法则是先对两个类别分别进行建模,然后用新的样例去匹配两个模板,匹配度较高的作为新样例的类别

也就是说,判别学习方法是直接对p(y|x)进行建模或者直接学习输入空间到输出空间的映射关系,其中,x是某类样例的特征,y是某类样例的分类标记。
而生成学习算法是对p(x|y)(条件概率)和p(y)(先验概率)进行建模,然后按照贝叶斯法则求出后验概率p(y|x):
                                                         
使得后验概率最大的类别y即是新样例的预测分类


事情还没有发生,要求这件事情发生的可能性的大小,是先验概率
事情已经发生,要求这件事情发生的原因是由某个因素引起的可能性的大小,是后验概率



高斯判别分析(GDA)

高斯判别分析是一种生成学习算法,在该模型中,我们假设p(x|y)服从混合正态分布。通过训练确定参数值,新样本通过已建立的模型计算出属于不同类别的概率,我们选取概率最大的即为样本所属的类。


混合正态分布

混合正态分布也叫做混合高斯分布,是正态分布在多维变量下的扩展。它的期望和协方差矩阵为多元的:期望,协方差(n为多维变量的向量长度),协方差具有对称性和正定性(是一个正定矩阵)。混合正态分布:


混合正态分布的概率密度函数为(其中,为期望,表示行列式的值):



对于服从混合正态分布的随机变量x,均值的计算公式为:

                                                           


协方差由协方差函数Cov(X)得到,计算公式如下:


                                                                             



用图形描述二维高斯分布的先关性质:


以上三个图形的期望都为:从左至右,三幅图的协方差分别为:




以上三个图形的期望都为:,从左至右,三幅图的协方差分别的:

           

可以看到随着矩阵的逆对角线数值增加,图形延方向进行压缩。即图形在这个方向更加“扁”。


从等高线来看,三幅图分别为:


继续调整协方差,三幅图的协方差分别为:

                                          

从等高线来看,三幅图分别为:          

                                                   



                                  

以上三幅图保持协方差不变,从左至右,期望值分别为

可以看出,随着期望的改变,图形在平面上平移,而其他特性保持不变。


高斯判别分析模型

高斯判别分析模型针对的是输入的特征值x是连续值的分类问题

为了简化模型,假设特征值为二分类,分类结果服从0-1分布。

模型基于这样的假设:通常模型有两个不同的期望,而有一个相同的协方差。



他们的概率密度为(其中,待估计的参数为):





该模型的极大似然对数方程为:

                                                      

                                                           

各参数的极大似然估计如下:





在对计算完成之后,将新的样本x带入进建立好的模型中,计算出,选取概率更大的结果为正确的分类。


二维GDA举例:

                                                      

这幅图可以看出,我们用两个二维高斯分布分别对两类数据进行拟合他们使用相同的协方差矩阵;但却有不同的均值;在直线所示的部分,p(y=1|x)=p(y=0|x)=0.5。

GDA与Logistic模型


在GDA中,我们使用p(x|y)p(y)作为p(y|x)的拟合,可以得到:

                                                              


假如我们将视作关于x的函数,该函数可以表示成logistic回归形式其中,可以用以为变量的函数表示。):



GDA的后验分布可以表示成逻辑分布形式的合理性,在此不做证明


举例说明GDA与Logistic模型之间的关系:


假设有一个一维训练集,包含一些正样本和负样本,如下图x轴的叉和圈,设叉为0,圈为1,用GDA对两类样本分别拟合高斯概率密度函数p(x|y=0)和p(x|y=1),如下图的两个钟形曲线。沿x轴遍历样本,在x轴上方画出相应的p(y=1|x)。如选x轴靠左的点,那么它属于1的概率几乎为0,p(y=1|x)=0,两条钟形曲线交点处,属于0或1的概率相同,p(y=1|x)=0.5,x轴靠右的点,输出1的概率几乎为1,p(y=1|x)=1。最终发现,得到的曲线和sigmoid函数曲线很相似。

也就是说,当使用GDA模型时,p(x|y)属于高斯分布,计算p(y|x)时,几乎能得到和logistic回归中使用的sigmiod函数一样的函数,但实际上还是存在本质区别。

实际上,可以证明,不仅仅当先验概率分布服从混合高斯分布时可以推导出逻辑回归模型,当先验概率分布属于指数分布族中的任何一个分布(比如泊松分布)时都可以推导出逻辑回归模型;但,反之则不成立, 如果可表示成logistic回归函数形式,并不代表 p(x|y) 服从指数分布族分布。 也说明了逻辑回归模型在建模上的鲁棒性 当然,如果混合高斯模型的假设是正确的,那么,GDA具有更高的拟合度。基于这些原因在实践中使用logistic回归比使用GDA更普遍。

目前,我们得到了推导逻辑回归模型的两种方法
(1)通过指数分布族来推导
(2)通过生成学习假设先验概率分布的方式进行推导。

那么如何选择GDA与逻辑回归模型呢?
由上面的分析可以知道,GDA比逻辑回归有更多的前置假设。当数据服从或大致服从正态分布时,
GDA会具有更高的拟合度 ,因为GDA利用了更多的信息构建模型。但是当数据不服从正态分布时,那么逻辑回归更有效,因为它做出更少的假设,构建的模型更加强壮,更加具有鲁棒性。生成学习还有另外的一个好处,就是可以使用比判别学习模型使用更少的数据构建出强壮的模型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ModuleNotFoundError: No module named 'jax.experimental.gda_serialization' 错误表示在你的Python环境中找不到名为'jax.experimental.gda_serialization'的模块。根据引用,setup.py文件主要用于检查环境和拷贝包的源码到Python安装目录中。而根据引用,一些可直接调用的包,如pip、virtualenv、scrapy、ipython等,会在Python安装目录下的Scripts目录中创建可执行文件。所以,要解决这个错误,你可以尝试以下几种方法: 1. 首先,确保你已经安装了最新版本的jax和jaxlib。你可以使用pip或者conda来安装它们。例如,使用pip安装可以执行以下命令:pip install jax jaxlib。 2. 如果你已经安装了最新版本的jax和jaxlib,但仍然遇到了该错误,那么可能是因为你的Python环境中缺少其他依赖项。你可以根据错误信息中提到的'module named'后面的模块名,在命令行中尝试手动安装缺少的模块。例如,执行以下命令来安装'jax.experimental.gda_serialization'模块:pip install jax-experimental。 3. 如果以上方法都不起作用,那可能是由于特殊情况导致的。比如,根据引用中提到的特例,对于某些包,可能需要使用特定的安装命令来安装。你可以尝试执行一些特定的安装命令,如pip3 install、pip install、pysetup安装等,根据引用中提到的示例来安装相关的模块。 希望以上方法能够帮助你解决该错误。如果问题仍然存在,请提供更多的详细信息,以便我能够更好地帮助你。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [anaconda中pip无法安装的3种解决方案:No module named ‘***‘ + setup.py](https://blog.csdn.net/ResumeProject/article/details/119645187)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值