【漫话机器学习系列】112.逻辑回归(Logistic Regression)

news2025/3/3 10:18:08

逻辑回归(Logistic Regression)详解

1. 逻辑回归简介

逻辑回归(Logistic Regression)是一种广泛用于二分类任务的统计和机器学习方法,尽管它的名字中带有“回归”,但它实际上是一种分类算法

在逻辑回归中,我们希望根据输入特征 xxx 预测某个事件发生的概率 P(y=1∣x),并通过逻辑函数(Sigmoid) 将输出值限制在 (0,1) 之间,使其可以被解释为概率。


2. 逻辑回归的数学原理

2.1 线性回归的不足

假设我们使用线性回归来做二分类问题:

y = w^T x + b

然后我们希望通过某个阈值来决定类别:

  • 如果 y ≥ 0.5,分类为 1;
  • 如果 y < 0.5,分类为 0。

但这样有以下问题:

  1. 输出值没有限制:y 的取值范围是 (−∞,+∞),但概率的范围应该是 (0,1)。
  2. 缺乏概率解释:二分类问题需要输出概率,但线性回归的输出无法自然解释为概率。

2.2 逻辑回归的核心思想

逻辑回归通过Sigmoid 函数(S 形函数) 来将线性回归的输出转换为概率:

P(y=1 | x) = \sigma(w^T x + b)

其中,Sigmoid 函数定义为:

\sigma(z) = \frac{1}{1 + e^{-z}}

性质:

  • 当 z → +∞,σ(z) → 1;
  • 当 z → −∞,σ(z) → 0;
  • 当 z = 0,σ(z) = 0.5。

这个函数的形状如下:

这样,我们可以将输出值映射到 (0,1) 之间,并解释为概率。

2.3 逻辑回归的概率解释

逻辑回归实际上是在建模事件发生的概率

P(y=1 | x) = \frac{1}{1 + e^{-(w^T x + b)}}

可以改写为对数几率(Log-Odds)

\log \frac{P(y=1 | x)}{1 - P(y=1 | x)} = w^T x + b

其中:

  • 左边是对数几率(log-odds),即事件发生和不发生的比值取对数;
  • 右边是线性回归模型

这说明逻辑回归是对数几率的线性模型,也是它名称中带有“回归”的原因。


3. 逻辑回归的损失函数

在训练逻辑回归模型时,我们需要找到合适的参数 w 和 b,使得模型对数据的预测概率尽可能接近真实值。

3.1 交叉熵损失

由于逻辑回归的输出是一个概率,我们不能直接使用均方误差(MSE),而是使用交叉熵损失(Cross Entropy Loss)

L(w, b) = - \sum_{i=1}^{m} \left[ y_i \log P(y_i | x_i) + (1 - y_i) \log (1 - P(y_i | x_i)) \right]

其中:

  • y_i 是真实标签(0 或 1);
  • P(y_i | x_i) 是模型预测的概率。
损失函数的直觉理解
  • 如果真实标签是 1,那么只有第一项 y_i \log P(y_i | x_i) 起作用,即希望模型预测的 P(y_i | x_i) 尽可能接近 1,否则损失较大。
  • 如果真实标签是 0,那么只有第二项 (1 - y_i) \log (1 - P(y_i | x_i)) 起作用,即希望模型预测的 P(y_i | x_i) 尽可能接近 0,否则损失较大。

因此,最优的 w 和 b 是使得交叉熵损失最小的参数。


4. 逻辑回归的优化

为了找到最优参数 w 和 b,我们通常使用梯度下降法(Gradient Descent)进行优化。

4.1 梯度下降法

我们需要计算损失函数对参数的梯度,然后更新参数:

w = w - \alpha \frac{\partial L}{\partial w}, \quad b = b - \alpha \frac{\partial L}{\partial b}

其中:

  • α 是学习率(learning rate)。
  • \frac{\partial L}{\partial w}​ 和 \frac{\partial L}{\partial b}​ 是损失函数的梯度。

梯度计算如下:

\frac{\partial L}{\partial w} = \sum_{i=1}^{m} (P(y_i | x_i) - y_i) x_i

\frac{\partial L}{\partial b} = \sum_{i=1}^{m} (P(y_i | x_i) - y_i)

然后使用梯度下降进行迭代更新,直到收敛。

4.2 其他优化方法

  • 批量梯度下降(BGD):使用整个训练集计算梯度,适用于小规模数据。
  • 随机梯度下降(SGD):每次随机选取一个样本更新参数,适用于大规模数据。
  • 小批量梯度下降(Mini-Batch SGD):每次使用一个小批量的数据计算梯度,是最常用的方法。

5. 逻辑回归的应用

逻辑回归广泛应用于二分类问题,包括:

  • 医学诊断(如判断患者是否患病)
  • 信用评分(如判断贷款申请人是否违约)
  • 垃圾邮件检测(如判断邮件是否是垃圾邮件)
  • 广告点击率预测(如预测用户是否会点击广告)

此外,逻辑回归还可以扩展到多分类问题(Softmax 回归),用于处理多个类别的分类任务。


6. Python 代码实现

可以使用 sklearn 直接实现逻辑回归:

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 生成数据集
X, y = make_classification(n_samples=1000, n_features=5, random_state=42)

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 训练逻辑回归模型
model = LogisticRegression()
model.fit(X_train, y_train)

# 预测
y_pred = model.predict(X_test)

# 计算准确率
print("Accuracy:", accuracy_score(y_test, y_pred))

7. 结论

  • 逻辑回归是用于二分类问题的概率模型
  • 使用 Sigmoid 函数将线性回归的输出映射到 (0,1) 之间
  • 使用交叉熵损失函数来优化参数
  • 可以使用梯度下降进行优化,在实际应用中广泛使用。

逻辑回归虽然简单,但在许多实际任务中表现良好,尤其适用于可解释性要求较高的任务。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机网络入门】初学计算机网络(六)

目录 1.回忆数据链路层作用 2. 组帧 2.1 四种组帧方法 2.1.1 字符计数法 2.1.2 字节填充法 2.1.3 零比特填充法 2.1.4 违规编码法 3. 差错控制 3.1 检错编码 3.1.1 奇偶校验码 3.1.2 CRC&#xff08;循环冗余校验&#xff09;校验码 3.2 纠错编码 3.2.1 海明校验码…

DeepSeek 与云原生后端:AI 赋能现代应用架构

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 在当今快速发展的互联网时代&#xff0c;云原生&#xff08;Cloud Native&#xff09;架构已成为后端开发的主流趋势。云…

leetcode第17题求电话号码组合

原题出于leetcode第17题https://leetcode.cn/problems/letter-combinations-of-a-phone-number/description/题目如下&#xff1a; 题目稍微有点复杂&#xff0c;初看会感觉特别复杂&#xff0c;首先我们需要理清思路&#xff1a; 最后的结果是字母组合&#xff0c;因此遍历的是…

DeepSeek-R1 论文笔记:通过强化学习提升大语言模型的推理能力

论文标题&#xff1a;DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning 作者团队&#xff1a;DeepSeek-AI 发表时间&#xff1a;2025 前置知识 & 术语 模型蒸馏 语言模型蒸馏的目标是将大型教师模型的知识&#xff08;如语义理解、上…

PDF文档中表格以及形状解析

我们在做PDF文档解析时有时需要解析PDF文档中的表格、形状等数据。跟解析文本类似的常见的解决方案也是两种。文档解析跟ocr技术处理。下面我们来看看使用文档解析的方案来做PDF文档中的表格、图形解析&#xff08;使用pdfium库&#xff09;。 表格解析&#xff1a; 在pdfium库…

深入理解并实现自定义 unordered_map 和 unordered_set

亲爱的读者朋友们&#x1f603;&#xff0c;此文开启知识盛宴与思想碰撞&#x1f389;。 快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 在 C 的标准模板库&#xff08;STL&#xff09;中&#xff0c;unorder…

228页PPT丨制造业核心业务流程优化咨询全案(战略营销计划生产研发质量),附核心系统集成架构技术支撑体系,2月26日资料已更新

一、订单全生命周期管理优化 1. 智能订单承诺&#xff08;CTP&#xff09;系统 ●集成ERP/APS/MES数据&#xff0c;实时计算产能可视性 ●应用蒙特卡洛模拟评估订单交付风险 ●建立动态插单评估模型&#xff08;基于边际贡献与产能占用系数&#xff09; 2. 跨部门协同机制…

6.6.5 SQL访问控制

文章目录 GRANT授予权限REVOKE回收权限 GRANT授予权限 GRANT语句可以给用户授予权限&#xff0c;基本格式是GRANT 权限 TO 用户。在授权时&#xff0c;WITH GRANT OPTION是可选项&#xff0c;有此句话&#xff0c;被授予权限的用户还能把权限赋给其他用户。 REVOKE回收权限 RE…

【语法】C++中string类中的两个问题及解答

贴主在学习string类时遇到过两个困扰我的问题&#xff0c;今天拿出来给大家分享一下我是如何解决的 一、扩容时capacity的增长问题 在string的capacity()接口中&#xff0c;调用的是这个string对象的容量(可以存多少个有效字符)&#xff0c;而size()是调用的string对象现在有…

智慧校园平台在学生学习与生活中的应用

随着科技的发展&#xff0c;教育领域也在不断探索新的模式与方法。智慧校园平台作为教育信息化的重要组成部分&#xff0c;正逐渐成为推动教育改革、提高教学质量的关键工具。 一.智慧校园平台概述 智慧校园平台是一种集成了教学管理、资源服务、数据分析等多功能于一体的数字…

AtCoder Beginner Contest 001(A - 積雪深差、B - 視程の通報、C - 風力観測、D - 感雨時刻の整理)题解

由于我发现网上很少有人会发很久之前AtCoder Beginner Contes的题&#xff0c;所以我打算从AtCoder Beginner Contest 001开始写。大约两周一更&#xff0c;需要的可以订阅专栏&#xff0c;感谢支持Thanks♪(&#xff65;ω&#xff65;)&#xff89; →题目翻译 A - 積雪深差…

Windows本地Docker+Open-WebUI部署DeepSeek

最近想在自己的电脑本地部署一下DeepSeek试试&#xff0c;由于不希望污染电脑的Windows环境&#xff0c;所以在wsl中安装了ollama&#xff0c;使用ollama拉取DeepSeek模型。然后在Windows中安装了Docker Desktop&#xff0c;在Docker中部署了Open-WebUI&#xff0c;最后再在Ope…

WSBDF レクチア 定义2 引理3 wsbdf的乘子

定义2 引理3 wsbdf的乘子 ここまで 寝みます❓

Odoo免费开源CRM技术实战:从商机线索关联转化为售后工单的应用

文 / 开源智造 Odoo金牌服务 Odoo&#xff1a;功能强大且免费开源的CRM Odoo 引入了一种高效的客户支持管理方式&#xff0c;即将 CRM 线索转换为服务台工单。此功能确保销售和支持团队能够无缝协作&#xff0c;从而提升客户满意度并缩短问题解决时间。通过整合 CRM 模块与服…

C语言(3)—循环、数组、函数的详解

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、函数二、循环与数组 1.循环2.数组 总结 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、函数 在C语言中&#xff0c;函数…

架构师论文《论面向对象设计的应用与实现》

软考论文-系统架构设计师 摘要 我所在的公司是国内一家专注于智慧城市建设的科技企业&#xff0c;为适应城市数字化转型中对于高内聚、低耦合、可扩展性的技术需求&#xff0c;2021年3月&#xff0c;公司立项开发“智慧社区综合管理平台”&#xff0c;旨在整合物业管理、安防监…

现代未来派品牌海报设计液体装饰英文字体安装包 Booster – Liquid Font

CS Booster – 具有动态流的液体显示字体 具有液体美感的现代显示字体 CS Booster 是一种未来主义的显示字体&#xff0c;采用流畅和有机的形式设计&#xff0c;赋予其流畅、灵活和不断移动的外观。独特的液体灵感形状和非刚性边缘使这款字体脱颖而出&#xff0c;提供一种既俏…

(十 四)趣学设计模式 之 策略模式!

目录 一、 啥是策略模式&#xff1f;二、 为什么要用策略模式&#xff1f;三、 策略模式的实现方式四、 策略模式的优缺点五、 策略模式的应用场景六、 总结 &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢博主的讲解方式&#xff0c;可以多多支…

kkfileview部署

kkfileview部署 链接: 官方文档 链接: gitee 链接: github 首先打开官网如下&#xff1a; OK&#xff0c;我们从官方文档的教程中看到&#xff0c;部署步骤如下: 是不是很简单&#xff0c;没错&#xff0c;于是我们按照步骤从码云上下载&#xff0c;然后解压&#xff0c;然…

文件描述符(File Descriptor)

一、介绍 内核&#xff08;kernel&#xff09;利用文件描述符&#xff08;file descriptor&#xff09;来访问文件。文件描述符是非负整数。打开现存文件或新建文件时&#xff0c;内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。 二、功能 文件…