逻辑回归模型logistic原理详解

article/2025/8/24 8:59:12

Hello! 小A又来咯!

之前我们详细的介绍了使用线性回归模型来进行回归学习,那如果要做分类任务该怎么办呢?

考虑二分类任务,其输出值y属于集合[0,1]。而线性回归模型z=w^T*x+b是实值。为了进行分类任务,我们需要将实值z转化成[0,1],我们首先想到的最理想的就是单位跃阶函数,即:

但是单位跃阶函数并不连续,并不能处处求导,不利于后续计算。所以我们需要找到一个能在一定程度上近似单位跃阶函数额替代函数,连续且单调可微。而对数几率函数正是这样的一个常用替代函数。如下图所示:

对数几率函数是一种sigmod函数。所谓sigmod函数就是形似“s”的函数,它可以将z值转化为一个接近0或1的y值。因此我们可以利用此单调可微函数将分类任务与线性回归模型联系起来,将z=w^T*x+b带入对数几率函数。可得:

我们可以看到此式实际上是用线性回归模型的预测结果去逼近真实标记的对数几率,进一步化简,可得:

我们将y视为样本x作为正例的可能性,那么1-y就是反例的可能性,那么二者的比例1/(1-y)称之为几率,它反映了x作为正例的相对可能性。

下一步就是要确定式子中不确定的w和b,我们可以将其中的y视为类后验概率p(y=1|x),即我们已经拿到了这个样例,它为正例的概率。于是上式可以重写为:

对其进行化简,则

由于是概率,所以接下来我们使用极大似然估计来求参数w和b。那么什么是极大似然估计呢?

举个例子:

假如有一个罐子,里面有黑白两种颜色的球,数目多少不知,两种颜色的比例也不知。我们想知道罐中白球和黑球的比例,但我们不能把罐中的球全部拿出来数。现在我们可以每次任意从已经摇匀的罐中拿一个球出来,记录球的颜色,然后把拿出来的球 再放回罐中。这个过程可以重复,我们可以用记录的球的颜色来估计罐中黑白球的比例。假如在前面的一百次重复记录中,有七十次是白球,请问罐中白球所占的比例最有可能是多少?

我们假设白球占比为p,那么黑球占比就是1-p。由于每次我们都是拿出来记录颜色后又放回去,所以每次抽取出来的球的颜色都服从独立同分布。

根据我们的实验结果:在前面的一百次重复记录中,有七十次是白球。我们将此次事件记为P,则

P=p^70*(1-p)^30。不同的p,P的结果也不一样。当p=0.5时,P=7.8 * 10^(-31)。当p=0.7时,P=2.95* 10^(-27)。极大似然估计求解p原则就是:既然事情已经发生了,为什么不让这个出现的结果的可能性最大呢?这也就是最大似然估计的核心。所以我们将其看成p的方程,求导即可。

回到我们的式子中,使用极大似然估计来求参数w和b。

合并3,4两个式子,我们可以得到:

其中指数y=1时为正例,p(y|x,w)=hw(x),当y=0时,p(y|x,w)=1-hw(x)。指数y的作用即在于此。

我们进一步化简:

如此就推导出了参数的最大似然估计。我们的目的是将所得似然函数极大化,而损失函数是最小化,因此,我们需要在上式前加一个负号便可得到最终的损失函数。 

 

由于逻辑回归的目标函数是凸函数,所以我们使用梯度上升法法来进行求解,不懂梯度上升法的读者可以翻着本公众号的上一篇文章,里面详细的介绍了梯度下降法。上升法同理。

首先我们要求解梯度,首先介绍一下sigmod函数推导:

接着我们求解梯度:

梯度上升法:

可以求到w和b。

逻辑回归有很多优点,例如:它直接对分类可能性进行建模;它不是仅预测类别,而是得到近似概率,这对许多需利用概率辅助决策的任务很有用;此外,对率函数是任意阶可导的凸函数,有很好的数学性质,现有的许多数值优化算法都可直接用于求导最优解。

下一节,我们将介绍由python实现逻辑回归,敬请期待!

如下是本人学习公众号,会经常分享人工智能学习总结或者分享学习资料资源,欢迎大家关注,我们一起交流学习~ 


http://chatgpt.dhexx.cn/article/F16Zksgo.shtml

相关文章

Python实现逻辑回归模型教程

理解多个预测变量与连续响应变量之间关系通常适用线性回归,但当响应变量为类别变量时需要适用逻辑回归。 逻辑回归是尝试从数据集中把W观测记录分为不同类别的分类算法。 常见的分类回归场景有: 通过信用分和账户余额预测客户贷款是否违约通过篮球比赛中…

【机器学习笔记4】逻辑回归模型

目录 什么是逻辑回归? Sigmoid函数 决策边界 逻辑回归的损失函数 为什么平方误差模型不可行? 对数损失函数 单个样例损失: 整体损失函数 梯度下降算法 补充:F1-score评价指标 F1-Score简介 相关概念 F-Score 示例及…

逻辑回归模型详解(Logistic Regression)

目录 广义线性模型 极大似然法 逻辑回归的假设函数 逻辑回归的损失函数 交叉熵损失函数 为什么LR模型损失函数使用交叉熵不用均方差 交叉熵损失函数的数学原理 交叉熵损失函数的直观理解 交叉熵简介 对数损失函数和交叉熵损失函数 逻辑回归优缺点 其他 逻辑回归与…

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

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

详解逻辑回归

目录 1. 逻辑回归模型介绍1.1 Logistic分布1.2 Logistic回归1.3 代价函数1.4 求解1.5 正则化1.5.1 L1正则化1.5.2 L2正则化1.5.3 L1正则化和L2正则化区别 2 与其他模型的对比2.1 与线性回归2.2 与 SVM2.3 与朴素贝叶斯 3. 模型细节3.1 为什么适合离散特征3.2 为什么不用平方误差…

逻辑回归模型(Logistic Regression)

逻辑回归符合伯努利分布。伯努利分布就是我们常见的0-1分布,即它的随机变量只取0或者1,各自的频率分别取1−p和p,当x0或者x1时,我们数学定义为: 所以在常规的逻辑回归模型中,只有两个类别,0或者…

逻辑回归(Logistic Regression)详解

逻辑回归也称作logistic回归分析,是一种广义的线性回归分析模型,属于机器学习中的监督学习。其推导过程与计算方式类似于回归的过程,但实际上主要是用来解决二分类问题(也可以解决多分类问题)。通过给定的n组数据&…

逻辑回归模型及案例(Python)

1 简介 逻辑回归也被称为广义线性回归模型,它与线性回归模型的形式基本上相同,最大的区别就在于它们的因变量不同,如果是连续的,就是多重线性回归;如果是二项分布,就是Logistic回归。 Logistic回归虽然名…

PyCharm如何修改配置大内存

现在的电脑标配都8G以上内存了,不过很多IDE仍然是以低配电脑为标准,去配置软件占用硬件的程度 因为内存会直接影响到软件的性能,可以通过手动去设置大内存 一、首先启动虚拟机 进入pychram的bin目录,可以看到2个以vmoptions为后…

jvm最大内存限制多少?

(1)堆内存分配 JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小 于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,…

大内存时代虚拟内存现在还有用吗

但凡用过Windows的人,大多听说过“虚拟内存”这四个字。尤其在当年物理内存还普遍偏低的年代,虚拟内存几乎成了每一个玩电脑的人都曾摆弄过 的东东。不过随着硬件技术不断发展,内存价格逐步白菜化,我们的电脑再也不像当年那样算计…

笔记本电脑查看几个卡槽,支持最大内存,内存条参数详细步骤,开启双通道条件

1:一个命令,轻松查看电脑支持多大内存 使用 Win R组合快捷键,打开 运行 操作框,然后在打开后面 输入命令 cmd ,并点击下方的“确定”进入命令操作窗口,如下图所示。 然后在打开的CMD命令窗口输入命令&am…

在Jupyter里按需删除大内存变量并且释放内存

使用情形: 项目需要对多个大内存变量进行处理,但是每个大内存变量处理的时候都需要加载一个另外共同的大内存变量。现在处理完一个变量之后,只能重启kernel然后处理另一个变量;但是理论上我们可以删除一个变量的内存并读入下一个…

xp计算机如何查看内存大小,xp如何查看内存大小

想知道怎么查看电脑内存的大小吗,下面是学习啦小编带来的关于xp如何查看内存大小的内容,欢迎阅读! xp查看内存大小方法一: 一: 右键单击 我的电脑,选择 【属性】 查看 二: 打开控制面板,打开【系…

Android Studio如何设置占用的最大内存?

1.File-Settings,如下图,是应用到所有项目中的。 2.下方的“Daemon Heap Size Setting”是设置当前项目编译时所能使用的最大内存的,所以如果我们需要仅当前项目有效,可以在这里设置,设置好之后点击“确定”,完成更改。

不花里胡哨看电脑主板支持最大内存与频率

怎么看电脑主板支持最大内存 WinR输入Cmd回车 wmic memphysical get maxcapacity如上图 Maxcapacity:最大内存 k/1024M/1021G 33554432/1024/102132GB说明最高支持32GB的内存 怎么看电脑主板内存条卡槽 CtrlShiftEsc 可以看到卡槽、速度频率 怎么看电脑主板支…

确定你的台式计算机支持的内存类型,怎么查看电脑主板支持多大内存?教你看主板支持多大内存2种方法...

在我们使用电脑时,都希望电脑有这极强的性能,在想要电脑有极强的情况下,电脑的硬件其重要性毋庸置疑。很多喜欢DIY的小伙伴都会选择性能强但是极具性价比的硬件组装。不过不少用户在选择内存条的时候都是往大了选,通常情况下&…

确定你的台式计算机支持的内存类型,怎么看主板支持多大内存 教你看主板支持多大内存2种方法...

怎么看主板支持多大内存?由于不同的主板最大支持的内存大小不同,一些老主板最大支持4G/8GB内存,一些新主板可以支持16GB或者更高。对于DIY装机或者打算为电脑升级内存的时,就需要先了解主板最大支持多大的内存,这样才能…

win10设置虚拟内存_大内存时代,电脑系统还需要设置虚拟内存吗?

大家都知道,内存是组成电脑的重要硬件之一,甚至内存的大小决定了电脑系统运行的快慢,那么在电脑硬件高速发展的今天,电脑系统是否只需要物理内存就可以了呢?要搞清楚这个问题,我们需要先来认识一下物理内存和虚拟内存。 什么是物理内存,什么是虚拟内存? 虚拟内存是相对…

python设置程序最大内存_限制你的Python程序所能使用的最大内存

如果程序开发不当,可能会出现占用过多内存的情况。特别是在Docker里面,如果Python程序占用太多内存,可能会导致Docker容器死掉。 为了限制Python程序所能使用的最大内存,我们可以使用Python自带的resource模块。 首先获取系统默认…