从广义线性模型(GLM)理解逻辑回归
1 问题来源
记得一开始学逻辑回归时候也不知道当时怎么想得,很自然就接受了逻辑回归的决策函数——sigmod函数:
与此同时,有些书上直接给出了该函数与将 $y$ 视为类后验概率估计 $p(y=1|x)$ 等价,即
并给出了二分类(标签 $yin(0,1)$)情况下的判别方式:
但今天再回过头看的时候,突然就不理解了,一个函数值是怎么和一个概率联系起来了呢?有些人解释说因为 $h_{theta}(x)$ 范围在0~1之间啊,可是数值在此之间还是没说明白和概率究竟有什么关系。所以,前几天看了一些资料,对个人而言比较好理解的还是从广义线性模型(Generalized Linear Models, GLM)来解释,至少这种方法能从概率出发直接推出 sigmod 函数。实际上,线性回归和逻辑回归都是广义线性模型的特例,从此出发,得到对应的决策函数就比较自然了。
2 指数分布族
在介绍广义线性模型之前不得不先说一下“指数分布族”,因为指数分布族是广义线性模型所提出的假设之一。
指数分布族中的一类分布都可以用下述公式描述:
下面是公式中的参数:(可以通过后面具体例子的推导来理解)
- η:分布的自然参数(也就是说跟分布有关)
- T(y):充分统计量(通常 T(y)=y)
- a(η):log partition function,$e^{-a(eta)}$ 本质上起着规范化常数的作用,保证概率分布 $sum p(y;eta)$ 为1
当T、a、b固定之后实际上就确定了指数分布族中的一种分布模型,就得到了以$eta$为参数的模型。
其实,大多数的概率分布都属于指数分布族:
- 伯努利分布(Bernoulli):对 0、1 问题进行建模;
- 二项分布(Multinomial):对 K 个离散结果的事件建模;
- 泊松分布(Poisson):对计数过程进行建模,比如网站访问量的计数问题,放射性衰变的数目,商店顾客数量等问题;
- 伽马分布(gamma)与指数分布(exponential):对有间隔的正数进行建模,比如公交车的到站时间问题;
- β 分布:对小数建模;
- Dirichlet 分布:对概率分布进建模;
- Wishart 分布:协方差矩阵的分布;
- 高斯分布(Gaussian)
知道了这么多的指数分布族之后其实我们已经能够求解一些问题了,求解的方法就是将概率分布符合上述指数分布族的转换成它对应的指数分布族的形式,求出指数分布族对应位置上的参数即可求出原模型的参数。
3 广义线性模型
为了给问题构造GL 大专栏 从广义线性模型(GLM)理解逻辑回归M模型,必须首先知道GLM为作出的三个假设:
- $y|x;θ sim ExponentialFamily(eta)$。比如,给定样本$x$与参数$theta$,样本的分类$y$服从以 $eta$ 为参数的指数分布族中的某个分布
- 给定$x$,广义线性模型的目标是求解 $T(y)|x$,不过由于很多情况下 $T(y) = y$ 所以我们的目标变成了求 $h(x) = E[y|x]$
- $eta=theta^Tx$
这些假设看起来似乎很神奇,比如第三条,但这就是GLM的假设(说成“设计”更合理),从这三个假设出发能得到一类很好的学习算法。下面就来展示一下如何从GLM推导出逻辑回归和线性回归。
3.1 GLM与逻辑回归
接下来按照上面GLM作出的假设条件来推导逻辑回归。
- 对于二分类问题,很自然想到$y$服从伯努利分布,满足第一个假设,即$y|x;theta sim Bernoulli(phi)$
- 第二个假设很重要,是求决策函数的。因此我们要求$E[y|x;theta]$。对于伯努利分布来说,$p(y=1|x;theta)=phi$,$p(y=0|x;theta))=1-phi$。因此有:
参照指数分布族的标准形式,可以得到:
$b(y)=1$
$T(y)=y$
$eta=log(frac{phi}{1-phi})y$,进而得到$phi=frac{1}{1+e^{-eta}}$
$a(eta)=-log(1-phi)=log(1+e^eta)$
再根据第三个假设条件$eta=theta^Tx$,得到 $phi=frac{1}{1+e^{-eta}}=frac{1}{1+e^{-theta^Tx}}$,即 $p(y=1|x;theta)=frac{1}{1+e^{-theta^Tx}}$,这样就将概率和 sigmod 函数联系起来了。
到这里,GLM已经解决了概率和sigmod函数之间关系的疑惑了。
3.2 GLM与线性回归
- 在线性回归中,我们对概率分布作出的假设是 $y|x;theta sim N(mu,sigma^2)$
- 接下来求 $h_{theta}(x)=E[y|x;theta]$。对于高斯分布,从概率角度是通过极大似然法来求,可以发现最后的结果是不受$sigma$影响的,因此可以将$sigma$设为1。(原因如下所示)

等价于:
所以我们从 $y|x;theta sim N(mu,1)$ 出发来推导:
通刚才一样,参照指数分布族的标准形式,可以得到:
$b(y)=frac{1}{sqrt{2pi}}exp(-frac{y^2}{2})$
$T(y)=y$
$eta=mu$
$a(eta)=frac{mu^2}{2}=frac{eta^2}{2}$
再根据第三个假设条件,即可得到线性回归模型 $h_{theta}(x)=E[y|x;theta]=mu=eta=theta^Tx$
综上所述,广义线性模型GLM是通过假设一个概率分布并将其化成指数分布族形式,从而得到不同的模型,这对理解模型的由来很有帮助。
参考:
CS229 Andrew Ng
从广义线性模型(GLM)理解逻辑回归的更多相关文章
- 广义线性模型 GLM
Logistic Regression 同 Liner Regression 均属于广义线性模型,Liner Regression 假设 $y|x ; \theta$ 服从 Gaussian 分布,而 ...
- 广义线性模型(GLM, Generalized Linear Model)
引言:通过高斯模型得到最小二乘法(线性回归),即: 通过伯努利模型得到逻辑回归,即: 这些模型都可以通过广义线性模型得到.广义线性模型是把自变量的线性预测函数当作因变量的估计值.在 ...
- 广义线性模型------逻辑回归和softmax回归
1.广义线性模型 2.逻辑回归 3.softmax回归
- 广义线性模型(GLM)
一.广义线性模型概念 在讨论广义线性模型之前,先回顾一下基本线性模型,也就是线性回归. 在线性回归模型中的假设中,有两点需要提出: (1)假设因变量服从高斯分布:$Y={{\theta }^{T}}x ...
- 【Coursera】线性回归和逻辑回归
一.线性回归 1.批量梯度下降法 每次对参数进行一次迭代时,都要扫描一遍输入全集 算法可以收敛到局部最优值 当迭代多次之后,每次迭代参数的改变越小 2.随机梯度下降法 对于一个输入样本,对参数进行一次 ...
- 逻辑回归(Logistic Regression)
转载请注明出自BYRans博客:http://www.cnblogs.com/BYRans/ 本文主要讲解分类问题中的逻辑回归.逻辑回归是一个二分类问题. 二分类问题 二分类问题是指预测的y值只有两个 ...
- 分类和逻辑回归(Classification and logistic regression)
分类问题和线性回归问题问题很像,只是在分类问题中,我们预测的y值包含在一个小的离散数据集里.首先,认识一下二元分类(binary classification),在二元分类中,y的取值只能是0和1.例 ...
- 逻辑回归(Logistic Regression)推导
出自BYRans博客:http://www.cnblogs.com/BYRans/ 本文主要讲解分类问题中的逻辑回归.逻辑回归是一个二分类问题. 二分类问题 二分类问题是指预测的y值只有两个取值(0或 ...
- 机器学习——逻辑回归(Logistic Regression)
1 前言 虽然该机器学习算法名字里面有"回归",但是它其实是个分类算法.取名逻辑回归主要是因为是从线性回归转变而来的. logistic回归,又叫对数几率回归. 2 回归模型 2. ...
随机推荐
- storm 机制
storm基础系列之二----zookeeper的作用 https://www.cnblogs.com/xyang/p/5643745.html Zookeeper+Storm集群搭建 https:/ ...
- PAT Advanced 1032 Sharing(25) [链表]
题目 To store English words, one method is to use linked lists and store a word letter by letter. To s ...
- 【转】Rendering Problems The following classes could not be instantiated
xml 设计时警告 打开es/values/目录下styles.xml文件. 把:<style name="AppTheme" parent="Theme.AppC ...
- arg min,arg max, e.g ,i.e
数学中常见的arg min,arg max 是什么意思 arg 是变元(即自变量argument)的英文缩写 arg min 就是使后面这个式子到达最小值时的变量的取值 arg max 就是使后面这个 ...
- RxJava的简单使用
0x00 介绍 先简单介绍一下这个库,Rx的一系列实现都是为了解决同一个问题,就是让异步编程变的更加简单.它的主要思想是使用观察者模式,分离了数据源和数据的使用者,同时它拓展了观察者模式,将数据源中的 ...
- windows系统安装msi文件总提示2502、2503的错误
首先: 1.按WIN+R,在运行框中输入“gpedit.msc” 确认:2.打开本地策略组编辑器后依次展开 :“计算机配置”->“管理模板”->“windows组件”->“windo ...
- 【shell】概述
功能简介 批量自动初始化系统(update,软件安装,时区设置,安全策略...) 批量自动部署软件(LAMP,LNMP,Nginx,LVS,Tomcat) 管理应用程序(KVM,集群管理扩容,MySQ ...
- GitHub 代码仓库提示:“We found a potential security vulnerability in one of your dependencies”
github代码仓库提示:“We found a potential security vulnerability in one of your dependencies” 问题描述: Github上 ...
- Linux 设置开机启动项的几种方法
方法一:编辑rc.loacl脚本 Ubuntu开机之后会执行/etc/rc.local文件中的脚本. 所以我们可以直接在/etc/rc.local中添加启动脚本. $ vim /etc/rc.loca ...
- 关联规则之Aprior算法
关联规则挖掘在电商.零售.大气物理.生物医学已经有了广泛的应用,本篇文章将介绍一些基本知识和Aprori算法. 啤酒与尿布的故事已经成为了关联规则挖掘的经典案例,还有人专门出了一本书<啤酒与尿布 ...