【漫话机器学习系列】113.逻辑回归(Logistic Regression) VS 线性回归(Linear Regression)

逻辑回归 vs 线性回归:详解对比
在机器学习和统计学中,逻辑回归(Logistic Regression) 和 线性回归(Linear Regression) 都是非常常见的模型。尽管它们的数学表达式有一定的相似性,但它们的应用场景和目标却完全不同。本篇文章将详细对比两者的区别,并深入解析逻辑回归的数学原理。
1. 线性回归的基本概念
1.1 线性回归的数学表达
线性回归是一种监督学习算法,主要用于回归任务,即预测一个连续值。它的数学表达如下:
其中:
- y 是目标变量(预测值)。
是输入特征(自变量)。
是截距(bias)。
是回归系数(权重)。
- ϵ 是误差项。
1.2 线性回归的应用场景
- 预测房价(根据面积、位置、房龄等因素)。
- 预测股票价格(根据市场数据)。
- 预测员工工资(根据经验、教育背景等)。
1.3 线性回归的目标
线性回归的目标是找到最优参数 ,使得预测值
尽可能接近真实值 y。最常用的方法是最小二乘法(OLS, Ordinary Least Squares),即最小化均方误差(MSE):
2. 逻辑回归的基本概念
逻辑回归主要用于分类任务,特别是二分类问题。它的核心思想是使用Sigmoid 函数(S 形函数)将线性回归的结果映射到 (0,1) 之间,进而输出概率值。
2.1 逻辑回归的数学表达
逻辑回归的公式如下:
其中:
- P(y=1 | x)代表输入x 属于类别 y=1 的概率。
- e 是自然对数的底数(约 2.718)。
是模型参数。
这就是 Sigmoid 函数:
Sigmoid 函数的作用是将输入值压缩到 (0,1) 之间,使其可以解释为概率。如下图所示,Sigmoid 函数的曲线呈现 S 形:

当:
- z → +∞,σ(z) → 1(高概率)。
- z → −∞,σ(z) → 0(低概率)。
- z = 0z = 0,σ(0) = 0.5。
2.2 逻辑回归的目标
逻辑回归的目标是最大化似然函数(Maximum Likelihood Estimation, MLE),即找到最优的参数 ,使得训练数据的分类概率最大。
其损失函数为交叉熵损失(Cross Entropy Loss):
这个损失函数衡量了模型预测的概率与真实标签之间的差距。
3. 逻辑回归 vs 线性回归
下表总结了两者的主要区别:
| 对比项 | 线性回归(Linear Regression) | 逻辑回归(Logistic Regression) |
|---|---|---|
| 目标任务 | 回归(Regression) | 分类(Classification) |
| 输出值 | 任何实数 | (0,1)(0,1)(0,1) 概率 |
| 函数形式 | 线性函数 | Sigmoid 函数 |
| 损失函数 | 均方误差(MSE) | 交叉熵损失(Cross Entropy) |
| 优化方法 | 最小二乘法(OLS)或梯度下降 | 最大似然估计(MLE)+梯度下降 |
| 应用场景 | 预测房价、股票、销量等 | 预测疾病、垃圾邮件、信用违约等 |
| 分类能力 | 不能分类 | 可以用于二分类问题 |
4. 为什么不能用线性回归做分类?
4.1 线性回归的输出不受限制
假设我们使用线性回归来做二分类:
然后我们使用一个阈值来分类,例如:
- y ≥ 0.5y 则预测为 1。
- y < 0.5y 则预测为 0。
但是,线性回归的输出范围是 (-∞, +∞),没有界限,而概率应该在 (0,1) 之间。
4.2 线性回归对异常值敏感
如果数据集中有一个异常值,比如 x 远大于其他样本,线性回归可能会预测 y 远大于 1,这与概率的定义不符。
4.3 线性回归无法拟合 S 形决策边界
许多分类问题的数据分布是非线性的,而逻辑回归的 Sigmoid 函数可以拟合S 形决策边界,但线性回归不能。
5. Python 代码示例
5.1 线性回归示例
from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression
import numpy as np# 生成回归数据
X, y = make_regression(n_samples=100, n_features=1, noise=10, random_state=42)# 训练线性回归模型
model = LinearRegression()
model.fit(X, y)# 预测
y_pred = model.predict(X)
5.2 逻辑回归示例
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification# 生成分类数据
X, y = make_classification(n_samples=100, n_features=2, random_state=42)# 训练逻辑回归模型
model = LogisticRegression()
model.fit(X, y)# 预测
y_pred = model.predict(X)
6. 结论
- 线性回归用于回归问题,逻辑回归用于分类问题。
- 逻辑回归通过Sigmoid 函数将输出映射到 (0,1) 之间,使其可以解释为概率。
- 逻辑回归使用交叉熵损失进行优化,而线性回归使用最小二乘法。
- 在分类任务中,不能使用线性回归,否则会导致结果不可解释。
逻辑回归虽然简单,但在分类问题中仍然是一个强大的基线模型,并且具有很好的可解释性。
相关文章:
【漫话机器学习系列】113.逻辑回归(Logistic Regression) VS 线性回归(Linear Regression)
逻辑回归 vs 线性回归:详解对比 在机器学习和统计学中,逻辑回归(Logistic Regression) 和 线性回归(Linear Regression) 都是非常常见的模型。尽管它们的数学表达式有一定的相似性,但它们的应用…...
3 算法1-3 回文质数
题目描述 因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。 写一个程序来找出范围 [a,b](5≤a<b≤100,000,000)(一亿)间的所有回文质数。 输入格式 第一行输入两个正…...
Redis---缓存穿透,雪崩,击穿
文章目录 缓存穿透什么是缓存穿透?缓存穿透情况的处理流程是怎样的?缓存穿透的解决办法缓存无效 key布隆过滤器 缓存雪崩什么是缓存雪崩?缓存雪崩的解决办法 缓存击穿什么是缓存击穿?缓存击穿的解决办法 区别对比 在如今的开发中&…...
联合省选 2025 游记
Day 1 不会 LCT,不会字符串,不会博弈 快进到考场 t 1 t1 t1 很快想到枚举中位数再 check,然后就会了,思路很清晰写的很快 t 2 t2 t2 干想 1h 编出来 n m 2 3 nm^{\frac{2}{3}} nm32,然后认为 t 3 t3 t3 会和去年…...
Skywalking介绍,Skywalking 9.4 安装,SpringBoot集成Skywalking
一.Skywalking介绍 Apache SkyWalking是一个开源的分布式追踪与性能监视平台,特别适用于微服务架构、云原生环境以及基于容器(如Docker、Kubernetes)的应用部署。该项目由吴晟发起,并已加入Apache软件基金会的孵化器,…...
Thonny+MicroPython+ESP32开发环境搭建
1、下载&安装Thonny 安装成功后,会在桌面生成快捷键 双击快捷键,打开程序,界面如下 2、下载MicroPython 下载地址:MicroPython - Python for microcontrollers v1.19版(推荐,此版本稳定): https://do…...
数据结构:反射 和 枚举
目录 一、反射 1、定义 2、反射相关的类 3、Class类 (2)常用获得类中属性相关的方法: (3)获得类中注解相关的方法: (4)获得类中构造器相关的方法: (…...
前缀和算法 算法4
算法题中帮助复习的知识 vector<int > dp( n ,k); n为数组大小 ,k为初始化 哈希表unordered_map<int ,int > hash; hash.find(k)返回值是迭代器 ,找到k返回其迭代器 没找到返回hash.end() hash.count(k)返回值是数字 ,找到k返回1 ,没找到返回0. C和java中 负数…...
USRP7440-通用软件无线电平台
1、产品描述 USRP7440基于第三代XILINX Zynq UltraScale RFSoC架构,它将射频ADC、DAC、ARM、FPGA等集成一体,瞬时带宽可以达到2.5GHz,尤其适合于射频直采应用,比如通信与雷达。 第一代RFSOC高达4GHz • 8x 或 16x 6.554GSPS DAC…...
yunedit-post ,api测试比postman更好
postman应该是大家最熟悉的api测试软件了,但是由于它是外国软件,使用它的高端功能注册和缴费都比较麻烦。生成在线文档分享也经常无法访问被拦截掉。 这里可以推荐一下yunedit-post,该有的功能都有。 https://www.yunedit.com/postdetail …...
windows下玩转vllm:在wsl下安装vllm后续,设置modelscope作为下载源
文章目录 前言所涉及的之前的关键步骤解决模型权重下载网络不通畅的问题vllm和modelscope整合后的bug附录 ImportError: cannot import name _try_login from modelscope.utils.hf_util 全部报错信息前言 之前,咱们说了,由于windows不支持直接部署vllm,所以要么采用wsl,要…...
移动零
一 :题目 二:思路 双指针法: 两个指针将数组划分成三个部分: 解释: ①:所以一开始dest要等于-1,因为没有非零的元素,cur0,因为要从头开始遍历数组 ②:cur为…...
MySQL整体架构
目录 1 客户端 2 服务端 2.1 Server层 2.1.1 连接器 2.1.2 查询缓存 2.1.3 词法器 2.1.4 优化器 2.1.5 执行器 2.2 存储引擎层 1 客户端 ● 客户端为连接MySQL服务端的工具或者驱动,比如JDCB,ODBC等等 ● 用于连接目前服务器,并且发送需要执行…...
Linux之yum详解
—— 小 峰 编 程 目录 1、Linux软件的安装方式 2、什么是yum 3、配置网络yum源 4、yum命令 【语法】 【yum常用命令】 1、Linux软件的安装方式 在CentOS系统中,软件管理方式通常有三种方式: rpm安装 、 yum安装 以及 编译安装 。 2、什么是yum…...
大数据学习(52)-MySQL数据库基本操作
&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦ᾑ…...
鸿蒙启动页开发
鸿蒙启动页开发 1.1 更改应用名称和图标 1.更改应用图标 找到moudle.json5文件,找到应用启动的EntryAbility下面的icon,将原来的图标改成自己设置的即可 2.更改应用名称 3.效果展示 2.1 广告页面开发 3.1 详细介绍 3.1.1 启动页面 import { PrivacyDialog } fr…...
记忆化搜索(典型算法思想)—— OJ例题算法解析思路
目录 一、509. 斐波那契数 - 力扣(LeetCode) 算法代码: 1. 动态规划 (fib 函数) 初始化: 递推计算: 返回结果: 2. 记忆化搜索 (dfs 函数) 备忘录初始化: 递归终止条件: 递…...
Day11,Hot100(贪心算法)
贪心 (1)121. 买卖股票的最佳时机 第 i 天卖出的最大利润,即在前面最低价的时候买入 class Solution:def maxProfit(self, prices: List[int]) -> int:min_price prices[0]ans 0for price in prices:ans max(ans, price - min_price…...
翻译: 深入分析LLMs like ChatGPT 一
大家好,我想做这个视频已经有一段时间了。这是一个全面但面向普通观众的介绍,介绍像ChatGPT这样的大型语言模型。我希望通过这个视频让大家对这种工具的工作原理有一些概念性的理解。 首先,我们来谈谈你在这个文本框里输入内容并点击回车后背…...
《白帽子讲 Web 安全》之移动 Web 安全
目录 摘要 一、WebView 简介 二、WebView 对外暴露 WebView 对外暴露的接口风险 三、通用型 XSS - Universal XSS 介绍 四、WebView 跨域访问 五、与本地代码交互 js 5.1接口暴露风险: 5.2漏洞利用: 5.3JavaScript 与 Native 代码通信 六、Chr…...
解锁 indexOf、substring 和 JSON.stringify:从小程序图片上传看字符串魔法 ✨
🌟 解锁 indexOf、substring 和 JSON.stringify:从小程序图片上传看字符串魔法 ✨ 在 JavaScript 中,字符串操作和数据序列化是开发中不可或缺的技能。indexOf、substring 和 JSON.stringify 是三个简单却强大的工具,分别用于定位…...
常用的AI文本大语言模型汇总
AI文本【大语言模型】 1、文心一言https://yiyan.baidu.com/ 2、海螺问问https://hailuoai.com/ 3、通义千问https://tongyi.aliyun.com/qianwen/ 4、KimiChat https://kimi.moonshot.cn/ 5、ChatGPThttps://chatgpt.com/ 6、魔塔GPT https://www.modelscope.cn/studios/iic…...
DCN讲解
DCN是DeepFM的升级版,后者是只能做二阶交叉特征,随着阶数上升,模型复杂度大幅提高,且FM网络层较浅,表达能力有限。google团队通过构建深度交叉网络来自动进行特征的高阶交叉,且时空复杂度均为线性增长&…...
前端开发常用的加密算法
以下是前端开发中常用的加密方式及其适用场景的详细说明: 一、核心加密方案 加密类型常用算法特点适用场景对称加密AES、DES、3DES加密解密使用相同密钥,速度快本地存储加密、HTTP Body加密非对称加密RSA、ECC公钥加密私钥解密,安全性高传输…...
5. Nginx 负载均衡配置案例(附有详细截图说明++)
5. Nginx 负载均衡配置案例(附有详细截图说明) 文章目录 5. Nginx 负载均衡配置案例(附有详细截图说明)1. Nginx 负载均衡 配置实例3. 注意事项和避免的坑4. 文档: Nginx 的 upstream 配置技巧5. 最后: 1. Nginx 负载均衡 配置实例 需求说明/图解 windows 浏览器输…...
C++之再识模板template
目录 1.非类型模板参数 2.函数/类模板的特化 3.模板的分离编译 4.总结:模板的优缺点 1. 代码复用性高 2. 类型安全 3. 性能优化 2. 错误信息难以理解 3. 代码膨胀 易错易忽略的语法点: 1. 模板声明和定义分离问题 2. 模板参数推导问题 1.非类…...
【文献阅读】Collective Decision for Open Set Recognition
基本信息 文献名称:Collective Decision for Open Set Recognition 出版期刊:IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING 发表日期:04 March 2020 作者:Chuanxing Geng and Songcan Chen 摘要 在开集识别࿰…...
力扣刷题DAY2(链表/简单)
一、回文链表 回文链表 方法一:双指针 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, L…...
golang 内存对齐和填充规则
内存对齐和填充规则 对齐要求:每个数据类型的起始地址必须是其大小的倍数。 int8(1字节):不需要对齐。int16(2字节):起始地址必须是2的倍数。int32(4字节):起…...
ansible自动化运维工具学习笔记
目录 ansible环境部署 控制端准备 被控制端准备 ansible批量管理主机的方式主要有两种 配置准备: ssh密码认证方式管理机器 密码登录,需要各主机密码相同 配置免密登录 ssh密钥方式批量管理主机 ansible实现批量化主机管理的模式 ansible-doc命令 comman…...
