广义线性模型(Generalized Linear Models, GLM)

article/2025/8/19 18:07:17

  上一篇博客中我们说到线性回归和逻辑回归之间隐隐约约好像有什么关系,到底是什么关系呢?我们就来探讨一下吧。(这一篇数学推导占了大多数,可能看起来会略有枯燥,但这本身就是一个把之前算法统一起来的抽象模型,从一个更高的角度给出了一个更具泛化能力的方法,还是很有意义的。)

1. 指数分布族

  首先,我们先来定义指数分布族(exponential family),如果一类分布可以写成如下的形式,那么它就是属于指数分布族的:

p(y;η)=b(y)exp(ηTT(y)a(η))

这里 η 叫做分布的 自然参数(natural parameter),或者叫 标准参数(canonical parameter);T(y)是 充分统计量( sufficient statistic),对于我们考虑的大多数分布, T(y)=y ;然后 a(η) 叫做 log partition function(不会翻译,就强不翻了。。。)。 ea(η) 实际上是一个标准化的常数,用来保证这个分布的和为1。
  这个指数分布族是何方神圣呢?为什么要先讲它呢?因为我们前面讲过的伯努利分布和高斯分布都可以归为指数分布族的一种。什么?这两个长得毫不相关的分布可以归为一起吗?我的天呐,这么神奇吗?(小岳岳脸)哈哈,是的!下面我们就来说一说这是怎么回事。
  伯努利分布就是我们前面讲的y只能取0和1时的情况,它就可以变成指数分布族的形式,我们试一试:
这里写图片描述
  这里,我们选择自然参数 η=log(ϕ/(1ϕ)) ,诶,有个很有趣的事情:如果我们用 η 表示 ϕ ,我们可以得到 ϕ=1/(1+eη) ,是不是很眼熟?这不就是sigmoid function吗?没错!更神奇的还在后面呢。现在我们把伯努利分布写成了指数分布族的形式。什么?不是很明显?它们的对应关系是这样的:
   这里写图片描述
  好,我们再来说高斯分布。前面我们说了,高斯分布的 σ2 对模型的结果是没有影响的那我们就干脆令它为1好了(其实如果我们把它当做变量,依然行的通,只是得到的 η 将会是二维的)。高斯分布也写成指数分布族的形式,推导是这样的:
   这里写图片描述
  它与指数分布族的对应关系为:
   这里写图片描述
  上面我们展示了伯努利和高斯分布,实际上,还有multinomial(后面将会谈到),泊松分布,gamma和指数分布,beta和狄里克雷分布等等都是属于指数分布族的。怎么样,这个广义线性模型还是有两下子的的,原来我们前面讨论的分类都可以统一为指数分布族的形式。但这还不够,我们怎么从指数分布族中推出我们想要的东西呢?下面我们就来看一看怎样通过构造广义线性模型来解决实际问题。

2. 构造GLMs

  现在我们来把之前的分类问题扩展一下。生活中的很多事物肯定不止一个种类,我们来考虑多类别的分类问题,讨论一下如何利用GLMs来解决。
  首先,和之前一样,我们构造模型都是有一定的条件的。我们先来作三个假设:
  1. y|x;θExpoentialFamily(η) 。这当然是必须的,我们就是要用指数分布族来解决问题嘛。
  2. 我们的目标是给定x,预测T(y)期望。比如我们刚才说了,大多数情况下T(y)=y,而在逻辑回归问题中,我们要预测的 hθ=p(y=1|x;θ)=0p(y=0|x;θ)+1(y=1|x;θ)=E[y|x;θ]
  3. 自然参数 η 满足 η=θTx
  如果我们的问题需要满足这三个假设,那么我们就可以通过构造广义线性模型来解决。线性回归和逻辑回归都是满足这三个假设的,就可以使用这个模型。

2.1 普通的最小平方(Ordinary Least Squares)问题

  在线性回归的最小平方问题中,目标变量y(在GLM的术语中也称作响应变量(response variable))是连续的,给定x,y的条件分布符合我们刚刚讨论过的高斯分布,均值为 μ 。套用前面GLM的推导,我们有 μ=η 。所以,我们可以得到线性回归的假设函数就是:
这里写图片描述
这样,我们就从广义线性模型的角度得到了线性回归的解决方案。

2.2 逻辑回归

  在二元分类问题中,给定x,y服从我们刚才讨论的伯努利分布,均值为 ϕ 。同样利用前面的推导我们可以得到逻辑回归的假设函数就是:
这里写图片描述
最后一个等号是由前面第3个假设的到的。同样的,我们也从广义线性模型的角度得到了逻辑回归的解决方案。这里,我们就知道了为什么在逻辑回归中我们的假设函数要用sigmoid function了吧,并不是凭空才出来的喔。
  这里我们介绍几个术语。 g(η)=E[T(y);η] 被称为canonical response function,它的反函数 g1 ,被称为canonical link function

2.3 Softmax Regression

  好了,铺垫了这么久,我们终于可以考虑我们的多类别分类的问题了,我们首先用multinomial distribution来给它建立模型。假设我们的类别 y{1,2,,k} 。我们可以用一个k维的向量来表示分类结果,当y=i时,向量的第i个元素为1,其它均为零。但这样做是存在冗余的,因为如果我们知道了前k-1个元素,那么第k个其实就已经确定了,也就是说,这k个元素不独立。因此我们可以只用k-1维向量来表示,每一维对应的参数为 ϕi 。为了方便,我们也使用 ϕk ,但应该记住,它并不是一个真正的参数,它只表示 ϕk=1k1i=1ϕi 。这样我们可以定义:
这里写图片描述
注意,这里就和前面T(y)=y不一样了,这里的T(y)是一个向量了。我们用 (T(y))i 表示T(y)的第i个元素。
  为了表示方便,我们用符号 1{} 表示判断,{}中的表达式为真时输出1,为假时输出0。于是我们有 (T(y))i=1{y=i} ,它表示只有当y=i时 (T(y))i 才不为零。另外,由于 ϕi 表示第i个类别的概率,我们有 E[(T(y))i]=P(y=i)=ϕi
  好,我们仿照前面二元分类的过程,来说明这个multinomial也是属于指数分布族的:
  这里写图片描述
  这里,
  这里写图片描述
  我们可以看到:
  这里写图片描述
  当i=0时上式为零。我们的目的是为了得到参数 ϕ ,于是
  这里写图片描述
  最后我们终于得到:
  这里写图片描述
  我们再利用假设3,就可以得到参数 ϕ 了:
  这里写图片描述
  这个模型就被称为softmax regression,它是逻辑回归在多类别情况下的扩展。综合起来,我们的假设函数的输出为:
  这里写图片描述
  最后就是参数的学习了。我们依然可以使用最大似然的方法来学习 θ ,似然函数为:
  这里写图片描述
  然后使用梯度上升或牛顿方法等来求出使似然函数最大的 θ 值,就大功告成了!
  


http://chatgpt.dhexx.cn/article/kRAH7ena.shtml

相关文章

广义线性模型(Generalized Linear Model)——机器学习

零、前言 对于条件分布(y|x;θ),对于线性回归模型有,而对分类问题有。其实这些分布均是广义线性模型(GLM)的特殊情况。 我们通过定义广义线性模型,可以据此求出拟合函数h(x) 一、指数分布族(Exponential …

广义线性模型和线性回归

广义线性模型(GLM) 首先术语广义线性模型(GLM)通常是指给定连续和/或分类预测变量的连续响应变量的常规线性回归模型。它包括多元线性回归,以及ANOVA和ANCOVA(仅具有固定效果)。形式为 yi〜N&a…

机器学习之广义线性模型

深夜博客在今天开张啦 一年前接触了机器学习,纯属个人兴趣,还没想到要入坑,现在沉迷无法自拔了哈哈哈。好了也不说太多废话了,今天的主题是广义线性模型啦!这篇博客是参考斯坦福cs229 lecture1中的Generalize Linear …

广义线性模型理解

本文纯属个人理解,恳求指正。 广义线性回归能做什么?为什么我们要使用广义线性回归? 这俩天看到了广义线性回归这个概念,百度上面基本是吴恩达的copy版本,知乎上面都是大神写的,表示看完等于没看。 看了p…

广义线性模型1

1.1 Generalized Linear Models[广义线性模型] 线性模型[linear model],也称经典线性模型[classical linear model]或一般线型模型[general linear model,GLM]。广义线性模型[generalized linear model,GENMOD]由Nelder & Wedderburn[19…

R之广义线性模型

R之广义线性模型 一、广义线性模型和glm()函数 结果变量是类别型的。二值变量(比如:是/否、有效/无效、活着/死亡)和多分类变量(比如差/良好/优秀)都显然不是正态分布;结果变量是计数型的。(比…

第5章 广义与一般线性模型

第1章 多元统计分析概述 第2章 多元数据的数学表达 第3章 多元数据的直观表示 第4章 多元相关与回归分析 第5章 广义与一般线性模型 5.1 模型的选择5.2 广义线性模型5.3 一般线性模型 第6章 判别分析及R使用 第7章 聚类分析及R使用 第8章 主成分分析及R使用 第9章 因子分析及…

广义线性模型

今天我来介绍一种在机器学习中应用的比较多的模型,叫做广义线性模型(GLM)。这种模型是把自变量的线性预测 函数当作因变量的估计值。在机器学习中,有很多模型都是基于广义线性模型的,比如传统的线性回归模型&#xff…

广义线性模型(Generalized Linear Model)

转载于:广义线性模型(Generalized Linear Model) - 肉鹅阿笨 - 博客园 (cnblogs.com) 1.指数分布族 我们在建模的时候,关心的目标变量Y可能服从很多种分布。像线性回归,我们会假设目标变量Y服从正态分布,而…

R|广义线性模型知识点归纳

本文分为两个部分: (1)广义线性模型的分类及其运用场景; (2) 相关R代码。需要说明的是,参考资料是上课课件,根据本人理解整理,如果有不对的地方,欢迎探讨! 目录 引言 1. 广义线性模型 (1)二…

IOS CoreData 多表查询(上)

在网上搜索了下,发现只有部分讲解CoreData关系的,但对多表之间的查询并没有相应的介绍。 因此操作自己写了个。 先创建几个表。 1、部门表:department dp_id Integer primary key dp_deptname varchar(20) //使用coredata实体创建时用…

iOS CoreData详解(五)多线程

原创blog,转载请注明出处 blog.csdn.net/hello_hwc 欢迎关注我的iOS SDK详解专栏,这里有很多基础的文章 http://blog.csdn.net/column/details/huangwenchen-ios-sdk.html 前言:很多小的App只需要一个ManagedContext在主线程就可以了&…

CoreData在Xcode 8 中的使用

如需转载,请注明出处 在Xode8之前,CoreData的使用是非常方便的,先创建一个DataModel , ,然后创建NSManagedObject SubClass,都是一个界面上操作,非常方便,但是更新过Xcode 8后,CoreData的创建需要进行一…

CoreData

Core Data数据持久化是对SQLite的一个升级,它是ios集成的,在说Core Data之前,我们先说说在CoreData中使用的几个类。(1)NSManagedObjectModel(被管理的对象模型) 相当于实体,不过它包含 了实体间的关系(2)N…

Core Data详解

转载于:程序媛与程序猿 7.1. 什么是Core Data Core Data是一个Cocoa框架,用于为管理对象图提供基础实现,以及为多种文件格式的持久化提供支持。管理对象图包含的工作如撤销(undo)和重做(redo&#xff…

Coredata的版本升级

在开发的后期,可能因为完善和修复功能,需要对Coredata数据库表进行修改,这样就需要对CoreData进行版本升级。 比如你修改了DB字段以后,用户在旧版本上升级为新版本时会crash. 因为升级只升级了应用app,没有升级目录下的数据据db文…

在建好的项目中加入CoreData

这几天在做一个ios的小项目,项目中需要对数据进行基本的增删改查操作。于是就想用一把CoreData。但在创建项目初期,没有包含进CoreData。于是就在已建好的项目中加入CoreData。由于第一次用CoreData,各方面还不是很熟悉,在网上爬文…

CoreData的简单使用

简介 Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象。在此数据操作期间,我们不需要编写任何…

数据持久化(五)之CoreData

简单的说,Core Data就是可以存储到磁盘的对象图,[...]Core Data可以帮我们做很多任务作.它可以作为软件的整个模型层。它不仅仅在磁盘上存储数据,也把我们需要的数据对象读取到内存中。 ——Marcus Zarra, Core Data Core Data是Mac OS X中Cocoa API的一部分&#…

coredata 详解

原文:Core Data Overview,感谢CocoaChina翻译组帮忙校对。 Core Data可能是OS X和iOS里面最容易被误解的框架之一了,为了帮助大家理解,我们将快速的研究Core Data,让大家对它有一个初步的了解,对于想要正确…