前面的文章已经介绍了一个回归和一个分类的例子。在逻辑回归模型中我们假设:

在分类问题中我们假设:

他们都是广义线性模型中的一个例子,在理解广义线性模型之前需要先理解指数分布族。

指数分布族(The Exponential Family)

如果一个分布可以用如下公式表达,那么这个分布就属于指数分布族:

公式中y是随机变量;h(x)称为基础度量值(base measure);

η称为分布的自然参数(natural parameter),也称为标准参数(canonical parameter);

T(y)称为充分统计量,通常T(y)=y;

a(η)称为对数分割函数(log partition function);

本质上是一个归一化常数,确保概率和为1。

当T(y)被固定时,a(η)、b(y)就定义了一个以η为参数的一个指数分布。我们变化η就得到这个分布的不同分布。

伯努利分布属于指数分布族。伯努利分布均值为φ,写为Bernoulli(φ),是一个二值分布,y ∈ {0, 1}。所以p(y = 1; φ) = φ; p(y = 0; φ) = 1 − φ。当我们变化φ就得到了不同均值的伯努利分布。伯努利分布表达式转化为指数分布族表达式过程如下:

其中,

再举一个高斯分布的例子,高斯分布也属于指数分布族。由高斯分布可以推导出线性模型(推导过程将在EM算法中讲解),由线型模型的假设函数可以得知,高斯分布的方差与假设函数无关,因而为了计算简便,我们设方差=1。高斯分布转化为指数分布族形式的推导过程如下:

其中

许多其他分部也属于指数分布族,例如:伯努利分布(Bernoulli)、高斯分布(Gaussian)、多项式分布(Multinomial)、泊松分布(Poisson)、伽马分布(Gamma)、指数分布(Exponential)、β分布、Dirichlet分布、Wishart分布。

构建广义线性模型(Constructing GLMs)

在分类和回归问题中,我们通过构建一个关于x的模型来预测y。这种问题可以利用广义线性模型(Generalized linear models,GMLs)来解决。构建广义线性模型我们基于三个假设,也可以理解为我们基于三个设计决策,这三个决策帮助我们构建广义线性模型:

  1. ,假设满足一个以为参数的指数分布。例如,给定了输入x和参数θ,那么可以构建y关于η的表达式。
  2. 给定x,我们的目标是要确定T(y),即。大多数情况下T(y)=y,那么我们实际上要确定的是。即给定x,假设我们的目标函数是。(在逻辑回归中期望值是,因此目标函数h是φ;在线性回归中期望值是μ,而高斯分布中,因此线性回归中目标函数)。
  3. 假设自然参数η和x是线性相关,即假设:

假设有一个预测问题:基于特征商店促销活动、最近的广告、天气、星期几等特征x,来预测商店在任一小时内的顾客数目y。

根据概率知识可知,x、y符合泊松分布。泊松分布属于指数分布族,我们可以利用上面的3个假设,构建一个广义线性模型来进行构建预测模型。

GLMs构建最小二乘模型

线性回归中的优化目标y(损失函数)是由最小二乘法得到的,可以使用广义线性模型构建最小二乘模型。三个假设:

  1. 最小二乘法得到的目标变量y是一个连续值,我们假设给定x下y的分布符合高斯分布。假设1中的ExponentialFamily(η)就是高斯分布。
  2. 在高斯分布中,目标函数
  3. 假设:

推导过程如下

第一步变换根据假设2:

第二步变换根据y|x; θ ∼ N(μ, σ2),高斯分布的期望值是μ

第三步根据假设1:高斯分布中

第四步根据假设3:

现在已经使用广义线性模型构建出了最小二乘模型,接下来的工作就是利用梯度下降、牛顿方法来求解θ。梯度下降牛顿方法的内容请参考之前的讲义。

GLMs构建逻辑回归

逻辑回归可以用于解决二分类问题,而分类问题目标函数y是二值的离散值,。根据统计知识,二分类问题可以选择伯努利分布来构建模型。

在伯努利分布的指数分布族表达式中我们已知:,从而得到

构建广义线性模型的三个假设:

  1. 假设符合伯努利分布,
  2. ,伯努利分布中

推导过程如下:

同最小二乘模型一样,接下来的工作就由梯度下降或牛顿方法来完成。

注意一下上面的推到结果,回忆一下,在逻辑回归中,我们选用Sigmoid函数

之所以在逻辑回归中选用这个g(z)作为Sigmoid函数是由一套理论作支持的,这个理论便是广义线性模型。

出处:http://www.cnblogs.com/BYRans/

广义线性模型(Generalized Linear Models)的更多相关文章

  1. 广义线性模型(Generalized Linear Models)

    在线性回归问题中,我们假设,而在分类问题中,我们假设,它们都是广义线性模型的例子,而广义线性模型就是把自变量的线性预测函数当作因变量的估计值.很多模型都是基于广义线性模型的,例如,传统的线性回归模型, ...

  2. 斯坦福CS229机器学习课程笔记 part3:广义线性模型 Greneralized Linear Models (GLMs)

    指数分布族 The exponential family 因为广义线性模型是围绕指数分布族的.大多数常用分布都属于指数分布族,服从指数分布族的条件是概率分布可以写成如下形式:η 被称作自然参数(nat ...

  3. Andrew Ng机器学习公开课笔记 -- Generalized Linear Models

    网易公开课,第4课 notes,http://cs229.stanford.edu/notes/cs229-notes1.pdf 前面介绍一个线性回归问题,符合高斯分布 一个分类问题,logstic回 ...

  4. [Scikit-learn] 1.1 Generalized Linear Models - from Linear Regression to L1&L2

    Introduction 一.Scikit-learning 广义线性模型 From: http://sklearn.lzjqsdd.com/modules/linear_model.html#ord ...

  5. Popular generalized linear models|GLMM| Zero-truncated Models|Zero-Inflated Models|matched case–control studies|多重logistics回归|ordered logistics regression

    ============================================================== Popular generalized linear models 将不同 ...

  6. [Scikit-learn] 1.5 Generalized Linear Models - SGD for Regression

    梯度下降 一.亲手实现“梯度下降” 以下内容其实就是<手动实现简单的梯度下降>. 神经网络的实践笔记,主要包括: Logistic分类函数 反向传播相关内容 Link: http://pe ...

  7. [Scikit-learn] 1.5 Generalized Linear Models - SGD for Classification

    NB: 因为softmax,NN看上去是分类,其实是拟合(回归),拟合最大似然. 多分类参见:[Scikit-learn] 1.1 Generalized Linear Models - Logist ...

  8. [Scikit-learn] 1.1 Generalized Linear Models - Logistic regression & Softmax

    二分类:Logistic regression 多分类:Softmax分类函数 对于损失函数,我们求其最小值, 对于似然函数,我们求其最大值. Logistic是loss function,即: 在逻 ...

  9. Regression:Generalized Linear Models

    作者:桂. 时间:2017-05-22  15:28:43 链接:http://www.cnblogs.com/xingshansi/p/6890048.html 前言 本文主要是线性回归模型,包括: ...

随机推荐

  1. LINQ函数

    LINQ函数虽然和LINQ语句实现了同样的功能,但LINQ函数使用起来更加快捷.学过数据库的感觉LINQ语句都不难,但语句比较长. 会LINQ函数,才算会LINQ. 1.Where(),结果过滤 Li ...

  2. bzoj 4016: [FJOI2014]最短路径树问题

    bzoj4016 最短路路径问题 Time Limit: 5 Sec Memory Limit: 512 MB Description 给一个包含n个点,m条边的无向连通图.从顶点1出发,往其余所有点 ...

  3. thinkphp 3.2.3 动态修改conf配置文件

    thinkphp 3.2.3 的C()方法能修改配置文件,但是是动态修改的,没有真正的更改文件. 我查了网上网友分享的方法,都不怎么合适,我就自己摸索写了一个,配置写到text.php中,我的目录如下 ...

  4. php验证身份证号码的正确性

    /********************php验证身份证号码是否正确函数*********************/function is_idcard( $id ) {   $id = strto ...

  5. form表单的属性标签

    form表单的常用标签 表单: <form id="" name="" method="post/get" action=" ...

  6. python 生成验证码

    在工作中经常遇到一些验证码,这些是怎么生成的呢,今天我用Python编写了下 import randomcode = []for i in range(6): if i == random.randi ...

  7. TTTAttributedLabel 富文本小记

    - (void)setupTipsLabel:(TTTAttributedLabel *)label { UIColor *red = [UIColor mainColor]; UIColor *gr ...

  8. todo

     ID生成器要做成兼容分布式, 数据库ef控制要改成手动升级, 异常日志模块,操作日志某快,,, 日志服务器,, 图片服务器,,,动静分离, 前后台分离,, 可扩展性,无状态化集群弹性部署, 数据库主 ...

  9. 基于tomcat与Spring的实现差异化配置方案

    起因 在实际开发过程中经常需要加载各种各样的配置文件..比如数据库的用户名密码,要加载的组件,bean等等..但是这种配置在各个环境中经常是不一样的....比如开发环境和测试环境,真实的生产环境.. ...

  10. Node.js API 初解读(二)

    四. Cluster 1.简介 在介绍 Cluster 之前.我们需要知道 node的 一些基本特性,比如说 都知道的 nodejs最大的特点就是单进程.无阻塞运行,并且是异步事件驱动的. 那么随之而 ...