第三章 广义线性模型(GLM)
广义线性模型
前面我们举了回归和分类得到例子。在回归的例子中,$y \mid x;\theta \sim N(u,\sigma ^{2})$,在分类例子中,$y\mid x;\theta \sim Bbernoulli(\phi)$
广义线性模型是基于指数函数族的,指数函数族原型为:
$p(y;\eta) = b(y)exp(\eta^{T}T(y)-a(\eta))$
$\eta$为自然参数,$T(y)$为充分统计量,一般情况下$T(y)=y$。选择固定的T,a,b定义一个分布,参数为$\eta$。
对于伯努利分布(均值为$\phi$),有:
$p(y=1,\phi)=\phi;p(y=0;\phi)=1-\phi$
$p(y;\phi) = \phi^{y}(1-\phi)^{1-y}$
$p(y;\phi) = exp(ylog\phi +(1-y)log(1-\phi))$
$p(y;\phi) = exp((log(\frac{\phi}{1-\phi}))y+log(1-\phi))$
因此有:
$T(y) = y$
$a(\eta) = -log(1-\phi)$
$a(\eta) = log(1+e^{\eta})$
$b(y)=1$
对于高斯分布,有:
$p(y;u) = \frac{1}{\sqrt{2\pi}}exp(-\frac{1}{2}(y-u)^{2})$
$p(y;u) = \frac{1}{\sqrt{2\pi}}exp(-\frac{1}{2}y^{2})\cdot exp(uy=\frac{1}{2}u^{2})$
因此有:
$\eta = u$
$T(y) = y $
$a(\eta) = \frac{u^{2}}{2} = \frac{\eta^{2}}{2}$
$b(y) = (\frac{1}{\sqrt{2\pi}})exp(-\frac{1}{2}y^{2})$
构造GLM
1. $y \mid x;\theta \sim ExponentialFamily(\eta)$
2. 给定x,我们的目标是预测T(y),大部分情况下T(y)=y,因此我们可以选择预测输出h(x),$h(x) =E\left [ y \mid x \right ]$
3. 自然参数$\eta$和输入x是线性相关的,$\eta = \theta^{T}x$
普通最小二乘法
普通最小二乘法是GLM模型的一种特例:y是连续的,给定x后的y的条件分布是高斯分布$N(u,\sigma^{2})$。因此令指数函数族的分布为高斯分布。正如前面,高斯分布U作为指数函数族时,$u=\eta$。因此有:
$h_{\theta}(x) = E\left [ y \mid x ; \theta \right ] = u = \eta =\theta^{T}x$
逻辑回归
逻辑回归中y只取0和1,因此使用伯努利分布作为指数函数族的分布,因此$\phi = \frac{1}{1+e^{-\eta}}$。进一步,由$y \mid x;\theta \sim Bernoulli(\phi)$,则$E\left [ y \mid x;\theta \right ] = \phi $,得到:
$h_{\theta}(x) = E\left [ y \mid x ; \theta \right ] $
$h_{\theta}(x) = \phi $
$h_{\theta}(x) = \frac{1}{1+e^{-\eta}}$
$h_{\theta}(x) = \frac{1}{1+e^{-\theta^{T}x}}$
softmax回归
在逻辑回归中,y离散取值只有两个,现在考虑当y取多个值的情况,$y\in {1,2,...,k}$。
为了参数化具有k个可能的输出的多项式,我们可以使用k个参数$\phi_{1},...,\phi_{2}$来表示每个输出的概率。但是这些参数是冗余的,因为这k个参数之和为1。所以我们只需要参数化k-1个变量:$\phi_{i} = p(y=i;\phi) ~~ p(y=k;\phi) = 1-\sum_{i=1}^{k-1}\phi_{i}$,为了方便,我们令$\phi_{k}= 1-\sum_{i=1}^{k-1}\phi_{i}$,但记住它并不是一个参数,而是由其它k-1个参数值决定。
为了使多项式为指数函数族分布,定义以下$T(y) \in R^{k-1}$:
$ T(1) =\begin{bmatrix} 1\\ 0\\ 0\\ \vdots \\0 \end{bmatrix}$
$ T(2) =\begin{bmatrix} 0\\ 1\\ 0\\ \vdots \\0 \end{bmatrix}$
$ T(k-1) =\begin{bmatrix} 0\\ 0\\ 0\\ \vdots \\1 \end{bmatrix}$
$ T(k) =\begin{bmatrix} 1\\ 0\\ 0\\ \vdots \\0 \end{bmatrix}$
跟前面不同的是,这里T(y)并不等于y,T(y) 在这里是一个k-1维向量,而不是一个实数。令$(T(y))_{i}$表示$T(y)$的第i个元素。
接着定义一个函数$1{\cdot}$,当参数为true时,函数值为1,反之为零。例如 1{2=3}=0.
因此,$(T(y))_{i}=1{y=i}$,进一步我们有$E[(T(y))_{i}]=P(y=i)=\phi_{i}$。
接下来说明该多项式也属于指数函数族:
$p(y;\phi) = \phi_{1}^{1\{y=1\}} \phi_{2}^{1\{y=2\}} \cdots \phi_{k}^{1\{y=k\}}$
$p(y;\phi) = \phi_{1}^{1\{y=1\}} \phi_{2}^{1\{y=2\}} \cdots \phi_{k}^{1-\sum_{i=1}^{k-1}(T(y))_{i}}$
$p(y;\phi) = \phi_{1}^{(T(y))_{1}} \phi_{2}^{(T(y))_{2}} \cdots \phi_{k}^{1-\sum_{i=1}^{k-1}(T(y))_{i}}$
$p(y;\phi) = exp((T(y))_{1}log(\phi_{1}) + (T(y))_{2}log(\phi_{2}) + \cdots + (1-\sum_{i=1}^{k-1}(T(y))_{i})log(\phi_{k}))$
$p(y;\phi) =exp((T(y))_{1}log(\phi_{1}/\phi_{k})+ (T(y))_{2}log(\phi_{2}/\phi_{k})+\cdots+(T(y))_{k-1}log(\phi_{k-1}/\phi_{k})+log(\phi_{k}))$
$p(y;\phi) = b(y)exp( \eta^{T}T(y)-a(\eta))$
其中:
$ \eta =\begin{bmatrix} log(\phi_{1}/\phi_{k})\\ log(\phi_{2}/\phi_{k})\\ \vdots \\log(\phi_{k-1}/\phi_{k}) \end{bmatrix}$
$a(\eta)=-log(\eta_{k})$
$b(y)=1$
因此有以下函数关系式:
$\eta_{i}= \frac{\phi_{i}}{\phi_{k}}$
为了方便,我们定义:
$\eta_{k} = 0$
因此我们得到以下关系式:
$e^{\eta_{i}}= \frac{\phi_{i}}{\phi_{k}}$
$\phi_{k}e^{\eta_{i}} = \phi_{i}$
$\phi_{k}\sum_{i=1}{k}e^{\eta_{i}}=1$
因此我们得到以下响应函数:
$\phi_{i}= \frac{e^{\eta_{i}}}{\sum_{j=1}^{k}e^{\eta_{j}}}$
这种$\eta$到$\phi$的映射函数称为softmax函数。
令$\eta_{i}=\theta_{i}^{T}x ~~(i=1,2,...,k-1),\theta_{1},...,\theta_{k-1}\in R^{n+1}$
因此有以下条件分布:
$p(y=1 \mid x;\theta) = \phi_{i}$
$p(y=1 \mid x;\theta) = \frac{e^{\eta_{i}}}{\sum_{j=1}^{k}e^{\eta_{j}}}$
$p(y=1 \mid x;\theta) = \frac{e^{\theta_{i}^{T}x}}{\sum_{j=1}^{k}e^{\theta_{j}^{T}x}}$
损失函数:

最大似然估计:

第三章 广义线性模型(GLM)的更多相关文章
- 从广义线性模型(GLM)理解逻辑回归
1 问题来源 记得一开始学逻辑回归时候也不知道当时怎么想得,很自然就接受了逻辑回归的决策函数--sigmod函数: 与此同时,有些书上直接给出了该函数与将 $y$ 视为类后验概率估计 $p(y=1|x ...
- 广义线性模型 GLM
Logistic Regression 同 Liner Regression 均属于广义线性模型,Liner Regression 假设 $y|x ; \theta$ 服从 Gaussian 分布,而 ...
- 广义线性模型(GLM, Generalized Linear Model)
引言:通过高斯模型得到最小二乘法(线性回归),即: 通过伯努利模型得到逻辑回归,即: 这些模型都可以通过广义线性模型得到.广义线性模型是把自变量的线性预测函数当作因变量的估计值.在 ...
- 广义线性模型(GLM)
一.广义线性模型概念 在讨论广义线性模型之前,先回顾一下基本线性模型,也就是线性回归. 在线性回归模型中的假设中,有两点需要提出: (1)假设因变量服从高斯分布:$Y={{\theta }^{T}}x ...
- Stanford大学机器学习公开课(四):牛顿法、指数分布族、广义线性模型
(一)牛顿法解最大似然估计 牛顿方法(Newton's Method)与梯度下降(Gradient Descent)方法的功能一样,都是对解空间进行搜索的方法.其基本思想如下: 对于一个函数f(x), ...
- 机器学习 —— 基础整理(五)线性回归;二项Logistic回归;Softmax回归及其梯度推导;广义线性模型
本文简单整理了以下内容: (一)线性回归 (二)二分类:二项Logistic回归 (三)多分类:Softmax回归 (四)广义线性模型 闲话:二项Logistic回归是我去年入门机器学习时学的第一个模 ...
- CS299笔记:广义线性模型
指数分布族 我们称一类分布属于指数分布族(exponential family distribution),如果它的分布函数可以写成以下的形式: \[ \begin{equation} p(y;\et ...
- R语言实战(八)广义线性模型
本文对应<R语言实战>第13章:广义线性模型 广义线性模型扩展了线性模型的框架,包含了非正态因变量的分析. 两种流行模型:Logistic回归(因变量为类别型)和泊松回归(因变量为计数型) ...
- 斯坦福CS229机器学习课程笔记 part3:广义线性模型 Greneralized Linear Models (GLMs)
指数分布族 The exponential family 因为广义线性模型是围绕指数分布族的.大多数常用分布都属于指数分布族,服从指数分布族的条件是概率分布可以写成如下形式:η 被称作自然参数(nat ...
随机推荐
- pycharm社区版新建django文件不友好操作
一.cmd操作 1.django-admin startproject (新建project名称) 2.在pycharm打开project,运行终端输入:python manage.py starta ...
- Oracle——系统数据字典常用命令(查看表所属空间层目录等)
发生背景: 项目前后台交互对接时候,经常存在对底层表蒙圈情况尤其是oracle数据库,所在层级不同会导致操作对象直接的改变,从而发生意向不到的事情:很多时候需要了解我们所操作对象所处的层级等相关信息, ...
- NCBI SRA数据库使用详解
转:https://shengxin.ren/article/16 https://www.cnblogs.com/lmt921108/p/7442699.html 批量下载SRA http://ww ...
- SQL学习笔记:高级教程
SQL语法 LIMIT select col from table limit number select * from table limit number LIKE select * from t ...
- 版本控制工具(上)——Git的基本使用
一.Git简介 git是什么? Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理.[2] Git 是 Linus Torvalds 为了帮助管理 Linux 内 ...
- 课下实践——实现Mypwd
实现Mypwd 学习pwd命令 想要知道当前所处的目录,可以用pwd命令,该命令显示整个路径名. L 目录连接链接时,输出连接路径 P 输出物理路径 研究pwd实现需要的系统调用(man -k; gr ...
- Django视图层详细介绍
1 视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. ...
- Java 验证码识别库 Tess4j 学习
Java 验证码识别库 Tess4j 学习 [在用java的Jsoup做爬虫爬取数据时遇到了验证码识别的问题(基于maven),找了网上挺多的资料,发现Tess4j可以自动识别验证码,在这里简单记录下 ...
- fiddler的断点使用
功能 用于修改数据 1.断点设置请求之前--修改请求数据 2.断点设置在响应时--对响应的数据修改 已中断的会话最前面的图标为红色的带箭头的标志 设置断点方法 1.菜单栏:rules->auto ...
- Eclipse 无法编译 或 提示“错误: 找不到或无法加载主类”
project显示一个红色叹号,通常是.jar文件缺失,在下面找到配置 在libraries中添加add External JARs添加.jar文件