logistic回归的一些直观理解(1.连接函数 logit probit)

前面写了一些读书笔记是关于用logit回归做二分类问题后的效果评价,基本上已经可以告一段落。然后打算回过头来整理一下logit回归本身的一些思路。很惭愧,我不是统计学出身,当年概率论差点考挂,数理统计也是一门选修课(唯一印象深刻的是老师的口音),所以大概很难从理论上进行严格的阐述,主要还是写一点直观的理解。

限制一下问题的范围吧,基本上用到logistic回归的,很多是二分类问题,也就是因变量是0-1类型的情况。我们想要研究的是因变量与自变量之间的关系,跟线性回归是完全类似的问题。但是由于因变量形式比较特殊,所以造成了处理方式的不同,也就引出了我的第一个困惑:为什么要引进广义回归方法呢?

首先,假设我们从线性回归的思路出发,遇到的第一个问题就是,我们问题的因变量是什么?这个因变量是一个分类的变量,看一下散点图就能知道因变量与自变量之间不是那种直线的关系,这就导致我们没办法写出传统的那种比较容易理解的线性回归公式 y = a + b*x。我们想到的一个解决办法是,将这个因变量抽象成它的期望值(这应该是广义线性回归的核心内容之一)。在0-1变量的情形下,这个期望值就等于因变量取1的概率,一般就写成P了。这个P貌似是可以涵盖了0-1因变量的信息,同时也能够用来比较直观地理解我们的问题:当自变量发生变化时,我们的目标变量取1的概率是怎样变化的。

然后,我们继续试图用线性回归的思路,把问题写成 P = a + b*x,也就是说,我们假设因变量取1的概率跟自变量是线性关系。这个假设挺自然也挺合理的,但是却导致了另外三个问题:参数估计,因变量P的取值范围,以及非正态的误差。由于这里的P是我们抽象出来的一个变量,我们没办法从观测数据中得到这个值,所以也就没办法用我们熟悉的最小二乘法,而如果不用最小二乘法,说实话,我还真不知道应该用什么方法来估计参数(知识太有限了)。另一方面,等式右边是自变量x的线性函数,于是他的取值范围是负无穷到正无穷,这显然与等式左边的概率P的取值范围相矛盾,是不合理的。同时,非正态的误差也与线性回归的基本假设相违背。

于是,我们就得想办法对上面的这个回归公式 P = a + b*x做一些调整,这里就涉及到了广义线性回归的另一个核心内容,连接函数。连接函数可以认为是对等式左边的概率P做一点变换,使得我们能够有办法进行参数估计,并且让变化之后的取值范围变得合理。参数估计这块,我不是非常明白,因为可能涉及分布族的一些理论,貌似是为了能够方便地进行极大似然估计。而对取值范围进行缩放变换似乎稍微容易理解一点,就是努力地将P的[0,1]限制取消。这里常用的连接函数就是logit()与probit()。经过变换后,回归公式变成了:

logit(P) = log(P / (1-P)) = a + b*x以及 probit(P) = a + b*x

这两个连接函数的性质使得P的取值被放大到整个实数轴上。

事实上可以把上面的公式改写一下:

P = exp(a + b*x) / (1 + exp(a + b*x))或者 P = pnorm(a + b*x)(这个是标准正态分布的分布函数)

可以看出,公式右边的取值被限制到[0,1]上了,从而使得公式变得合理。

但是,能够实现这种[0,1]限制的函数应该也蛮多的,为啥会推荐这两个变换呢?这个应该跟业务理解有关。

可以先看一下经过变换后,自变量和P的关系是个什么样子。

上半部分图形显示了概率P随着自变量变化而变化的情况,下半部分图形显示了这种变化的速度的变化(没记错的话,分布函数求导应该就是密度函数)。可以看得出来,概率P与自变量仍然存在或多或少的线性关系,主要是在头尾两端被连接函数扭曲了,从而实现了[0,1]限制。同时,自变量取值靠近中间的时候,概率P变化比较快,自变量取值靠近两端的时候,概率P基本不再变化。这就跟我们的直观理解相符合了,似乎是某种边际效用递减的特点,不恰当的例子就是我们青春期的时候狂长个子而当青春期过去我们的个头就基本稳定了。(确实是个不恰当的例子,恰当的例子暂时没想到。)这就基本解释了我们选择这两个变化作为连接函数的一部分原因。

同时也可以看出来,logit跟probit的形式虽然不同,外观还是蛮相似的。前几天我还跟老段讨论这个来着,我当时以为probit回归是跟logit回归完全不同的假设,看来是理解不够的缘故。

顺便来画一下不同系数的效果。

到这里,logit回归就基本成型了,里面用到比较重要的内容是”求期望“和”连接函数“,最后的回归公式就是

有这个形式,就比较容易用似然函数的方法进行参数估计了。

logistic回归的一些直观理解(1.连接函数 logit probit)相关推荐

  1. R语言广义线性模型函数GLM、R中有几种logistic回归扩展和变异、robust包中的glmRob函数鲁棒logistic回归、ms包中的lrm函数拟合序数逻辑回归

    R语言广义线性模型函数GLM.glm函数构建逻辑回归模型(Logistic regression).R中有几种logistic回归扩展和变异.robust包中的glmRob函数鲁棒logistic回归 ...

  2. 机器学习实战(五)——Logistic 回归

    文章目录 Logistic 回归 5.2 基于最优化方法的最佳回归系数确定 5.2.1 梯度上升法 5.3 python实战 5.3.1 查看数据集分布情况 5.3.2 训练 5.3.3 绘制决策边界 ...

  3. Logistic回归 python实现

    Logistic回归 算法优缺点: 1.计算代价不高,易于理解和实现 2.容易欠拟合,分类精度可能不高 3.适用数据类型:数值型和标称型 算法思想: 其实就我的理解来说,logistic回归实际上就是 ...

  4. logistic回归报错问题:Warning messages: 1: glm.fit:算法没有聚合 2: glm.fit:拟合機率算出来是数值零或一

    logistic回归的时候报错问题包括下面两种 Warning: glm.fit: algorithm did not converge Warning: glm.fit: fitted probab ...

  5. Python3《机器学习实战》学习笔记(七):Logistic回归实战篇之预测病马死亡率

    转载请注明作者和出处: http://blog.csdn.net/c406495762 机器学习知乎专栏:https://zhuanlan.zhihu.com/ml-jack CSDN博客专栏:htt ...

  6. 用python做逻辑回归梯度上升_机器学习实例---4.1、Logistic回归基础篇之梯度上升算法...

    一 前言 本文从Logistic回归的原理开始讲起,补充了书上省略的数学推导.本文可能会略显枯燥,理论居多,Sklearn实战内容会放在下一篇文章.自己慢慢推导完公式,还是蛮开心的一件事. 二 Log ...

  7. 机器学习-Logistic回归原理及实战

    Logistic回归 回归 在介绍Logistic回归之前,先容我介绍一下什么是回归 回归,指研究一组随机变量(Y1 ,Y2 ,-,Yi)和另一组(X1,X2,-,Xk)变量之间关系的统计分析方法,又 ...

  8. 广义线性模型(Generalized Linear Model)之二:Logistic回归

    广义线性模型(Generalized Linear Model)之二:Logistic回归 一.引入:多元线性回归模型 二.Logistic回归模型 三.非条件logistic回归模型 (一)介绍 ( ...

  9. [机器学习]Logistic回归

    目录 什么是逻辑斯蒂(Logistic)回归? 1.线性回归函数 2.  逻辑函数(Sigmoid函数) 3. Logistic回归函数 Logistic回归分类器 梯度上升算法 python实现梯度 ...

最新文章

  1. 实验二 164 张增进
  2. CaSS中lisp命令不可用_小白想要自学南方cass?又苦于不会修改比例尺,这里有一份小白快速上手的测绘神器...
  3. onTouchEvent
  4. Quartz.net 开源job调度框架(二)----定点执行
  5. 力扣刷题【20,21,26,27,35】
  6. React 点击按钮显示div与隐藏div
  7. 学习需要用心 规划和落实
  8. 广西专业技术人员职称个人版_「职称评审」机械工程专业技术人员如何写职称论文?...
  9. Unity3d Android安卓JDK9打包失败
  10. Vue 将字符串保存成 TXT 文件保存到电脑
  11. 计算机wind10切换桌面wind7系统,win10一键切回win7桌面方法_Win10桌面切换成Win7界面的方法...
  12. nssa和stub_OSPF里几个特殊区域(stub、Totally stubby、NSSA、Totally NSSA)总结
  13. php是哪个快递,php快递查询API类(支持各种快递的查询)
  14. 微信小程序自定义switch中带文字效果
  15. 电脑快捷方式删除文件后四种找回方法
  16. 【GZH逸佳君】生财有术:100多位互联网赚钱高手分享的2021年5万字赚钱建议
  17. Github与Git安装使用
  18. 关于PhotoShop中保存CMYK格式TIFF文件在GDI+错误地显示颜色的问题解决方法
  19. 晶振串联电阻与并联电阻的作用
  20. 刚体验完RabbitMQ?一文带你SpringBoot+RabbitMQ方式收发消息

热门文章

  1. python爬虫练习网站,墙裂安利这个可以练习爬虫的网站
  2. ★简单明确( ̄︶ ̄)↗——百度网盘秒传链接教程(使用火狐浏览器)
  3. Selenium在Firefox浏览器中UI自动化测试环境搭建
  4. Ikea与Ori Living连手将打造机器人家具系统
  5. maven 打的jar包很小
  6. 微信投票系统java开发_微信投票系统 v3.0
  7. 制作一款简易的可燃气体报警器,你来吗?
  8. 如何制作数据可视化网页
  9. 华为服务器内存条在主板位置,电脑的主板支持几代内存条?安装的位置又在哪?又要如何安装呢?...
  10. python运算结果是fasls的代码_《利用Python进行数据分析》--整理学习