【机器学习300问】61、逻辑回归与线性回归的异同?

        本文讲述两个经典机器学习逻辑回归(Logistic Regression)和线性回归(Linear Regression)算法的异同,有助于我们在面对实际问题时更好的进行模型选择。也能帮助我们加深对两者的理解,掌握这两类基础模型有助于进一步理解更复杂的模型结构,例如逻辑回归是许多复杂分类算法的基础模型之一,对其深入理解有助于后续学习神经网络、支持向量机等更为复杂的模型。

        如果对这两个模型的基本知识有所遗忘,可以观看我之前的文章哦:

【机器学习300问】15、什么是逻辑回归模型?icon-default.png?t=N7T8http://t.csdnimg.cn/RflnD【机器学习300问】8、为什么要设计代价函数(损失函数)?它有什么用?icon-default.png?t=N7T8http://t.csdnimg.cn/3l2yg

一、逻辑回归于线性回归的区别

(1)区别1:使用场景不同

        逻辑回归和线性回归的核心区别在于它们的目的和适用场景,逻辑回归处理的是分类问题,线性回归处理的是回归问题,这是两者的最本质的区别。

① 逻辑回归

        虽然名称中有“回归”二字,但实际上主要用于解决分类问题,尤其是二分类问题,当然也可以通过扩展应用到多分类问题上。逻辑回归模型预测的是一个事件发生的概率,输出的是介于0和1之间的概率值,然后可以设定一个阈值来决定最终的类别归属,例如预测用户是否会点击广告、病人是否有某种疾病等。

② 线性回归

        是一种回归模型,用于估计因变量(目标变量)和一个或多个自变量之间的连续关系,输出是一个连续的数值,适合于解决那些需要预测具体数值的问题,如预测房价、销售额、体重增长等。

        简单来说,线性回归关注的是“多少”的数值,逻辑回归关注的是“是与否”的可能性。在模型内部,逻辑回归确实采用了类似线性回归的加权求和形式,但是最后会通过一个非线性函数(通常是Sigmoid函数)将线性部分映射到概率空间。

(2)区别2:输出值的形式不同

        此外两者还在输出值(因变量)的形式上有差异,逻辑回归中的输出值是离散的,线性回归中的输出值是连续的。

① 逻辑回归

        逻辑回归模型内部采用线性函数对输入特征进行加权求和(也就是线性组合),但随后会对这个线性组合应用一个非线性函数,通常是sigmoid函数,将其映射到(0,1)之间,表达的是一个概率值。由于最终的概率被设定一个阈值来决定类别(例如,概率大于0.5则判为正类,否则为负类),因此其输出值实际应用中往往转化为离散的类别标签。

② 线性回归

        线性模型的输出值是连续的,直接反映了预测变量与因变量之间的线性关系。线性回归的目标是找到最优的直线或超平面来拟合数据点,其预测结果可以是任何实数,没有限制在特定范围内,因此非常适合于预测像房价、销售额、身高、体重等连续型数值变量。

(3)区别3:损失函数不同

① 逻辑回归

        通常使用均方误差(MSE)作为损失函数,来度量预测值与实际值之间的差异。

② 线性回归

        使用对数损失函数,也称为交叉熵损失,它度量的是实际分类和预测分类概率分布之间的差距。

二、逻辑回归于线性回归的相似之处

(1)相似1:都使用了极大似然估计

        无论是线性回归还是逻辑回归,两者都使用了最大似然估计来对训练样本进行建模。只不过它们背后的概率分布假设和优化的目标函数有所不同。

① 逻辑回归

        针对二分类问题,由于响应变量是分类变量(通常是0和1)它的最大似然函数会有所不同。因变量被看作是服从伯努利分布或者多项式分布(在多分类问题中对应的是多项式 logistic 回归)。逻辑回归同样使用极大似然估计,只是这时是在伯努利分布条件下,通过最大化所有样本观测到的结果(0或1)出现的概率之乘积来估计模型参数。

② 线性回归

        如果假设因变量(响应变量)遵循正态分布(即满足高斯分布假设),那么最小二乘估计可以被视为最大似然估计的一种特殊情况。当误差项独立同分布,均值为0,方差为常数时,通过最大化似然函数(等价于最小化误差的平方和),可以得到模型参数。

(2)相似2:都使用了梯度下降算法

        两者都可以在求解参数的过程中,使用梯度下降算法。梯度下降是一种通用的优化方法,可用于求解各种模型的损失函数最小化问题。

        不论是线性回归模型最小化均方误差(Mean Squared Error, MSE),还是逻辑回归模型最大化似然函数(通过最小化负对数似然函数,即交叉熵损失函数),都可以运用梯度下降或其变种(如随机梯度下降、批量梯度下降、小批量梯度下降等)来迭代更新模型参数。这种迭代过程使得模型参数逐步向着减少损失函数值的方向变化,从而达到优化模型的目的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/511648.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp中安装vant2

1.uniapp项目搭建 因为是安装vant2所以项目选择vue2,如果vue3项目的话安装vant3,vue3可能不适合这样安装方式 2.安装vant npm i vantlatest-v2 3.在main.js文件引入挂载vant 说明:// #ifndef VUE3这里是vue2模板用来挂载注册组件的地方&a…

1.Git是用来干嘛的

本文章学习于【GeekHour】一小时Git教程,来自bilibili Git就是一个文件管理系统,这样说吧,当多个人同时在操作一个文件的同时,很容易造成紊乱,git就是保证文件不紊乱产生的 包括集中式管理系统和分布式管理系统 听懂…

【Python】记录槽位法:Leetcode 894. 所有可能的真二叉树

描述 给你一个整数 n ,请你找出所有可能含 n 个节点的 真二叉树 ,并以列表形式返回。答案中每棵树的每个节点都必须符合 Node.val 0 。 答案的每个元素都是一棵真二叉树的根节点。你可以按 任意顺序 返回最终的真二叉树列表。 真二叉树 是一类二叉树…

【NLP】LLM 和 RAG

在这里,我描述了我在过去几年中关于 RAG 系统如何发展的主要经验。分享 Naive RAG、Advanced RAG 和 Modular RAG 框架之间的区别。总结了高云帆等人发表的一篇出色的RAG 技术调查论文的关键见解。 什么是 RAG 框架? OpenAI的GPT系列、Meta的LLama系列…

Python程序设计 多重循环(二)

1.打印数字图形 输入n&#xff08;n<9)&#xff0c;输出由数字组成的直角三角图形。例如&#xff0c;输入5&#xff0c;输出图形如下 nint(input("")) #开始 for i in range(1,n1):for j in range(1,i1):print(j,end"")print()#结束 2.打印字符图形 …

牛客NC181 单词拆分(一)【中等 动态规划,前缀树 Java,Go,PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/c0d32c1ce5744472a01b2351a2c2767f 思路 前缀树动态规划参考答案Java import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规…

即刻体验 | 使用 Flutter 3.19 更高效地开发

我们已隆重推出全新的 Flutter 版本——Flutter 3.19。此版本引入了专为 Gemini 设计的新 Dart SDK、一个能让开发者对 Widget 动画实现精细化控制的全新 Widget&#xff0c;Impeller 更新带来的渲染性能提升、有助于实现深层链接的工具和对 Windows Arm64 的支持&#xff0c;以…

JVM—类加载子系统

JVM—类加载子系统 JVM的类加载是通过ClassLoader及其子类来完成的。 有哪些类加载器 类加载器如下&#xff1a; 启动类加载器&#xff08;BootStrap ClassLoader&#xff09;&#xff1a;负责加载JAVA_HOME\lib目录或通过-Xbootclasspath参数指定路径中的且被虚拟机认可&am…

Linux|centos7|postgresql数据库主从复制之异步还是同步的问题

前言&#xff1a; postgresql数据库是一个比较先进的中型关系型数据库&#xff0c;原本以为repmgr和基于repmgr的主从复制是挺简单的一个事情&#xff0c;但现实很快就给我教育了&#xff0c;原来postgresql和MySQL一样的&#xff0c;也是有异步或者同步的复制区别的 Postgre…

物联网实战--入门篇之(十)安卓QT--后端开发

目录 一、项目配置 二、MQTT连接 三、数据解析 四、数据更新 五、数据发送 六、指令下发 一、项目配置 按常规新建一个Quick空项目后&#xff0c;我们需要对项目内容稍微改造、规划下。 首先根据我们的需要在.pro文件内添加必要的模块&#xff0c;其中quick就是qml了&…

Springboot集成knife4j (swagger)

1、添加依赖 在pom.xml 文件中添加 knife4j-spring-boot-starter 的依赖 <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>3.0.3</version> </depe…

TCP、UDP协议

TCP与UDP协议的区别 TCP&#xff08;Transmission Control Protocol&#xff09;和UDP&#xff08;User Datagram Protocol&#xff09;是两种常用的传输层协议&#xff0c;它们之间有以下几点区别&#xff1a; 1. 连接性&#xff1a; - TCP是面向连接的协议&#xff0c;通…

玩转ChatGPT:Kimi测评(科研写作)

一、写在前面 ChatGPT作为一款领先的语言模型&#xff0c;其强大的语言理解和生成能力&#xff0c;让无数用户惊叹不已。然而&#xff0c;使用的高门槛往往让国内普通用户望而却步。 最近&#xff0c;一款由月之暗面科技有限公司开发的智能助手——Kimi&#xff0c;很火爆哦。…

VMware-16.0配置虚拟机网络模式

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、为什么要配置网络&#xff1f;二、配置步骤1.检查VMware服务2.进入配置页面3.添加网络模式1.Bridge2.NAT3.Host-only 4.DHCP租约5.静态IP 三、使用总结 前言…

wife_wife【web 攻防世界】

大佬的wp:WEB&#xff1a;Wife_wife-CSDN博客 知识点&#xff1a; prototype是new class 的一个属性&#xff0c;即__proto__指向new class 的prototype属性__proto__如果作为json代码解析的话会被当成键名处理&#xff0c;但是如果是在类中的话则会被当成子类的原型 如let o…

OpenCV 4.9基本绘图

返回&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV使用通用内部函数对代码进行矢量化 下一篇&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; ​目标 在本教程中&#xff0c;您将学习如何&am…

如何对Webpack进行优化

目录 1.优化-提取css代码 1.1. 插件 mini-css-extract-plugin 1.2. 步骤&#xff1a; 1.3. 注意 1.4. 好处 1.5. 练习 2. 优化-css代码提取后压缩 2.1. 问题引入 2.2. 解决 2.3. 步骤 3. Webpack打包less代码 3.1. 加载器 less-loader 3.2. 步骤 3.3. 注意&#xf…

【Redis 知识储备】应⽤数据分离架构 -- 分布系统的演进(2)

应⽤数据分离架构 随着系统的上线&#xff0c;我们不出意外地获得了成功。市场上出现了⼀批忠实于我们的⽤⼾&#xff0c;使得系统的访问量逐步上升&#xff0c;逐渐逼近了硬件资源的极限&#xff0c;同时团队也在此期间积累了对业务流程的⼀批经验。⾯对当前的性能压⼒&#x…

Android Studio学习8——点击事件

在xml代码中绑定 在java代码中绑定 弹出一个toast 随机&#xff0c;数组

基于Docker for Windows部署ChatGPT-Next-Web

基于Docker for Windows部署ChatGPT-Next-Web 项目地址安装Docker for Windows部署项目参数讲解参数示例 运行 项目地址 https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web 安装Docker for Windows 官网地址&#xff1a;https://www.docker.com/ 下拉找到Download 选择W…