逻辑回归问题汇总

article/2025/9/27 1:10:39

文章目录

      • 1. Logistic回归与线性回归的区别与联系?
      • 2. Logistic回归有哪些基本假设?
      • 3. Logistic回归的损失函数?
      • 4. Logistic回归损失函数的求解方法?
      • 5. Logistic回归是如何进行分类的?
      • 6. Logistic回归为什么要用极大似然函数作为损失函数?
      • 7. 为什么在Logistic回归训练的过程中要将高度相关的特征去掉?
      • 8. Logistic回归有哪些优缺点?
      • 9. LR与SVM的区别与联系?
      • 10. Logistic回归如何实现多分类?

一句话概括: 逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的
包含了5个点 : 1:逻辑回归的假设,2:逻辑回归的损失函数,3:逻辑回归的求解方法,4:逻辑回归的目的,5:逻辑回归如何分类。


1. Logistic回归与线性回归的区别与联系?

区别:
最大区别在于它们的因变量不同,Logistic回归与现行回归属于同一家族:广义线性模型。

  • (1)线性回归处理的是回归问题,逻辑回归处理的是分类问题,这是本质区别;
  • (2)线性回归要求因变量是连续型的,Logistic回归要求因变量是分类变量(离散变量);
  • (3)线性回归要求变量服从正态分布,Logistic回归对变量分布无要求;
  • (4)线性回归要求自变量和因变量呈线性关系,Logistic并不要求;
  • (5)Logistic回归是分析因变量取某个值的概率与自变量的关系,而线性回归是直接分析因变量与自变量的关系;
    更详细的区别如下图,参考学术群里结果:
    在这里插入图片描述
    联系:
  • (1)二者都使用了极大似然估计来对训练样本进行建模
    • 线性回归使用最小二乘法,实际上就是在自变量x与超参数θ确定,因变量y服从正态分布的假设下,使用极大似然估计的一个化简;而逻辑回归中通过对似然函数的学习,得到最佳参数θ;
  • (2)二者在求解超参数的过程中,都可以使用梯度下降的方法,这也是监督学习中一个常见的相似之处。

2. Logistic回归有哪些基本假设?

逻辑回归的第一个基本假设是假设数据服从伯努利分布。
伯努利分布有一个简单的例子是抛硬币,抛中为正面的概率是 p p p,抛中为负面的概率是 1 − p 1−p 1p
在逻辑回归里假设 h θ ( x ) h_θ(x) hθ(x) 为样本为正的概率, 1 − h θ ( x ) 1−h_θ(x) 1hθ(x)为样本为负的概率,那么模型可以描述为:
h θ ( x ; θ ) = p h_\theta\left(x;\theta \right )=p hθ(x;θ)=p

逻辑回归的第二个假设是假设样本为正的概率是:
p = 1 1 + e − θ T x p=\frac{1}{1+e^{-\theta^{T} x}} p=1+eθTx1

所以逻辑回归的最终形式 :
h θ ( x ; θ ) = 1 1 + e − θ T x h_\theta\left(x;\theta \right )=\frac{1}{1+e^{-\theta^{T} x}} hθ(x;θ)=1+eθTx1


3. Logistic回归的损失函数?

在这里插入图片描述


4. Logistic回归损失函数的求解方法?

二元逻辑回归的损失函数(极大似然函数)极小化的求解,有比较多的方法,最常见的有梯度下降法,坐标轴下降法,等牛顿法等,最常用的是梯度下降来不断逼近最优解。
梯度下降法:随机梯度下降(SGD)、批量梯度下降(BGD)、小批量梯度下降(MBGD)。
(1)批量梯度下降: θ i = θ i − α ∑ j = 0 m ( h θ ( x 0 ( j ) , x 1 ( j ) , . . . x n ( j ) ) − y j ) x i ( j ) \theta_i = \theta_i - \alpha\sum\limits_{j=0}^{m}(h_\theta(x_0^{(j)}, x_1^{(j)}, ...x_n^{(j)}) - y_j)x_i^{(j)} θi=θiαj=0m(hθ(x0(j),x1(j),...xn(j))yj)xi(j)
BGD会获得全局最优解,缺点是在更新每个参数的时候需要遍历所有的数据,计算量会很大,并且会有很多的冗余计算,导致的结果是当数据量大的时候,每个参数的更新都会很慢。

(2)随机梯度下降: θ i = θ i − α ( h θ ( x 0 ( j ) , x 1 ( j ) , . . . x n ( j ) ) − y j ) x i ( j ) \theta_i = \theta_i - \alpha (h_\theta(x_0^{(j)}, x_1^{(j)}, ...x_n^{(j)}) -y_j)x_i^{(j)} θi=θiα(hθ(x0(j),x1(j),...xn(j))yj)xi(j)
SGD下降法由于每次仅仅采用一个样本来迭代,训练速度很快,但仅仅用一个样本决定梯度方向导致解很有可能不是最优,一次迭代一个样本导致迭代方向变化很大,不能很快的收敛到局部最优解。

(3)小批量梯度下降: 对于m个样本,我们采用n个样子来迭代,1<n<m。一般可以取n=10。
θ i = θ i − α ∑ j = t t + n − 1 ( h θ ( x 0 ( j ) , x 1 ( j ) , . . . x n ( j ) ) − y j ) x i ( j ) \theta_i = \theta_i - \alpha \sum\limits_{j=t}^{t+n-1}(h_\theta(x_0^{(j)}, x_1^{(j)}, ...x_n^{(j)}) - y_j)x_i^{(j)} θi=θiαj=tt+n1(hθ(x0(j),x1(j),...xn(j))yj)xi(j)
MBGD每次更新的时候使用n个样本。减少了参数更新的次数,可以达到更加稳定收敛结果。


5. Logistic回归是如何进行分类的?

        逻辑回归作为一个回归(也就是y值是连续的),如何应用到分类上去呢。y值确实是一个连续的变量。逻辑回归的做法是划定一个阈值,y值大于这个阈值的是一类,y值小于这个阈值的是另外一类。阈值具体如何调整根据实际情况选择。一般会选择0.5做为阈值来划分。


6. Logistic回归为什么要用极大似然函数作为损失函数?

        损失函数一般有四种:平方损失函数,对数损失函数,HingeLoss0-1损失函数,绝对值损失函数。
将极大似然函数取对数以后等同于对数损失函数。在逻辑回归模型中,对数损失函数的训练求解参数的速度是比较快的,求解参数式子如下:

θ j = θ j − ( y i − h θ ( x i ; θ ) ) ∗ x j i \theta _j=\theta _j-\left ( y^{i} -h_\theta (x^{i};\theta ) \right )\ast x^{i}_j θj=θj(yihθ(xi;θ))xji

        这个式子的更新速度只和 x j i x^i_j xji y i y^i yi相关。和sigmod函数本身的梯度是无关的。这样更新的速度是可以自始至终都比较的稳定。如果你使用平方损失函数,你会发现梯度更新的速度和sigmod函数本身的梯度是很相关的。sigmod函数在它在定义域内的梯度都不大于0.25。这样训练会非常的慢。


7. 为什么在Logistic回归训练的过程中要将高度相关的特征去掉?

(1)去掉高度相关的特征会让模型的可解释性更好。
(2)可以大大提高训练的速度。如果模型当中有很多特征高度相关的话,就算损失函数本身收敛了,但实际上参数是没有收敛的,这样会拉低训练的速度。其次是特征多了,本身就会增大训练的时间。


8. Logistic回归有哪些优缺点?

优点:
(1)训练速度较快,分类的时候,计算量仅仅只和特征的数目相关;
(2)简单易理解,模型的可解释性非常好,从特征的权重可以看到不同的特征对最后结果的影响;
(3)适合二分类问题,不需要缩放输入特征;
(4)内存资源占用小,因为只需要存储各个维度的特征值;

缺点:
(1)不能用Logistic回归去解决非线性问题,因为Logistic的决策面试线性的;
(2)对多重共线性数据较为敏感;
(3)很难处理数据不平衡的问题;
(4)准确率并不是很高,因为形式非常的简单(非常类似线性模型),很难去拟合数据的真实分布;
(5)逻辑回归本身无法筛选特征,有时会用gbdt来筛选特征,然后再上逻辑回归。

参考资料:
逻辑回归的常见面试点总结


9. LR与SVM的区别与联系?

(1)联系:

  • LR和SVM都可以处理分类问题,且一般都用于处理线性二分类问题(在改进的情况下可以处理多分类问题);
  • 两个方法都可以增加不同的正则化项,如L1、L2等等。所以在很多实验中,两种算法的结果是很接近的。

(2)区别:

  • LR是参数模型,SVM是非参数模型。
  • 从目标函数来看,区别在于LR采用的是Logistical Loss,SVM采用的是hinge loss。这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。
  • SVM的处理方法是只考虑Support Vectors,也就是和分类最相关的少数点,去学习分类器。而LR通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重。
  • LR相对来说模型更简单,好理解,特别是大规模线性分类时比较方便。而SVM的理解和优化相对来说复杂一些,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。
  • LR能做的 SVM能做,但可能在准确率上有问题,SVM能做的LR有的做不了。

10. Logistic回归如何实现多分类?

(1)修改Logistic回归的损失函数,使用softmax函数构造模型解决多分类问题,softmax分类模型会有相同于类别数的输出,输出的值为对于样本属于各个类别的概率,最后对于样本进行预测的类型为概率值最高的那个类别。
(2)根据每个类别都建立一个二分类器,本类别的样本标签定义为0,其它分类样本标签定义为1,则有多少个类别就构造多少个LR分类器,这种方法为最常用的one-vs-rest,简称OvR。另一种多元逻辑回归的方法是Many-vs-Many(MvM),它会选择一部分类别的样本和另一部分类别的样本来做逻辑回归二分类。
若所有类别之间有明显的互斥则使用softmax分类器,若所有类别不互斥有交叉的情况则构造相应类别个数的逻辑回归分类器。



http://chatgpt.dhexx.cn/article/2KtXu73d.shtml

相关文章

回归问题归一化总结

在用深度学习做回归问题时&#xff0c;对数据进行标准化处理是一个共识&#xff0c;将数据标准化&#xff0c;利用标准化后得数据进行数据分析。不同评价指标往往具有不同的量纲和量纲单位&#xff0c;这样的情况会影响到数据分析的结果&#xff0c;为了消除指标之间的量纲影响…

分类和回归问题

前言 最近在复习一些深度学习和机器学习的基础知识&#xff0c;看到分类和回归&#xff0c;这里记录一下。 一、回归 首先&#xff0c;回归应用的场景是用来输出一系列连续的值&#xff0c;然后用于预测等任务。回归的目的是为了找到最优拟合的曲线&#xff0c;这个曲线可以…

回归问题一般解决方法

1. 回归问题 Given a labeled training set learn a general mapping which associates previously unseen independent test data with their correct continuous prediction. 回归问题和分类问题很相似,区别在于回归问题的输出是一个连续值。 上图是训练数据 和 对应的连续值…

对线性回归、逻辑回归、各种回归的概念学习

回归问题的条件/前提: 1) 收集的数据 2) 假设的模型,即一个函数,这个函数里含有未知的参数,通过学习,可以估计出参数。然后利用这个模型去预测/分类新的数据。 1. 线性回归 假设 特征 和 结果 都满足线性。即不大于一次方。这个是针对 收集的数据而言。 收集的数据中…

回归问题

回归 回归&#xff08;regression&#xff09; 是监督学习的另一个重要问题。 回归用于预测输入变量&#xff08;自变量&#xff09; 和输出变量&#xff08;因变量&#xff09; 之间的关系&#xff0c; 特别是当输入变量的值发生变化时&#xff0c; 输出变量的值随之发生的…

回归问题原理

回归问题是一种常见的监督机器学习任务&#xff0c;在很多领域均有广泛应用。其典型应用包括销量预测、库存预测、股票价格预测、天气预测等。本问将讨论线性回归&#xff0c;包括线性回归模型的目标函数&#xff08;损失函数和正则函数&#xff09;、线性回归模型的优化求解、…

机器学习之回归问题

目录 前言 一、回归定义 二、回归建模步骤 1.模型假设-线性模型&#xff08;Linear Model&#xff09; &#xff08;1&#xff09;一元线性模型 &#xff08;2&#xff09;多元线性模型 2.模型评估-损失函数&#xff08;Loss Funtion&#xff09; 3.最佳模型-梯度下降&…

mac idea jrebel 激活

jrebel 官网提供注册,然后会给你一个注册码 首先 idea 安装 jrebel . 在安装完成之后,点击以下按钮 一开始 跟我的不一样,我的是注册完成之后,才会显示Change license 的这个提示, 之前好像是 Activate now 提示,点击即可 当注册完成之后,关闭弹出框 选择上图中的值,去官网注…

安装jrebel并激活

1.File-Settings-Plugins搜索jrebel,找到JRebel for IntelliJ &#xff0c;点击install(我这里已经安装过了&#xff0c;所以显示的是更新) 2.重启idea 3.激活步骤&#xff0c;下载工具 ①下载激活工具 连接&#xff1a;https://pan.baidu.com/s/1Fh2v2zrAO2u50ZnS9LHBOQ 提取码…

JRebel激活步骤

JRebel简介&#xff1a; JRebel是与应用程序服务器集成的JVM Java代理&#xff0c;可使用现有的类加载器重新加载类。只有更改的类会重新编译并立即重新加载到正在运行的应用程序中&#xff0c;JRebel特别不依赖任何IDE或开发工具&#xff08;除编译器外&#xff09;。但是&…

关于JRebel 激活

具体JRebel安装教程参考&#xff1a; https://blog.csdn.net/lmdsoft/article/details/93769089 本文提供JRebel激活 Demo JRebel address was: 【http://jrebel.qekang.com:80/48dc7f8c-019f-4cb8-85d7-99b0134b69d0】, with any email.

JRebel插件激活

JRebel&#xff0c;一款好用的 Spring 热部署插件。 1. 安装 注意&#xff1a;截至到目前为止&#xff0c;作者只找到了 2022.4.1 的激活方式&#xff0c;更高版本皆未激活成功。 1.1. IDEA 中直接安装 在插件市场中直接搜索&#xff1a;JRebel and XRebel 注意&#xff0c;这…

2019.9最新JRebel激活方式

原文链接 最近JRebel离线方式到期, idea报无法激活JRebel了, 找了很多以前的方式都无法生效, ip或域名都已经失效了, 好在找到了大神有效的激活方式,以下是激活步骤: 1. 下载反向代理软件 下载地址: https://github.com/ilanyu/ReverseProxy/releases根据自己的操作系统下载…

jrebel激活服务器搭建教程

jrebel是一款热部署插件&#xff0c;很好用&#xff0c;但是是收费的软件&#xff0c;本博客将搭建起一个jrebel激活服务器&#xff0c;如果条件允许&#xff0c;请购买正版lisence,请购买正版lisence,请购买正版lisence重要的事说三遍。 本博客激活是基于码云上的一个开源程序…

jrebel 激活

jrebel是ideal是的一款插件&#xff0c;是一个很好的热部署工具 -作用&#xff1a; 在项目启动过程中编译代码后&#xff0c;无需再次run或者debug&#xff0c;节省程序启动时间。 主要操作file—》settings—》plugins在搜索框中&#xff0c;输入jrebel点击右侧的install安装好…

JRebel激活失效解决

问题&#xff1a; 使用Jrebel运行项目时报错&#xff1a;Jrebel is not yet activated.Do you want to activate Jrebel now? 意思是插件未激活&#xff0c;需要激活插件 解决办法&#xff1a; 1. 下载代理软件&#xff1a;ReverseProxy&#xff0c;下载成功后双击打开(未成…

【IDEA】IDEA使用——IDEA中全局查找和全局替换

【IDEA】IDEA使用——IDEA中全局查找和全局替换 IDEA是一款优秀的Java IDE&#xff0c;全局查找和全局替换功能在学习和开发过程中使用的最为频繁&#xff0c;本文将简要总结其使用方法。 1.全局查找 面板位置&#xff1a;Edit > Find > Find In Path快捷键&#xff1a;…

IDEA全局替换--解决快捷键不起作用

看了网上的帖子&#xff1a; 使用快捷键后出来是酱紫的&#xff1a; 后来发现应该是这样&#xff1a; 输入完直接点enter键即可

IDEA中的全局批量替换正则表达式

目录 一. 常用搜索快捷键二. IDEA中常用的正则1. ^xxx&#xff1a;匹配以xxx开始的文件2. xxx$&#xff1a;搜索以xxx为结尾的文件3. .xxx&#xff1a;搜索包含字符串xxx的文件4. 复杂搜索例子 三. 正则表达式四. 常用字符五. 特殊字符六. 限定字符 一. 常用搜索快捷键 CTRL …

idea全局搜索替换快捷键

默认是&#xff1a;CtrlShiftR 如果不是继续看下面&#xff1a; 不是可能是你不是使用的idea默认的快捷键&#xff0c;或者之前更改过快捷键&#xff0c; 打开Setting&#xff08;CtrlAltS&#xff09;——>keymap——>搜索replace in path