逻辑回归详解

article/2025/8/24 8:35:16

逻辑回归通常用于解决分类问题,比如:客户是否该买某个商品,借款人是否会违约等。实际上,“分类”是逻辑回归的目的和结果,中间过程依旧是“回归”,因为通过逻辑回归模型,我们得到的是0-1之间的连续数字,即概率,类似借款人违约的可能性。然后给这个可能性加上一个阈值,就变成了分类。

 

逻辑回归与线性模型的关系

逻辑回归是线性模型,但属于广义线性模型。普通线性模型与广义线性模型的联系:

1、普通线性模型

普通线性模型的表达式:

Y=\beta_{0}+\beta_{1} x_{1}+\beta_{2} x_{2}+\ldots+\beta_{p-1} x_{p-1}+\epsilon

\beta _0是截距项,\beta _1是未知参数。

普通线性模型具备以下特点:

  • 响应变量y服从正太分布;
  • 误差\varepsilon具有正太性,与x的变化无关;
  • x_i具有非随机性,可测并不存在误差,\beta _i虽然未知,但不具有随机性;
  • 特征x_i和对应的参数\beta _i有对应关系,具有非随机性;

2、广义线性模型

  • 响应变量y的分布从正太分布扩展到指数分布族:比如正态分布、泊松分布、二项分布、负二项分布、伽玛分布等,这和\varepsilon不满足正态分布等价;
  • x_i具有非随机性,可测并不存在误差,\beta _i虽然未知,但不具有随机性;
  • 特征x_i和对应的参数\beta _i有对应关系,具有非随机性;

可知,逻辑回归是响应变量y服从伯努利分布的广义线性模型。

逻辑回归和线性回归的区别与联系

区别

  • 线性回归假设响应变量服从正态分布,逻辑回归假设响应变量服从伯努利分布
  • 线性回归优化的目标函数是均方差(最小二乘),而逻辑回归优化的是似然函数(交叉熵)
  • 线性归回要求自变量与因变量呈线性关系,而逻辑回归没有要求
  • 线性回归分析的是因变量自身与自变量的关系,而逻辑回归研究的是因变量取值的概率与自变量的概率
  • 逻辑回归处理的是分类问题,线性回归处理的是回归问题,这也导致了两个模型的取值范围不同:0-1和实数域
  • 参数估计上,都是用极大似然估计的方法估计参数(高斯分布导致了线性模型损失函数为均方差,伯努利分布导致逻辑回归损失函数为交叉熵)

联系

  • 两个都是线性模型,线性回归是普通线性模型,逻辑回归是广义线性模型
  • 表达形式上,逻辑回归是线性回归套上了一个Sigmoid函数

最大似然估计

sigmod的函数为g(z)=\frac{1}{1+e^{-z}},该函数具备很好的鲁棒性,并将输出映射到(0,1)之间且具有概率意义,解决了线性回归拟合设置阈值受到离群点的影响。函数形式可表现为:

P(y=0|w,x) = 1 – g(z)                                # 预测负例的概率

P(y=1|w,x) =  g(z)                                     # 预测正例的概率

P = (g(w, x i))^{y^{i}} *(1-g(w, x i))^{1-y^{i}}   # 预测结果的正确率

若想让预测出的结果全部正确的概率最大,根据最大似然估计,就是所有样本预测正确的概率相乘得到的P(总体正确)最大,数学形式为:

L(\theta)=\prod_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)\right)^{y^{i}}\left(1-h_{\theta}\left(x^{(i)}\right)\right)^{1-y^{i}},其中,h_{\theta}(x)=\frac{1}{1+e^{-z}}

现在对公式求解,最大值就是最优解。我们知道,一个连乘的函数是不好计算的,我们可以通过两边同时取log的形式让其变成连加。

\begin{aligned} l(\theta) &=\log L(\theta) \\ &=\sum_{i=1}^{m}\left(y^{(i)} \log h_{\theta}\left(x^{(i)}\right)+\left(1-y^{(i)}\right) \log \left(1-h_{\theta}\left(x^{(i)}\right)\right)\right) \end{aligned}

 这个函数就是逻辑回归的损失函数,我们叫它交叉熵损失函数。

求解逻辑回归模型

1、梯度下降法

2、牛顿法

正则化项

机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般称作 L1正则化 和 L2正则化,或者 L1范数 和 L2范数

L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。对于线性回归模型,使用L1正则化的模型叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归)

L1正则化的数学公式为:J=J_{0}+\alpha \sum_{w}|w| ,直接在原来的损失函数基础上加上权重参数的绝对值。

L2正则化的数学公式为:J=J_{0}+\alpha \sum_{w} w^{2},直接在原来的损失函数基础上加上权重参数的平方和。

一般回归分析中w表示特征的系数,从上式可以看到正则化项是对系数做了处理(限制),权值的绝对值。

L1正则化和L2正则化的说明如下:

  • L1正则化是指权值向量w中各个元素的绝对值之和,通常表示为||\omega ||_1 。可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择。
  • L2正则化是指权值向量w中各个元素的平方和然后再求平方根(可以看到Ridge回归的L2正则化项有平方符号),通常表示为||\omega ||_2 。可以防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合

1、L1正则化和稀疏矩阵的关系

上面提到L1正则化有助于生成一个稀疏权值矩阵,进而可以用于特征选择。为什么要生成一个稀疏矩阵?

稀疏矩阵指的是很多元素为0,只有少数元素是非零值的矩阵,即得到的线性回归模型的大部分系数都是0. 通常机器学习中特征数量很多,例如文本处理时,如果将一个词组(term)作为一个特征,那么特征数量会达到上万个(bigram)。在预测或分类时,那么多特征显然难以选择,但是如果代入这些特征得到的模型是一个稀疏模型,表示只有少数特征对这个模型有贡献,绝大部分特征是没有贡献的,或者贡献微小(因为它们前面的系数是0或者是很小的值,即使去掉对模型也没有什么影响),此时我们就可以只关注系数是非零值的特征。这就是稀疏模型与特征选择的关系。

2、L2正则化和过拟合的关系

拟合过程中通常都倾向于让权值尽可能小,最后构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,专业一点的说法是『抗扰动能力强』。

LR中特征相关问题

1、特征离散化目的

  1. 离散特征可以one-hot, 而稀疏向量内积运算速度快,结果易存储
  2. 离散后数据鲁棒性强,不会因为数据发生一点小的变动而表现出完全不同的性质,使模型更稳定
  3. 离散后可以进行特征交叉,引入非线性特征
  4. 增强模型的表达能力,离散化后,原来的一个特征变成N个特征,加大了模型的拟合能力
  5. 特征离散后相当于简化了特征,一定程度上减轻了过拟合

总的来说,特征离散化以后起到了加快计算,简化模型和增加泛化能力的作用。

2、特征的共线性

LR模型中特征的共线性不会影响模型的最优解,但是会影响系数的稳定性。比如两个特征x_1,x_2,分别表示米和厘米,这两个长度高度共线性。

1.5m = 1 * x_1 + 50*x_2

x_2的系数发生质的翻转,但是表达能力没变。

所以,LR模型中特征的共线性不会影响模型的最优解,但是会使得系数不稳定,从而解释性变差。

删除共线性的原因:

  • 提高模型的可解释性;
  • 提高模型的训练速度

3、特征权重的绝对值是否可以衡量特征的重要性

不一定,首先特征可能没有归一化,系数受到量级的影响(1m=1cm*100),其次,特征之间可能存在共线性,导致特征系数不稳定,可解释性差。

4、逻辑回归的分类问题

logistic回归的因变量可以是二分类的,也可以是多分类的,但是二分类的更为常用,也更加容易解释,多类可以使用softmax方法进行处理。实际中最为常用的就是二分类的logistic回归

5、线性

对于线性方程y=ax+b,当b=0时,我们说y=ax,y和x的大小始终符合y/x=a,图像上任意一点的坐标,y值都是x值的a倍。我们把这种横纵坐标始终呈固定倍数的关系叫做"线性"。

6、阈值选定

逻辑回归解决分类问题,其输出的概率结果需要确定阈值来分类。对于逻辑回归预测的(0,1)之间的值,第一印象是以0.5为阈值,大于0.5为正例,小于0.5为负例子。但是阈值的设定往往是根据实际情况来判断的,做一个肿瘤的良性恶性判断,选定阈值为0.5就意味着,如果一个患者得恶性肿瘤的概率为0.49,模型依旧认为他没有患恶性肿瘤,结果就是造成了严重的医疗事故。此类情况我们应该将阈值设置的小一些,如0.,一个人患恶性肿瘤的概率超过0.3我们的算法就会报警,造成的结果就是这个人做一个全面检查,比起医疗事故显然这个更容易接受。再比如识别验证码,输出的概率为这个验证码识别正确的概率,此时我们大可以将概率设置的高一些,因为即便识别错了又能如何,造成的结果就是在一个session时间段内重试一次。机器识别验证码就是一个不断尝试的过程,错误率本身就很高。

7、评估方法

对于LR分类模型的评估,常用AUC来评估

 


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

相关文章

什么是逻辑回归?

深度学习(Deep Learning)是机器学习(Machine Learning)的一大分支,它试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 逻辑回归(Logistic Regression,也译作…

逻辑回归模型调参

文章目录 一、逻辑回归(Logistic Regression)二、样本不均衡问题处理1 、过采样方法(一)、随机过采样法(二)、SMOTE算法 2 、欠采样方法(一)、随机欠采样 三、网格搜索快速调优损失函数(对数似然损失) 四、模型评价ROC曲线 一、逻…

逻辑回归(模型的建立与求解)

跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注! 0 前言 在上一讲中,笔者通过五篇文章来详细的介绍了线性回归模型,那么本讲开始继续介绍下一个经典的机器学习算法逻辑回归(Logistic…

逻辑回归模型

本文代码及数据集来自《Python大数据分析与机器学习商业案例实战》 逻辑回归模型本质就是将线性回归模型通过Sigmoid函数进行了一个非线性转换,得到一个介于0~1之间的概率值。因此,逻辑回归模型的本质是预测概率,而不是直接预测具…

解读Logistic回归模型

一、logistic回归的由来 logistic回归在百度百科是这样定义的: logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。 由此可见 logistic回归是从线性回归模…

logistic回归模型

logistic回归模型 前言logistic回归模型logit变换几率logistic模型二项逻辑回归模型损失函数 logistic回归模型的应用logistic回归模型的评价 前言 从这一期开始,我们准备介绍一系列机器学习算法模型,主要包括logistic回归,决策树&#xff0…

逻辑回归模型logistic原理详解

Hello! 小A又来咯! 之前我们详细的介绍了使用线性回归模型来进行回归学习,那如果要做分类任务该怎么办呢? 考虑二分类任务,其输出值y属于集合[0,1]。而线性回归模型zw^T*xb是实值。为了进行分类任务,我们需要将实值z转…

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然后处理另一个变量;但是理论上我们可以删除一个变量的内存并读入下一个…