广义线性模型--Generalized Linear Models

2023-12-05 04:48

本文主要是介绍广义线性模型--Generalized Linear Models,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

监督学习问题:

1、线性回归模型:

适用于自变量X和因变量Y为线性关系

2、广义线性模型:

对于输入空间一个区域改变会影响所有其他区域的问题,解决为:把输入空间划分成若干个区域,然后对每个区域用不同的多项式函数拟合

是为了克服线性回归模型的缺点出现的,是线性回归模型的推广。

首先自变量可以是离散的,也可以是连续的。离散的可以是0-1变量,也可以是多种取值的变量。

与线性回归模型相比较,有以下推广:

根据不同的数据,可以自由选择不同的模型。大家比较熟悉的Logit模型就是使用Logit联接、随机误差项服从二项分布得到模型。

回归的线性模型

对于输入空间一个区域改变会影响所有其他区域的问题,解决为:把输入空间划分成若干个区域,然后对每个区域用不同的多项式函数拟合

Polynomial Curve Fitting

为神马不是差的绝对值?请看下面分解:

当我们寻找模型来拟合数据时,偏差是不可避免的存在的。对一个拟合良好的模型而言,这个偏差整体应该是符合正态分布的,

根据贝叶斯定理:P(h|D)=P(D|h)*P(h)/P(D)
    即P(h|D)P(D|h)*P(h) (表示“正比于”)
    结合前面正态分布,我们可以写出这样的式子:实际纵坐标为 Yi 的点 (Xi, Yi) 发生的概率 p(di|h)∝ exp(-(ΔYi)^2)
各个数据点偏差是独立的,所以可以把每个概率乘起来。于是生成 N 个数据点的概率为 EXP[-(ΔY1)^2] * EXP[-(ΔY2)^2] * EXP[-(ΔY3)^2] * .. = EXP{-[(ΔY1)^2 + (ΔY2)^2 + (ΔY3)^2 + ..]} 最大化这个概率就是要最小化 (ΔY1)^2 + (ΔY2)^2 + (ΔY3)^2 + .. 。得解!
正态分布的概率密度函数是欧拉数的幂函数形式。并不是所有的模型都可以有最优解,有些只有局部最优,有些则压根找不到,例如NPC问题。绝对值的和无法转化为一个可解的寻优问题,既然无法寻优如何得到恰当的参数估计呢?
x(i)的估计值与真实值y(i)差的平方和作为错误估计函数,前面乘上的1/2是为了在求导的时候,这个系数就不见了。如何调整θ以使得J(θ)取得最小值有很多方法:
  1. 梯度减少的过程:
对于我们的函数J(θ)求偏导J:
下面是更新的过程,也就是θi会向着梯度最小的方向进行减少。θi表示更新之前的值,-后面的部分表示按梯度方向减少的量,α表示步长,也就是每次按照梯度减少的方向变化多少。
对于一个向量θ,每一维分量θi都可以求出一个梯度的方向,我们就可以找到一个整体的方向,在变化的时候,我们就朝着下降最多的方向进行变化就可以达到一个最小点,不管它是局部的还是全局的。

梯度下降法是按下面的流程进行的:

1)首先对x 赋值,这个值可以是随机的,也可以让x是一个全零的向量。

2)改变x 的值,使得f(x)按梯度下降的方向进行减少。

3)循环迭代步骤2,直到x的值变化到使得f(x) 在两次迭代之间的差值足够小,比如0.00000001,也就是说,直到两次迭代计算出来的f(x) 基本没有变化,则说明此时f(x) 已经达到局部最小值了。

  • 靠近极小值时收敛速度减慢。
  • 直线搜索时可能会产生一些问题。
  • 可能会“之字形”地下降。
  • 这个算法将会在很大的程度上被初始点的选择影响而陷入局部最小点

1、批量梯度下降的求解思路如下:

(1)将J(theta)对theta求偏导,得到每个theta对应的的梯度

   

(2)由于是要最小化风险函数,所以按每个参数theta的梯度负方向,来更新每个theta

(3)从上面公式可以注意到,它得到的是一个全局最优解,但是每迭代一步,都要用到训练集所有的数据,如果m很大,那么可想而知这种方法的迭代速度!!所以,这就引入了另外一种方法,随机梯度下降。

2、随机梯度下降的求解思路如下:

(1)上面的风险函数可以写成如下这种形式,损失函数对应的是训练集中每个样本的粒度,而上面批量梯度下降对应的是所有的训练样本:

(2)每个样本的损失函数,对theta求偏导得到对应梯度,来更新theta

(3)随机梯度下降是通过每个样本来迭代更新一次,如果样本量很大的情况(例如几十万),那么可能只用其中几万条或者几千条的样本,就已经将theta迭代到最优解了,对比上面的批量梯度下降,迭代一次需要用到十几万训练样本,一次迭代不可能最优,如果迭代10次的话就需要遍历训练样本10次。但是,SGD伴随的一个问题是噪音较BGD要多,使得SGD并不是每次迭代都向着整体最优化方向。

对于上面的linear regression问题,最优化问题对theta的分布是unimodal,即从图形上面看只有一个peak,所以梯度下降最终求得的是全局最优解。然而对于multimodal的问题,因为存在多个peak值,很有可能梯度下降的最终结果是局部最优。

一个衡量错误的指标是root mean square error:
过拟合的解决办法,目前讲了三点:
  1. 增加训练数据集合
  2. 加入本书的"万金油" 贝叶斯方法
  3. 加入regularization。

Regularization

control the over-fitting phenomenon
参数w对训练数据的变化异常敏感,尽可能的去捕捉这个变化(使误差最小),而他捕捉的方式,就是肆意改变自身的大小,而不管训练数据的大小(向量w的各个值会正负抵消,而得出一个和目标变量相当的输出)。这是模型的缺陷,也是过拟合的元凶。
而引入正则化项之后,向量w想要变大自身并正负抵消来拟合目标时,|w|会变的非常大,与目标变量相去甚远,过拟合的阴谋失败了。

Ordinary Least Squares

fits a linear model with coefficients W to minimize the residual sum of squares between the observed responses in the dataset, and the responses predicted by the linear approximation. Mathematically it solves a problem of the form:

However, coefficient estimates for Ordinary Least Squares rely on the independence of the model terms.

Ordinary Least Squares Complexity

X is a matrix of size (n, p) this method has a cost of , assuming that n>=p.

 Ridge Regression 岭回归

regression addresses some of the problems of Ordinary Least Squares by imposing a penalty on the size of coefficients. The ridge coefficients minimize a penalized residual sum of squares,

Here,  is a complexity parameter that controls the amount of shrinkage: the larger the value of , the greater the amount of shrinkage and thus the coefficients become more robust to collinearity.

参数值和alpha的变化关系。

ax.set_color_cycle(['b','r','g','c','k','y','m'])

Bayesian Regression

最大似然估计中很难决定模型的复杂程度,ridge回归加入的惩罚参数其实也是解决这个问题的,同时可以采用的方法还有对数据进行正规化处理,另一个可以解决此问题的方法就是采用贝叶斯方法。
目标变量t的取值是由一个deterministic function y(x,w)和一个高斯噪声共同决定的,如3.7式:
目标值t的概率分布可以写成3.8: 
这里的x是向量,是一个更普适的表达。式3.8的含义是,t取某个值的概率,是均值为y(x,w),precision为beta的正态分布。
选择二阶损失函数,t的预测就是条件数学期望 E(t|x): 
高斯噪声没有了。
以上,敲定了本问题的概率模型,接下来给出似然函数并用最大似然求解。 用X表示所有的向量x, X={x1....xN},他们分别对应向量t的t1....tN,在观测点独立同分布的前提下,式3.8可以对所有向量t和向量x写成 :
    这就是likelihood function,后续还会经常用到。与前面一样,我们最大化这个似然函数:对这个式子两边求ln,然后令x偏导数为0,求得拐点的位置,也就求得了w的表达式。
    与普通的线性回归比较,likelyhood function p(t|x,w)是一致的。不同的是:参数w,一个是确定的,一个是概率分布;对最终结果t的预测,一个是通过损失函数来决定,一个是在w的空间上积分。
高斯噪声假设下,p(t|x)是unimodal(单峰,有一个极大值)的,这可能与事实不符。而混合条件高斯分布,它会允许multimodal。
贝叶斯回归方法有三个关键点:
1. 求概率分布p(W|D). 
2. 求likelyhood p(t|x,W) . 
3. 在w空间上积分(1.68)。
在我们未观测到数据集D之前,可以先假设w服从均值为m0,方差为S0的高斯分布:
w的后验概率与似然函数和先验概率的乘积成正比。因为w的先验概率是高斯分布,所以共轭的后验概率也是高斯分布(高斯likelyhood=>高斯先验w=>高斯后验w)。
已知数据x和t, w的后验概率为3.49:
Phi 自变量x的特征组成的矩阵。
w的先验在负无穷正无穷上均匀分布时,贝叶斯线性回归就蜕化成了普通的线性回归。普通线性回归并不认识w是一个概率分布,就是在所有的可能性下,直接求解似然函数。
对于先验概率的选择,有更加泛化的表示,如公式3.56。为了简化问题,我们看一个w先验概率为: 均值为0,方差为alpha倒数的高斯分布:
看这两个式子,Phi和T都来自观测数据,待定参数只有alpha和beta。
把这个后验分布写成具体的概率密度函数,然后对它的w求log,就得到了
相似于λ = α/β 时的ridge regression

贝叶斯视角下的模型选择

对于一个问题、一个数据集,可能会有多个模型与之对应,每个模型都会以一定概率生成这个数据集,那么我们选择哪一个模型呢?按照以前的做法,我可能会说选择概率最大的那个呗。
如果我们有一个数据集D,有L个模型 Mi,i=1,....L,我们感兴趣的是给定数据D,选择某个Mi的后验概率如3.66:

给定x,对于t的预测可以用3.67来表示:

Logistic regression

Logistic回归与多重线性回归实际上有很多相同之处,最大的区别就在于它们的因变量不同,可以归于同一个家族,即广义线性模型(generalizedlinear model)。
如果是连续的,就是多重线性回归; 如果是二项分布,就是Logistic回归; 如果是Poisson分布,就是Poisson回归; 如果是负二项分布,就是负二项回归。
Logistic回归主要在流行病学中应用较多,比较常用的情形是探索某疾病的危险因素,根据危险因素预测某疾病发生的概率,等等。例如,想探讨胃癌发生的危险因素,可以选择两组人群,一组是胃癌组,一组是非胃癌组,两组人群肯定有不同的体征和生活方式等。这里的因变量就是是否胃癌,即“是”或“否”,自变量就可以包括很多了,例如年龄、性别、饮食习惯、幽门螺杆菌感染等。自变量既可以是连续的,也可以是分类的。

常规步骤

Regression问题的常规步骤为:

  1. 寻找h函数(即hypothesis);
  2. 构造J函数(损失函数);
  3. 想办法使得J函数最小并求得回归参数(θ)
构造预测函数h
Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别),所以利用了Logistic函数(或称为Sigmoid函数),函数形式为:
Sigmoid 函数在有个很漂亮的“S”形;
 
决策边界分为线性和非线性.
对于线性边界的情况:

构造损失函数J

Cost函数和J函数如下,它们是基于最大似然估计推导得到的。

下面详细说明推导的过程:

(1)式综合起来可以写成:

因为乘了一个负的系数-1/m,所以取J(θ)最小值时的θ为要求的最佳参数。

梯度下降法求的最小值

 

一个二维logistic regression的例子:

One-vs-all(one-vs-rest):
对于多类分类问题,可以将其看做成二类分类问题:保留其中的一类,剩下的作为另一类。

总结-One-vs-all方法框架:

对于每一个类 i 训练一个逻辑回归模型的分类器h(i)θ(x),并且预测 y = i时的概率;

对于一个新的输入变量x, 分别对每一个类进行预测,取概率最大的那个类作为分类结果:

CSDN博客原文
广义线性模型--Generalized Linear Models_YoungChow的博客-CSDN博客_generalized linear model
授人以鱼不如授人以渔:
python sklearn数据预处理:
Preprocessing data-sklearn数据预处理_YoungChow的博客-CSDN博客_sklearn数据预处理
交叉验证的Java weka实现,并保存和重载模型
交叉验证的Java weka实现,并保存和重载模型_YoungChow的博客-CSDN博客_weka保存模型
http://ruqiang.me/blog/2013/08/06/linearregression-2-bayesianlinearregression/
http://ruqiang.me/blog/2013/07/31/linearregression-1-overview/
贝叶斯线性回归(Bayesian Linear Regression)_DarkScope从这里开始-CSDN博客_贝叶斯线性回归matlab
登录 - 推酷
机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)_zouxy09的专栏-CSDN博客_python 逻辑回归

这篇关于广义线性模型--Generalized Linear Models的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/456207

相关文章

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者