机器学习之广义线性模型

article/2025/8/19 18:06:12

深夜博客在今天开张啦
一年前接触了机器学习,纯属个人兴趣,还没想到要入坑,现在沉迷无法自拔了哈哈哈。好了也不说太多废话了,今天的主题是广义线性模型啦!这篇博客是参考斯坦福cs229 lecture1中的Generalize Linear Models(GLM)及加上自己的理解,博主是个new comer,欢迎大家一起交流学习哦
在解释广义线性模型之前,有必要回顾一下线性回归(Linear Regression)和逻辑回归(Logistic Regression)。

线性回归–Linear Regression
线性回归模型可应用与监督学习(supervised learning)预测问题,如房价预测,疾病预测…….
对线性回归的直观解释: 找到一个线性函数能尽可能拟合已给出的点,如图
找到一个线性函数能尽可能拟合已给出的点

理论解释:
假设

X=[x1,x2,x3,.......,xm]T X = [ x 1 , x 2 , x 3 , . . . . . . . , x m ] T
xi x i 代表影响结果的一个特征(feature), y ∈ R
当X与结果y属于线性关系时,即可得到线性回归假设(hypotheses):
hθ(X)=θ1x1+θ2x2+.......+θmxm+b h θ ( X ) = θ 1 x 1 + θ 2 x 2 + . . . . . . . + θ m x m + b ;

写成向量形式即为:
hΘ(X)=ΘTX+b h Θ ( X ) = Θ T X + b

构造损失函数(损失函数就是用来表现预测与实际数据的差距程度):
cost function(损失函数):

J(Θ)=1/2isamples[hΘ(X)y]; J ( Θ ) = 1 / 2 ∑ i s a m p l e s [ h Θ ( X ) − y ] ;

目标即找到一组 Θ=[θ1,θ2,....,θm] Θ = [ θ 1 , θ 2 , . . . . , θ m ] 最小化J(Θ)。所用到的方法是梯度下降(gradient descent),在这里就不具体展开了,详细请看机器学习之梯度下降
在得到Θ向量后,将X_predict代入 hΘ(X)=ΘTX h Θ ( X ) = Θ T X 中即可得到y_predict
Tips: 为什么要用最小二乘法定义损失函数, 戳=> 线性模型概率解释

逻辑回归–Logistic Regression
逻辑回归模型应用于监督学习分类问题,暂且考虑二分类(如0,1分类)问题如
直观解释:得到一条函数将不同类别的分开,如图:
这里写图片描述

理论解释:
同样假设

X=[x1,x2,x3,.......,xm],Θ=[θ1,θ2,θ3,.......θm] X = [ x 1 , x 2 , x 3 , . . . . . . . , x m ] , Θ = [ θ 1 , θ 2 , θ 3 , . . . . . . . θ m ]

定义hypotheses(也就是预测预测结果 y^ y ^ )
hΘ(X)=1/1+exp(ΘTX){hΘ(X)>0.5,hΘ(X)<0.5,set hΘ(X) = 1set hΘ(X) = 0 h Θ ( X ) = 1 / 1 + e x p ( − Θ T X ) { h Θ ( X ) > 0.5 , set  h Θ ( X ) = 1 h Θ ( X ) < 0.5 , set  h Θ ( X ) = 0

cost function:
J(Θ)={log(hΘ(xi)),log(1hΘ(xi)),if yi = 1if yi = 0 J ( Θ ) = { − l o g ( h Θ ( x i ) ) , if  y i = 1 − l o g ( 1 − h Θ ( x i ) ) , if  y i = 0

统一起来即为:
J(Θ)=isamples[yilog(hΘ(xi))+((1yi)log(1hθ(xi))] J ( Θ ) = − ∑ i s a m p l e s [ y i l o g ( h Θ ( x i ) ) + ( ( 1 − y i ) l o g ( 1 − h θ ( x i ) ) ]

同样是用到了梯度下降优化参数,得到优化后的参数 Θ=[θ1,θ2,,θm] Θ = [ θ 1 , θ 2 , … … , θ m ] 后,X_predict代入 hΘ(X) h Θ ( X ) 即可得到该X对应的分类

OK,线性回归和逻辑回归就到此为止了,以上都是直接给出了hypothesis的定义,那么问题就来了,怎么知道那是正确的呢,换句话说,对一个陌生的模型,怎么去定义它的hypothesis?
问题不是很严重,广义线性模型解决了这个问题!

广义线性模型
实际上这两种情况只是广义线性模型的特殊情况,接下来我将解释其他的广义线性家族模型是怎么推到和应用到回归和分类问题中!
对于线性回归和逻辑回归实际上都可以看作是一个(y|X; Θ)的问题 (Tips:“;”表示参数Θ已知)
//对(y|X;Θ)的解释: 在参数Θ固定,给定x情况下,y服从某种概率分布
不同的是:
1. 线性回归中, (y|x;Θ) ∼ N(µ,σ2) N ( µ , σ 2 ) ,
2. 逻辑回归中, (y|x;Θ) ∼ Bernoulli(Φ),
高斯分布,伯努利分布的爸爸是同个人,他的名字叫指数族分布,现在我们就来介绍这个人并看看到底是如何生出演变成高斯分布和伯努利分布的!

指数族分布(Exponential Family)
指数族分布即为广义线性模型的概率分布
指数家族分布可定义为:

p(y;η)=b(y)exp(ηTT(y)a(η)) p ( y ; η ) = b ( y ) e x p ( η T T ( y ) − a ( η ) )

其中:
1. η被称为自然参数(natural parameters)
2. 通常T(y) = y
通过不同的a(η) 和 b(y) , T(y)可将指数家族分布变成不同的概率分布

重点内容
广义线性模型的构造:
引用斯坦福cs229讲义上的原话:
1. y | x;θ ∼ ExponentialFamily(η). I.e., given x and θ, the distribution of y follows some exponential family distribution, with parameter η.
2. Given x, our goal is to predict the expected value of T(y) given x. In most of our examples, we will have T(y) = y, so this means we would like the prediction h(x) output by our learned hypothesis h to satisfy h(x) = E[y|x]. (Note that this assumption is satisfied in the choices for hθ(x) for both logistic regression and linear regression. For instance, in logistic regression, we had hθ(x) = p(y = 1|x;θ) = 0·p(y = 0|x;θ) + 1·p(y = 1|x;θ) = E[y|x;θ].)
3. The natural parameter η and the inputs x are related linearly: η=θTx η = θ T x . (Or, if η is vector-valued, then ηi=θTix η i = θ i T x .)

也就是说,GLM有三个假设:
一: 给定θ和x,(y|x;θ)服从以η为参数的指数族分布;
二. hypothesis hΘ(X)=E[y|x;Θ] h Θ ( X ) = E [ y | x ; Θ ] , 即为该分布的期望值
三. η与X是线性关系, η=θTX η = θ T X ;当且仅当η是向量时,才有 ηi=θTix η i = θ i T x

线性模型的推导(演变成高斯分布):
线性模型中目标变量y(response variable)是连续的,由机器学习线性回归概率解释中可以得到结论:y给定x服从高斯分布 N(µ,σ2),在这里μ可能由x决定;因此我们让指数家族分布设为高斯分布,演算以上广义线性模型构造:

比较目标概率分布函数与指数家族函数,确定参数之间的关系:
因为(y|X ; θ)~ExpFamily(η)~ N(μ,σ2) N ( μ , σ 2 ) 由高斯分布函数可得:

p(y;μ)=12πexp((yμ)2/2)12πexp(y2/2+μyμ2/2)12πexp(y2/2)exp(μyμ2/2) p ( y ; μ ) = 1 2 π e x p ( − ( y − μ ) 2 / 2 ) ⟹ 1 2 π e x p ( − y 2 / 2 + μ y − μ 2 / 2 ) ⟹ 1 2 π e x p ( − y 2 / 2 ) e x p ( μ y − μ 2 / 2 )

与指数分布族函数 P(y;η)=b(y)exp(ηTT(y)a(y)) P ( y ; η ) = b ( y ) e x p ( η T T ( y ) − a ( y ) ) 对比可得
η=μb(y)=12πexp(y2/2)a(y)=μ2/2T(y)=y { η = μ b ( y ) = 1 2 π e x p ( − y 2 / 2 ) a ( y ) = − μ 2 / 2 T ( y ) = y

构造模型:
由于对于服从 (μ,σ2) ( μ , σ 2 ) 的高斯分布,其均值为μ,因此有:
hΘ(X)=E[(y|X;μ)]=μ h Θ ( X ) = E [ ( y | X ; μ ) ] = μ

由以上推理得 η=μ η = μ , 所以有:

hΘ(X)=E[(y|X;μ)]=μ=ηη=ΘTXhθ(X)=θTX h Θ ( X ) = E [ ( y | X ; μ ) ] = μ = η η = Θ T X h θ ( X ) = θ T X

这也正是以上线性回归hypothesis得到的结果,what a surprise!

逻辑回归模型的推导(演变成伯努利分布):
目标概率函数和指数家族函数之间的参数关系:
Logistic Regression二分类服从伯努利(Bernoulli)分布,表示为:
(y|X; θ)~ExpFamily(η)~Bernoulli(Φ), Φ = p(y=1|x;θ)

p(y;Φ)=Φy(1Φ)1y, y0,1exp(log(Φy(1Φ)1y))=exp(logΦy+log(1Φ)1y)exp(ylogΦ+(1y)log(1Φ))=exp(ylogΦ+log(1Φ)ylog(1Φ))exp(ylogΦ1Φ+log(1Φ)) p ( y ; Φ ) = Φ y ( 1 − Φ ) 1 − y , y ∈ 0 , 1 ⟹ e x p ( l o g ( Φ y ( 1 − Φ ) 1 − y ) ) = e x p ( l o g Φ y + l o g ( 1 − Φ ) 1 − y ) ⟹ e x p ( y l o g Φ + ( 1 − y ) l o g ( 1 − Φ ) ) = e x p ( y l o g Φ + l o g ( 1 − Φ ) − y l o g ( 1 − Φ ) ) ⟹ e x p ( y l o g Φ 1 − Φ + l o g ( 1 − Φ ) )

与指数分布族函数 P(y;η)=b(y)exp(ηTT(y)a(y)) P ( y ; η ) = b ( y ) e x p ( η T T ( y ) − a ( y ) ) 对比可得
T(y)=yb(y)=1η=logΦ1ΦΦ=11+exp(η)a(y)=log(1Φ) { T ( y ) = y b ( y ) = 1 η = l o g Φ 1 − Φ ⟹ Φ = 1 1 + e x p ( − η ) a ( y ) = l o g ( 1 − Φ )

构造模型:
由于服从(Φ)的伯努利分布函数均值为Φ,得:
hΘ(X)=E[(y|X;Θ)]=E[(y;Φ)]=Φ h Θ ( X ) = E [ ( y | X ; Θ ) ] = E [ ( y ; Φ ) ] = Φ

由以上推理得 Φ = 1/(1 + exp(−η)), 所以有:
hΘ(X)=E[(y|X;θ)]=1/(1+exp(η))η=θTXhΘ(X)=1/(1+exp(ΘTX)) h Θ ( X ) = E [ ( y | X ; θ ) ] = 1 / ( 1 + e x p ( − η ) ) η = θ T X h Θ ( X ) = 1 / ( 1 + e x p ( − Θ T X ) )

正是logistic regression的hypothesis表达式,是不是很激动!!!

Tips: 定义以自然参数η作为概率分布均值的参数为g(η) = E[(y|X ; Θ)] = E[T(y); Θ]称为 canonical response function(规范响应函数,g(η)的逆函数则称为canonical link function(规范连接函数);

重点内容
总结一下广义线性模型吧:
广义线性模型的核心体现在y服从指数族分布(包括高斯分布,伯努利分布,多项式分布,泊松分布,beta分布……),且同个样本的y必须服从同个分布,接着在具体分布中比较与指数分布族之间的参数关系,最重要的就是具体分布的参数(Φ)和指数分布参数(η)之间的关系;
例如在线性回归中,Φ = η; 在逻辑回归中,Φ = 1/(1 + exp(−η));找到了这个关系后则可构造模型: 求得具体分布的均值,用η代替Φ,再用 ΘTX Θ T X 代替η,即可求得具体模型的hypothesis( y^ y ^ )
在求得hypothesis后,求参数Θ利用极大似然估计求得cost function(损失函数)(具体方法参见机器学习之概率解释),之后再用梯度下降优化参数Θ即可得到最优解!

Tips:
·通常情况下,T(y) = y;但当y有多个取值时(c>2),则T(y)也应该是c-1的向量;(c为y的维度)
· η=ΘTX η = Θ T X ,但当η是向量时,有η_i = θ_i^TX$也就是具体分布有多个参数时(如多项式分布)!
以上两种情况在多分类问题softmax中出现,具体参见机器学习多分类softmax

鸡汤终于煲的差不多了,有什么不足的希望大神指点出来,还想熬更好喝的鸡汤哈哈

                                            2018-09-04 23:24

http://chatgpt.dhexx.cn/article/4FQb84pT.shtml

相关文章

广义线性模型理解

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

广义线性模型1

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

R之广义线性模型

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

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

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

广义线性模型

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

广义线性模型(Generalized Linear Model)

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

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

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

IOS CoreData 多表查询(上)

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

iOS CoreData详解(五)多线程

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

CoreData在Xcode 8 中的使用

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

CoreData

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

Core Data详解

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

Coredata的版本升级

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

在建好的项目中加入CoreData

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

CoreData的简单使用

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

数据持久化(五)之CoreData

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

coredata 详解

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

Core Data 详解

Core Data是一个Cocoa框架&#xff0c;用于为管理对象图提供基础实现&#xff0c;以及为多种文件格式的持久化提供支持。管理对象图包含的工作如撤销&#xff08;undo&#xff09;和重做&#xff08;redo&#xff09;、有效性检查、以及保证对象关系的完整性等。对象的持久化意…

Core Data概述

昨晚熬夜看发布会(本以为屌丝终于能买得起苹果了&#xff0c;谁知道。。。)&#xff0c;因为看不了视频直播&#xff0c;所以就正好有空就把www.objc.io最新的一篇文章翻译了一下&#xff0c;同时感谢CocoaChina翻译组提供校对&#xff0c;以下为正文&#xff1a; Core Data可能…

CoreData 的使用

CoreData其实就是Apple为开发者提供的便捷数据存储方式&#xff0c;本质是对sqlite数据库的操作&#xff0c;操作的数据量为中到大量。 操作数据库&#xff0c;还有FMDB第三方库&#xff0c;相比于FMDB&#xff0c;CoreData要更简单&#xff0c;更方便。 集成CoreData: 1,创…