文章目录

  • 逻辑回归以及为什么叫逻辑回归
    • 从sigmoid函数引出
    • 逻辑回归的统计学模型:伯努利分布
    • 线性回归模型的通式:广义线性模型
      • 指数族分布

逻辑回归以及为什么叫逻辑回归

逻辑回归虽然名字里有回归(logistic regression),实则它是个二分类算法。

从sigmoid函数引出

同多元线性回归一样,逻辑回归也具有它的函数表达式:
hθ(x)=g(θTx)=11+e−θTxh_{\theta}(x)=g\left(\theta^{T} x\right)=\frac{1}{1+e^{-\theta^{T} x}} hθ​(x)=g(θTx)=1+e−θTx1​
仔细观察这个表达式,会发现里面其实有我们见过的形式,右下角那个θᵀx不就是多元线性回归嘛。是的,没错,所以逻辑回归实则就是在多元线性回归的基础上,多嵌套了一个函数。我也不卖关子了,这个函数就是sigmoid函数,也被称作S型曲线:
σ(x)=11+e−x\sigma(x)=\frac{1}{1+e^{-x}} σ(x)=1+e−x1​

x = np.linspace(-5,5,100)
sigmoid = 1/(1+np.exp(-x))
plt.plot(x,sigmoid)
plt.show()

可以看到sigmoid函数的值域为(0,1)。因此逻辑回归就是在多元线性回归基础上把结果缩放到 0 到 1 之间。 我们可以简单的先通过这个函数自我脑补一下逻辑回归为什么是一个分类算法:通过线性函数得到一个结果,这个结果越小于0,函数输出就越接近0,结果越大于0,函数输出就越接近1,而分类算法的输出一般情况下都会是input属于某个类别的概率大小,因此0到1之间的范围可以表示概率。中间的0.5则将结果划分为两个类别。所以我们可以简单的将sigmoid函数理解成是一个将输出转化为属于某个类别的概率的函数。

所以逻辑回归的大体思想就是,多元线性回归算法回归出一个分类超平面,预测样本通过代入这个超平面,如果是负的就说明在超平面下方,如果是正就说明是超平面上方。再通过sigmoid转化为概率,最后通过概率输出类别:

那为什么是sigmoid,为什么sigmoid的输出就一定能表示概率,别的函数不行吗?

当然,任何算法一经给出,我们都需要知其然且知其所以然,即使不能窥其所有也要至少心里有个底。

逻辑回归的统计学模型:伯努利分布

我们知道,对于二分类算法,样本只有两个标签,要么是0要么是1,并且二分类有一个特点,那就是我们最终预测样本的概率,正例加上负例的概率总和为1。即每一次预测我们都可以这么表示:
P⁡(X=1)=p,P⁡(X=0)=1−p,0<p<1\operatorname{P}(X=1)=p, \operatorname{P}(X=0)=1-p, 0<p<1 P(X=1)=p,P(X=0)=1−p,0<p<1
这个公式看着是不是有点眼熟,这不就是伯努利分布(0-1分布)嘛!

对,因此,对于模型每一次预测的输出,我们都可以写成伯努利分布的形式:
f(x∣p)={pxq1−x,x=0,10,x≠0,1f(x \mid p)= \begin{cases}p^{x} q^{1-x}, & x=0,1 \\ 0, & x \neq 0,1\end{cases} f(x∣p)={pxq1−x,0,​x=0,1x​=0,1​
伯努利分布有一个很典型的例子,就是抛硬币,只不过在抛硬币当中我们已经假设概率是对半分,但在逻辑回归中,概率是需要通过每一次模型预测给出的。

其实上面这一步,我们实则是为了给出P(y|x,p)服从伯努利分布的结论,这一结论实则是为了引出一个更强大的数学武器(接下来看不懂也无妨,我也只能在我理解的基础上尽量解释清楚。毕竟只是为了更好的知道sigmoid函数是怎么来的,觉得没太大意义的可以略过)

【这里再解释下,上述条件概率中的y就是模型预测的y,x就是输入x,y是x的函数,条件概率P的意思就是:在给定参数p(p也是待估计参数)以及输入的x的前提下,y发生的概率。而这里的结论是逻辑回归的二分类任务的输出是服从伯努利分布的】

线性回归模型的通式:广义线性模型

首先通俗解释下什么是广义线性模型,比如说家喻户晓的多元线性回归,它的形式是y = wTx+b,更一般的,考虑到某可微函数g(.),令:
g(y)=wTx+bg(y)=w^Tx+b g(y)=wTx+b

y=g−1(wTx+b)y = g^{-1}(w^Tx+b) y=g−1(wTx+b)
对于逻辑回归而言,其g(.)满足:
g(y)=ln(y1−y)g(y) = ln(\frac{y}{1-y}) g(y)=ln(1−yy​)
现在,考虑一个分类或回归问题,我们就是想预测某个随机变量 y,y 是某些特征 x 的函数。广义线性模式遵循如下三个假设:

1.p(y|x;θ)服从指数族分布,θ就是模型中待学习的变量

2.我们的目的是为了预测T(y)在条件x下的期望,并且一般情况下T(y)=y,即y_hat=E(y|x)

3.参数η和输入x是线性相关的,即η=θᵀx

指数族分布

这里首先解释下什么是指数族分布,指数族分布有:高斯分布、二项分布、伯努利分布、多项分布、泊松分布、指数分布、beta 分布、拉普拉斯分布、gamma 分布。

对于回归来说,如果因变量 y 服从某个指数族分布,那么我们就可以用广义线性回归来建模。比如说如果 y 是服从伯努利分布,我们可以使用逻辑回归(也是一种广义线性模型),或者如果y服从高斯分布,那可以用线性回归。

这里直接给出指数族分布的通用形式:
p(y;η)=b(y)exp⁡(ηTT(y)−a(η))p(y ; \eta)=b(y) \exp \left(\eta^{T} T(y)-a(\eta)\right) p(y;η)=b(y)exp(ηTT(y)−a(η))
η 是 自然参数(natural parameter)。

T(y) 是充分统计量 (sufficient statistic) ,一般情况下就是 y。

b(·)和a(·)都是函数。a(η) 是 对数部分函数(log partition function),这部分确保 Y 的分布 p(y:η) 计算的结 果加起来(连续函数是积分)等于 1。

我们上面其实已经给出了结论,那就是伯努利分布就是指数族分布的一种,不过这里再证明下也无妨:

伯努利分布(φ就是概率):
p(y;ϕ)=ϕy(1−ϕ)1−yp(y ; \phi)=\phi^{y}(1-\phi)^{1-y} p(y;ϕ)=ϕy(1−ϕ)1−y
可以把上式右边改写成指数分布族的形式(以e为底):
p(y;ϕ)=exp⁡(yln⁡ϕ+(1−y)ln⁡(1−ϕ))=exp⁡((ln⁡(ϕ1−ϕ))y+ln⁡(1−ϕ))\begin{aligned} &p(y ; \phi)=\exp (y \ln \phi+(1-y) \ln (1-\phi)) \\ &=\exp \left(\left(\ln \left(\frac{\phi}{1-\phi}\right)\right) y+\ln (1-\phi)\right) \end{aligned} ​p(y;ϕ)=exp(ylnϕ+(1−y)ln(1−ϕ))=exp((ln(1−ϕϕ​))y+ln(1−ϕ))​
这里我们就可以一一对照一下,
b(y)=1ηT=ln⁡(p1−p)=θTxT(y)=ya(η)=−ln⁡(1−ϕ)\begin{aligned} & b(y)=1 \\ &\eta^T=\ln \left(\frac{p}{1-p}\right)=\theta^{T} x\\ &T(y)=y\\ &a(\eta)=-\ln (1-\phi) \end{aligned} ​b(y)=1ηT=ln(1−pp​)=θTxT(y)=ya(η)=−ln(1−ϕ)​
这里η是个数值,所以转不转置都没关系。

由此可知:
ηT=θTx=ln⁡(p1−p)eθTx=p1−pp=eθTx−eθTx⋅p=eθTx1+eθTx=11+e−θTx\begin{aligned} &\eta^T=\theta^{T} x=\ln \left(\frac{p}{1-p}\right)\\ &e^{\theta^{T} x} =\frac{p}{1-p} \\ &p =e^{\theta^{T} x}-e^{\theta^{T} x} \cdot p \\ &=\frac{e^{\theta^{T} x}}{1+e^{\theta^{T} x}} \\ &=\frac{1}{1+e^{-\theta^{T} x}} \end{aligned} ​ηT=θTx=ln(1−pp​)eθTx=1−pp​p=eθTx−eθTx⋅p=1+eθTxeθTx​=1+e−θTx1​​
啊哈,最下面那个形式不就是sigmoid吗,顺便一提,这里的ln[p/(1-p)]在数学上还有个名字,叫做对数几率。然后我又顺带一查,惊喜的发现,原来对数几率回归的英文名就是logistic regression!

这下子,虽然对上面的推导过程还有些一知半解,但是至少明白了逻辑回归中的回归到底在回归些什么。

我们知道,多元线性回归的表达式是在拟合那条直线。其实逻辑回归就是用着多元线性回归的表达式,在拟合对数几率,只不过这个拟合的过程只是作为一个中间步骤,最后拟合出的对数几率又通过sigmoid函数转化为二分类的概率,所以本质上逻辑回归还是一个披着分类的大衣的回归算法。

既然都提到了广义线性回归,那我们这里再提一下多元线性回归也无妨,毕竟多元线性回归是假设样本的误差服从高斯分布,高斯分布也是指数族分布的一种。

因为多元线性回归假设样本同方差,所以我们假设方差为1不影响:
p(y;μ)=12πexp⁡(−12(y−μ)2)p(y ; \mu)=\frac{1}{\sqrt{2 \pi}} \exp \left(-\frac{1}{2}(y-\mu)^{2}\right) p(y;μ)=2π​1​exp(−21​(y−μ)2)
写成指数族分布的形式就是;
=12πexp⁡(−12y2)⋅exp⁡(μy−12μ2)=\frac{1}{\sqrt{2 \pi}} \exp \left(-\frac{1}{2} y^{2}\right) \cdot \exp \left(\mu y-\frac{1}{2} \mu^{2}\right) =2π​1​exp(−21​y2)⋅exp(μy−21​μ2)
由广义线性模型的假设,我们是为了预测y在条件x下的期望,这里期望其实就是μ。并且μ=η=θᵀx

所以y_hat=θᵀx。这也就是多元线性回归的表达式。

【机器学习算法】逻辑回归为什么叫逻辑回归相关推荐

  1. ML机器学习算法(一): 基于逻辑回归的分类预测

    机器学习算法(一): 基于逻辑回归的分类预测 1 逻辑回归的介绍和应用 1.1 逻辑回归的介绍 逻辑回归(Logistic regression,简称LR)虽然其中带有"回归"两个 ...

  2. 机器学习算法概述:随机森林逻辑回归

    摘要: 机器学习算法入门介绍:随机森林与逻辑回归! 随机森林是用于分类和回归的监督式集成学习模型.为了使整体性能更好,集成学习模型聚合了多个机器学习模型.因为每个模型单独使用时性能表现的不是很好,但如 ...

  3. 机器学习算法与Python实践之逻辑回归(Logistic Regression)

    转载自:http://blog.csdn.net/zouxy09/article/details/20319673 机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书. ...

  4. 机器学习算法大汇总--线性回归、逻辑回归、正则化、神经网络、SVM、K-Means、PCA、集成学习等!

    本文很长~请耐心观看 另:本文主要用于本人的复习使用,欢迎大佬的指正和添加. 还有:本人也只是初出茅庐,希望大佬手下留情,谢谢!! 1.算法分类 机器学习算法分为: 有监督,无监督 两大阵营 1.有监 ...

  5. 机器学习算法(一):逻辑回归模型(Logistic Regression, LR)

    目录 1 LR 1.1 直观表述 1.2 决策边界(Decision Boundary) 2. 权值求解 2.1 代价函数(似然函数) 2.1.1 为什么损失函数不用最小二乘?即逻辑斯蒂回归损失函数为 ...

  6. 阿里云 龙珠机器学习训练营Task1:机器学习算法(一): 基于逻辑回归的分类预测

    补充一些代码的注释,方便理解: #Step1:库函数导入 #基本函数库 import numpy as np #导入画图库 import matplotlib.pyplot as plt import ...

  7. 【天池龙珠训练营-机器学习】机器学习算法(一): 基于逻辑回归的分类预测

    一.逻辑回归简介 逻辑回归(Logistic regression,简称LR),是一个分类模型. 原理简介: Logistic回归虽然名字里带"回归",但是它实际上是一种分类方法, ...

  8. 机器学习算法系列(四)- 岭回归算法(Ridge Regression Algorithm)

    阅读本文需要的背景知识点:标准线性回归算法.一丢丢编程知识 一.引言   前面一节我们学习了机器学习算法系列(三)- 标准线性回归算法(Standard Linear Regression Algor ...

  9. 机器学习算法(一):逻辑回归(Logistic Regression)

    背景:逻辑回归可以说是机器学习领域最常用也最经典的模型. 问题: (1)逻辑回归相比于线性回归有何异同? 异: 逻辑回归处理分类问题,而线性回归处理回归问题.(本质区别) 逻辑回归中,因变量的取值是一 ...

  10. 机器学习算法(一): 基于逻辑回归的分类预测-Task01

    基于逻辑回归LR的分类预测 1.逻辑回归的介绍 Logistic Regression 虽然被称为回归,但其实际上是分类模型,并常用于二分类.Logistic Regression 因其简单.可并行化 ...

最新文章

  1. 一图了解git常用开源许可证书
  2. linux连接wifi账户密码忘了怎么办,wifi登录密码忘了怎么办?
  3. jemter编写Mysql脚本___传参
  4. python 基础教程:字符串内建函数之大小写的区别
  5. Highcharts 中文参考文档
  6. SpringAOP概念
  7. 无状态mysql_既然HTTP是无状态协议,mysql_close还有必要么?
  8. js如何获取服务器端时间?
  9. 服务器重装 pe,WinPE 下安装 Windows Server 2003 服务器
  10. put请求方式参数如何传_TP5请求(request)变量
  11. 删除WinXP下打开最近文档后,产生的无效快捷方式
  12. 谈谈linux系统调用
  13. C语言入门篇(二)指针的介绍和运用
  14. JAVA计算机毕业设计实验室耗材管理系统(附源码、数据库)
  15. 用计算机打出的乐谱,怎样在计算机内输入乐谱,并打印
  16. 【gp数据库】你可能不知道却超级实用的函数
  17. 舞蹈艺考生可以报计算机专业吗,全国舞蹈类艺考
  18. 模拟无线透传的STM32的24L01无线模块与串口USART通信
  19. Android手机应用开发(一) | 基本的UI界面设计
  20. 数澜、宜信、贝壳三种数据中台建设模式探讨 | 数澜科技

热门文章

  1. PLC控制技术与组态技术实训装置
  2. php围棋源码,腾讯围棋AI技术 PhoenixGo 正式开源,源码、模型全公开
  3. 第1章 基础:逻辑和证明 部分内容
  4. 芯片封装技术——Wire Bond与Flip Chip
  5. 刷题记录-NPUCTF2020(web部分)
  6. cesium 车流_基于Cesium的城市三维可视化地下管线系统的建立方法与流程
  7. ①编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。②集合A、B的差集③对分行输入的若干字符串按字典序(由小到大)进行排序并输出。
  8. 为何,以及如何提炼一个函数
  9. 分享一篇父母对孩子教育方法的文章
  10. 你可能还没听过DNA存储技术,但微软已经打算三年内将其商用了