机器学习与深度学习03-逻辑回归01
目录
- 上集回顾
- 1. 逻辑回归与线性回归的区别
- 2.逻辑回归的常见目标函数
- 3.逻辑回归如何分类
- 4.Sigmoid函数详解
- 5.逻辑回归模型的参数
上集回顾
上一节文章地址:链接
1. 逻辑回归与线性回归的区别
- 应用领域
线性回归通常⽤于解决回归问题,其中⽬标是预测⼀个连续数值输出(如房价、销售量等)。线性回归试图建⽴⼀个线性关系,以最小化观测值与模型预测值之间的差异
逻辑回归通常用于解决分类问题,其中⽬标是将输⼊数据分为两个或多个类别(如⼆分类问题中的是/否、多分类问题中的类别1、类别2等)。逻辑回归使⽤S形函数(逻辑函数)将线性组合的输⼊映射到概率输出 - 输出
- 线性回归的输出是⼀个连续的数值,可以是任意实数。线性回归模型的公式是
y = β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β n x n y = \beta_{0} + \beta_{1}x_{1} + \beta_{2}x_{2} + \cdots + \beta_{n}x_{n} y=β0+β1x1+β2x2+⋯+βnxn - 逻辑回归的输出是⼀个介于 0 和 1 之间的概率值,表示观测数据属于某个类别的概率。逻辑回归使⽤逻辑函数(也称为 sigmoid 函数)来计算概率,其公式是
p ( y = 1 ) = 1 1 + e − ( β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β n x n ) p(y = 1) = \frac{1}{1 + e^{-(\beta_{0} + \beta_{1}x_{1} + \beta_{2}x_{2} + \cdots + \beta_{n}x_{n})}} p(y=1)=1+e−(β0+β1x1+β2x2+⋯+βnxn)1
- 线性回归的输出是⼀个连续的数值,可以是任意实数。线性回归模型的公式是
- 模型形式
- 线性回归建立了⼀个线性关系,其中模型参数 表示输入特征与输出之间的线性关系。⽬标是最小化预测值与实际值之间的平方误差
- 逻辑回归使用逻辑函数对线性组合进行转换,使其落在0到1之间,代表了属于某⼀类的概率。模型参数表示对数概率与输入特征之间的线性关系。目标是最大化似然函数,以使观测数据在给定参数下的概率最大化
- 目标
- 线性回归的目标是找到⼀条最佳拟合线,以最小化实际观测值与预测值之间的误差平方和
- 逻辑回归的目标是找到最佳参数,以最大化观测数据属于正类别或负类别的概率,从而能够进行分类
2.逻辑回归的常见目标函数
逻辑回归的目标函数,通常也称为损失函数或代价函数,用于衡量模型的预测与实际观测值之间的差异.逻辑回归通常用于⼆分类问题,其目标是最⼤化观测数据属于正类别或负类别的概率,从⽽能够进行分类。逻辑回归的⽬标函数通常使⽤交叉熵损失函数(Cross-Entropy Loss Function)或对数损失函数(Log Loss Function),这两者通常是等价的。逻辑回归的交叉熵损失函数:
对于⼆分类问题,逻辑回归的损失函数可以表示为以下形式:
J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) log ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) ) ] J(\theta) = -\frac{1}{m} \sum_{i = 1}^{m} \left[ y^{(i)} \log(h_{\theta}(x^{(i)})) + (1 - y^{(i)}) \log(1 - h_{\theta}(x^{(i)})) \right] J(θ)=−m1i=1∑m[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]
其中:
- J ( θ ) J(\theta) J(θ)是损失函数
- m是训练样本数量
- y ( i ) y^{(i)} y(i) 是第 i个样本的实际类别标签(0或1)
- h θ ( x ( i ) ) h_{\theta}(x^{(i)}) hθ(x(i)) 是模型预测第 i个样本为正类别的概率
- θ \theta θ 是模型的参数(权重和偏置项)
这个损失函数的目标是最小化观测数据的负对数似然(negative log-likelihood),从而最大化观测数据属于正类别或负类别的概率。对于多分类问题,逻辑回归的损失函数可以使用多分类的交叉熵损失函数,如softmax交叉熵损失函数。其他常见的损失函数包括均方误差损失 和平均绝对误差损失,但这些损失函数通常用于回归问题,而不是分类问题。在分类问题中,逻辑回归的交叉熵损失函数是最常见和推荐的选择,因为它能够测量分类模型的概率输出与实际标签之间的差异,并且具有良好的数学性质
3.逻辑回归如何分类
- 处理⼆分类问题
- 数据准备:获取带有标签的训练数据集,其中每个样本都有⼀个⼆元类别标签,通常为0或1
- 特征⼯程:根据问题的性质选择和提取适当的特征,以作为模型的输⼊
- 模型训练:使⽤逻辑回归模型,建立⼀个线性组合的模型,然后通过逻辑函数将其映射到[0, 1]范围内的概率。训练模型时,通过最大化似然函数来拟合模型参数
- 预测和分类:对于新的未标记样本,使用训练好的模型进⾏预测。通常,模型会输出⼀个概率值,然后可以根据阈值(通常为0.5)将概率转化为⼆元类别,例如,如果概率⼤于阈值,则将样本分为正类别(1),否则分为负类别(0)
- 评估模型性能:使用适当的性能指标(如准确率、精确度、召回率、F1分数、ROC曲线和AUC)来评估模型的性能
- 处理多分类问题
- ⼀对多(OvR)方法:也称为⼀对剩余方法。对于有K个类别的问题,使⽤K个⼆分类逻辑回归模型。每个模型将⼀个类别作为正类别,⽽将其他K-1个类别视为负类别。当需要对新样本进行分类时,每个模型都会产生⼀个概率,最后选择具有最高概率的类别作为预测结果
- Softmax回归:也称为多类别逻辑回归或多项式回归。Softmax回归将多个类别之间的关系建模为⼀个多类别概率分布。它使⽤Softmax函数来将线性组合的输⼊映射到K个类别的概率分布,其中K是类别的数量。训练Softmax回归模型时,通常使⽤交叉熵损失函数
4.Sigmoid函数详解
Sigmoid函数,也称为逻辑函数(Logistic Function),是⼀种常⽤的S型函数,具有如下的数学形式为
σ ( z ) = 1 1 + e − z \sigma(z) = \frac{1}{1 + e^{-z}} σ(z)=1+e−z1
其中 σ ( z ) \sigma(z) σ(z)表示Sigmoid函数, 是⾃然对数的底数(约等于2.71828),z是实数输入,Sigmoid函数的作⽤在于将任何实数输⼊ 映射到⼀个介于0和1之间的概率值。这个映射特性使Sigmoid函数在逻辑回归中⾮常有⽤,因为它可以⽤来建⽴⼀个线性模型的输出,该输出表示属于某⼀类别的概率,它的作用有以下几点
- 将线性组合转化为概率:逻辑回归模型通过将输⼊特征的线性组合( β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β n x n \beta_{0} + \beta_{1}x_{1} + \beta_{2}x_{2} + \cdots + \beta_{n}x_{n} β0+β1x1+β2x2+⋯+βnxn)传递给Sigmoid函数,将其转化为⼀个介于0和1之间的概率值。这个概率表示样本属于正类别的概率
- 分类决策:通常,逻辑回归模型会根据Sigmoid函数的输出来做出分类决策。如果概率⼤于或等于⼀个阈值(通常是0.5),则样本被分类为正类别;如果概率⼩于阈值,则样本被分类为负类别
- 平滑性:Sigmoid函数是光滑的S型曲线,具有连续导数。这使得逻辑回归模型易于优化,可以使⽤梯度下降等优化算法来找到最佳参数
- 输出的概率解释:Sigmoid函数的输出可以被解释为⼀个事件的概率。这使得逻辑回归模型可以提供与概率相
关的信息,⽽不仅仅是类别的预测结果
5.逻辑回归模型的参数
参数主要包括:
- 权重(系数):对应于每个输⼊特征的权重,⽤于衡量该特征对预测的影响。每个特征都有⼀个对应的权重参数
- 截距(偏置项):表示模型的基准输出,即当所有特征的值都为零时,模型的输出值
训练逻辑回归模型的过程通常涉及以下步骤:
- 数据准备:获取带有标签的训练数据集,其中包括输⼊特征和相应的类别标签(通常为0或1)
- 特征⼯程:选择和提取适当的特征,并进⾏必要的特征预处理(例如,标准化、缺失值处理等)
- 模型初始化:初始化模型的权重和截距(通常为零或⼩随机值)
- 定义损失函数:通常使⽤交叉熵损失函数(对数损失函数)来衡量模型预测的概率与实际标签之间的差异
- 优化算法:选择⼀个优化算法,通常是梯度下降(Gradient Descent)或其变种,⽤于最⼩化损失函数并更新模型的参数(权重和截距)。优化算法会沿着损失函数的梯度⽅向更新参数,使损失逐渐减⼩。
- 训练模型:迭代运⾏优化算法,通过将训练数据传递给模型,计算梯度并更新参数。训练过程通常需要多个迭代轮次,直到收敛到最佳参数
- 评估模型:使⽤独⽴的验证集或测试集来评估模型的性能。通常使⽤性能指标(如准确率、精确度、召回率、F1分数等)来评估模型的分类性能
- 调整超参数:根据模型性能进⾏超参数调优,例如学习率、正则化参数等
- 模型应⽤:⼀旦训练完毕并满意性能,可以使⽤该模型来进⾏新样本的分类预测
- 可解释性分析(可选):根据模型的参数权重,可以进⾏特征重要性分析,以了解哪些特征对模型的预测
具影响⼒
相关文章:
机器学习与深度学习03-逻辑回归01
目录 上集回顾1. 逻辑回归与线性回归的区别2.逻辑回归的常见目标函数3.逻辑回归如何分类4.Sigmoid函数详解5.逻辑回归模型的参数 上集回顾 上一节文章地址:链接 1. 逻辑回归与线性回归的区别 应用领域 线性回归通常⽤于解决回归问题,其中⽬标是预测⼀…...

卷积神经网络(CNN)入门学习笔记
什么是 CNN? CNN,全称 卷积神经网络(Convolutional Neural Network),是一种专门用来处理图片、语音、文本等结构化数据的神经网络。 它模仿人眼识别图像的方式: 从局部到整体,一步步提取特征&a…...
【优笔】基于STM32的多模态智能门禁系统
代码功能详细描述 该代码实现了一个基于STM32的多模态智能门禁系统,整合密码、指纹、人脸识别(预留)三种验证方式,并提供完善的管理功能。系统架构如下图所示: #mermaid-svg-Uufpcoeo5Lega096 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size…...
Metasploit工具使用详解(上)丨小白WEB安全入门笔记
Metasploit工具使用详解(上)丨小白WEB安全入门笔记 一、课程定位与工具概述 课程性质: 小白WEB安全入门课程聚焦基础操作,非深度专题(Metasploit专题可讲数十节课)目标:掌握基本概念和简单漏洞利用 Metasploit核心定…...
Femap许可证与网络安全策略
随着科技的快速发展,网络安全问题已成为各行各业关注的焦点。在电磁仿真领域,Femap作为一款领先的软件,其许可证的安全性和网络策略的重要性不言而喻。本文将探讨Femap许可证与网络安全策略的关系,确保您的电磁仿真工作能够在一个…...

VLAN的作用和原理
1. 为什么要有vlan? 分割广播域,避免广播风暴,造成网络资源的浪费 可以灵活的组网,便于管理,同时还有安全加固的功能 2. vlan是怎么实现的?端口的原理? 设置VLAN后,流量之间的转…...

深入探讨集合与数组转换方法
目录 1、Arrays.asList() 1.1、方法作用 1.2、内部实现 1.3、修改元素的影响 1.4、注意事项 2、list.toArray() 2.1、方法作用 2.2、内部实现 2.3、修改元素的影响 2.4、特殊情况 1、对象引用 2、数组copy 3、对比总结 4、常见误区与解决方案 5、实际应用建议…...
让大模型看得见自己的推理 — KnowTrace结构化知识追踪
让大模型“看得见”自己的推理 —— KnowTrace 结构化知识追踪式 RAG 全解析 一句话概括:把检索-推理“改造”成 动态知识图构建任务,再让 LLM 只关注这张不断精炼的小图 —— 这就是显式知识追踪的核心价值。 1. 背景:为什么 RAG 仍难以搞定多跳推理? 长上下文负担 传统 I…...

【HarmonyOS 5应用架构详解】深入理解应用程序包与多Module设计机制
⭐本期内容:【HarmonyOS 5应用架构详解】深入理解应用程序包与多Module设计机制 🏆系列专栏:鸿蒙HarmonyOS:探索未来智能生态新纪元 文章目录 前言应用与应用程序包应用程序的基本概念应用程序包的类型标识机制应用安装流程 应用的…...

【Oracle】DCL语言
个人主页:Guiat 归属专栏:Oracle 文章目录 1. DCL概述1.1 什么是DCL?1.2 DCL的核心功能 2. 用户管理2.1 创建用户2.2 修改用户2.3 删除用户2.4 用户信息查询 3. 权限管理3.1 系统权限3.1.1 授予系统权限3.1.2 撤销系统权限 3.2 对象权限3.2.1…...

MySQL强化关键_017_索引
目 录 一、概述 二、索引 1.主键索引 2.唯一索引 3.查看索引 4.添加索引 (1)建表时添加 (2)建表后添加 5.删除索引 三、树 1.二叉树 2.红黑树 3.B树 4.B树 (1)为什么 MySQL 选择B树作为索引…...
stm32——SPI协议
stm32——SPI协议 STM32的SPI(Serial Peripheral Interface,串行外设接口)协议是一种高速、全双工、同步的串行通信协议,广泛评估微控制器与各种外设(如传感器、器件、显示器、模块等)之间的数据传输。STM3…...
Linux 下如何查看进程的资源限制信息?
简介 Linux 上的 cat /proc/$pid/limits 命令提供有关特定进程的资源限制的信息,其中 $pid 是相关进程的进程 ID (pid)。该文件是 /proc 文件系统的一部分,该文件系统是一个虚拟文件系统,提供有关进程和系统资源的信息…...

【备忘】php命令行异步执行超长时间任务
环境说明: 操作系统:windows10 IDE:phpstorm 开发语言:php7.4 框架:thinkphp5.1 测试环境:linuxwindows均测试通过。 初级方法: function longRunningTask() {$root_path Tools::get_ro…...
对于ARM开发各种手册的分类
手册名称全称主要内容适用范围是不是讲SysTick?Cortex-M3 Technical Reference Manual (TRM)Cortex-M3 Technical Reference Manual描述 Cortex-M3内核架构,如寄存器模型、总线接口、指令集、异常模型只适合 Cortex-M3 内核,不含外设❌ 没有C…...
java开发中#和$的区别
在Spring框架中,$ 和 # 是两种不同的表达式前缀,用于从不同的来源获取值或执行计算。下面详细解释它们的区别和用法: 一、$ 占位符(Property Placeholder) 1. 作用 从配置文件(如 application.propertie…...

在 RK3588 上通过 VSCode 远程开发配置指南
在 RK3588 上通过 VSCode 远程开发配置指南 RK3588 设备本身不具备可视化编程环境,但可以通过 VSCode 的 Remote - SSH 插件 实现远程代码编写与调试。以下是完整的配置流程。 一、连接 RK3588 1. 安装 Debian 系统 先在 RK3588 上安装 Debian 操作系统。 2. 安…...

OpenHarmony标准系统-HDF框架之音频驱动开发
文章目录 引言OpenHarmony音频概述OpenHarmony音频框图HDF音频驱动框架概述HDF音频驱动框图HDF音频驱动框架分析之音频设备驱动HDF音频驱动框架分析之supportlibs实现HDF音频驱动框架分析之hdi-passthrough实现HDF音频驱动框架分析之hdi-bindev实现HDF音频驱动加载过程HDF音频驱…...

HTML Day03
Day03 0. 引言1. CSS1.1 CSS的3种使用方法1.2 内联样式1.3 内部样式表1.4 外部CSS文件 2. 图像3. 表格3.1单元格间距和单元格边框 4. 列表4.1 有序表格的不同类型4.2 不同类型的无序表格4.3 嵌套列表 5. 区块6. 布局6.1 div布局6.2 表格布局 0. 引言 HELLO ^ _ ^大家好…...

篇章六 数据结构——链表(二)
目录 1. LinkedList的模拟实现 1.1 双向链表结构图编辑 1.2 三个简单方法的实现 1.3 头插法 1.4 尾插法 1.5 中间插入 1.6 删除 key 1.7 删除所有key 1.8 clear 2.LinkedList的使用 2.1 什么是LinkedList 5.2 LinkedList的使用 1.LinkedList的构造 2. LinkedList的…...
Python60日基础学习打卡Day39
昨天我们介绍了图像数据的格式以及模型定义的过程,发现和之前结构化数据的略有不同,主要差异体现在2处 模型定义的时候需要展平图像由于数据过大,需要将数据集进行分批次处理,这往往涉及到了dataset和dataloader来规范代码的组织…...

吴恩达MCP课程(3):mcp_chatbot
原课程代码是用Anthropic写的,下面代码是用OpenAI改写的,模型则用阿里巴巴的模型做测试 .env 文件为: OPENAI_API_KEYsk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx OPENAI_API_BASEhttps://dashscope.aliyuncs.com/compatible-mode…...
MySQL访问控制与账号管理:原理、技术与最佳实践
MySQL的安全体系建立在精细的访问控制和账号管理机制上。本文基于MySQL 9.3官方文档,深入解析其核心原理、关键技术、实用技巧和行业最佳实践。 一、访问控制核心原理:双重验证机制 连接验证 (Connection Verification) 客户端发起连接时,MyS…...
AWS 创建VPC 并且添加权限控制
AWS 创建VPC 并且添加权限控制 以下是完整的从0到1在AWS中创建VPC并配置权限的步骤(包含网络配置、安全组权限和实例访问): 1. 创建VPC 步骤: 登录AWS控制台 访问 AWS VPC控制台,点击 创建VPC。 配置基础信息 名称…...
langchain学习 01
dotenv库:可以从.env文件中加载配置信息。 from dotenv import load_dotenv # 加载函数,之后调用这个函数,即可获取配置环境.env里面的内容: deep_seek_api_key<api_key>getpass库:从终端输入password性质的内…...

【清晰教程】查看和修改Git配置情况
目录 查看安装版本 查看特定配置 查看全局配置 查看本地仓库配置 设置或修改配置 查看安装版本 打开命令行工具,通过version命令检查Git版本号。 git --version 如果显示出 Git 的版本号,说明 Git 已经成功安装。 查看特定配置 如果想要查看特定…...

JAVA 常用 API 正则表达式
1 正则表达式作用 作用一:校验字符串是否满足规则作用二:在一段文本中查找满足要求的内容 2 正则表达式规则 2.1 字符类 package com.bjpowernode.test14;public class RegexDemo1 {public static void main(String[] args) {//public boolean matche…...

光电设计大赛智能车激光对抗方案分享:低成本高效备赛攻略
一、赛题核心难点与备赛痛点解析 全国大学生光电设计竞赛的 “智能车激光对抗” 赛题,要求参赛队伍设计具备激光对抗功能的智能小车,需实现光电避障、目标识别、轨迹规划及激光精准打击等核心功能。从历年参赛情况看,选手普遍面临三大挑战&a…...

Python实现P-PSO优化算法优化BP神经网络回归模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在当今数据驱动的时代,回归分析作为预测和建模的重要工具,在科学研究和工业应用中占据着重要…...

Microsoft的在word中选择文档中的所有表格进行字体和格式的调整时的解决方案
找到宏 创建 并粘贴 使用 Sub 全选所有表格() Dim t As Table an MsgBox("即将选择选区内所有表格,若无选区,则选择全文表格。", vbYesNo, "reboot提醒您!") If an - 6 Then Exit Sub Set rg IIf(Selection.Type wdSelectionIP, …...