当前位置: 首页 > news >正文

人工智能学习(五)之机器学习逻辑回归算法

深入剖析机器学习逻辑回归算法

一、引言

在机器学习领域,逻辑回归是一种极为经典且应用广泛的算法。虽说名字里带有 “回归”,但它主要用于解决分类问题,在医学、金融、互联网等多个领域都发挥着关键作用。例如,在医学上辅助判断疾病风险,金融领域评估信用风险,互联网行业进行用户行为分析等。接下来,就让我们深入探究逻辑回归算法,从原理推导、代码实现到实际应用拓展,全面了解这一强大的工具。

二、原理推导

(一)线性回归回顾

(二)逻辑回归模型构建

(三)极大似然估计

三、优化目标定义

四、迭代优化参数

五、代码实现

下面使用 Python 和 NumPy、scikit - learn库实现一个包含数据预处理、模型训练和评估的逻辑回归模型示例。在这个示例中,我们使用经典的鸢尾花数据集,该数据集包含四个属性列和一个品种类别列,我们的目标是根据四个属性来预测鸢尾花的品种。

# 导入必要的库from sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn.linear_model import LogisticRegressionfrom sklearn.metrics import accuracy_score, classification_report# 1. 加载数据# 使用load_iris函数从scikit - learn的数据集模块中加载鸢尾花数据集iris = load_iris()# 提取特征数据X = iris.data# 提取目标标签y = iris.target# 2. 数据预处理# 通过train_test_split函数将数据集划分为训练集和测试集# test_size=0.2表示20%的数据作为测试集# random_state=42设置随机种子,以确保结果的可重复性X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 使用StandardScaler对数据进行标准化处理# 它会将数据转换为均值为0,标准差为1的分布# 这对于使用梯度下降法训练的模型(如逻辑回归)非常重要,可以加快模型的收敛速度scaler = StandardScaler()X_train = scaler.fit_transform(X_train)X_test = scaler.transform(X_test)# 3. 模型训练# 创建逻辑回归模型实例# 设置solver='lbfgs'表示使用拟牛顿法中的L - BFGS算法来求解# multi_class='auto'表示让模型自动选择合适的多分类策略# random_state=42设置随机种子,确保模型训练结果的可重复性model = LogisticRegression(solver='lbfgs', multi_class='auto', random_state=42)# 使用训练数据对模型进行训练model.fit(X_train, y_train)# 4. 模型评估# 使用训练好的模型对测试集进行预测y_pred = model.predict(X_test)# 通过accuracy_score函数计算预测准确率accuracy = accuracy_score(y_test, y_pred)print(f"模型准确率: {accuracy}")# 使用classification_report函数生成详细的分类报告# 展示模型在各个类别上的精确率、召回率和F1值等评估指标print("分类报告:\n", classification_report(y_test, y_pred))

通过上述代码及注释,可以清晰地看到实现一个逻辑回归模型从数据处理到模型训练和评估的全过程。

六、多分类拓展

逻辑回归原本是为二分类问题设计的,但在实际应用中,常常会遇到多分类的情况,这时就需要对逻辑回归进行拓展。常见的拓展方法有 One-vs-Rest(OvR)和 Softmax 回归。

(一)One-vs-Rest(OvR)

OvR 方法是把多分类问题转化为多个二分类问题。对于有 个类别的情况,我们需要训练 个逻辑回归模型。每个模型都把其中一个类别当作正类,其他类别当作负类。比如在手写数字识别中,有 0 - 9 共 10 个类别,我们就训练 10 个逻辑回归模型,第一个模型判断是不是数字 0,第二个判断是不是数字 1,以此类推。在预测时,对于一个新样本,每个模型都会输出它属于自己对应类别的概率,最后选择概率最大的那个类别作为预测结果。这种方法简单直观,计算量相对较小,但当类别较多时,可能会出现分类边界不清晰的问题。

(二)Softmax 回归

Softmax 回归是逻辑回归在多分类问题上的直接扩展。它使用 Softmax 函数将线性回归的输出转换为 个类别的概率分布。Softmax 函数定义为 ,其中 是对应于类别 的参数向量。这个函数的作用是把线性回归的输出,通过指数运算和归一化,转化为每个类别对应的概率。Softmax 回归的损失函数同样基于极大似然估计,使用交叉熵损失函数,通过梯度下降等优化算法来求解参数。它在处理多分类问题时,考虑了所有类别之间的关系,分类效果通常比 OvR 更好,但计算量也相对较大。在实际应用中,比如图像分类中的多类别分类任务,Softmax 回归经常被使用。

七、逻辑回归算法的优缺点

(一)优点

简单易理解:逻辑回归的原理和模型结构都相对简单,参数含义明确,容易被初学者掌握。无论是原理推导,还是模型训练与预测过程,都不像一些复杂的深度学习模型那样晦涩难懂。这使得它在很多对模型可解释性要求较高的场景中,如医疗诊断、金融风险评估等,有着广泛的应用。医生可以根据逻辑回归模型的参数,判断各个症状与疾病之间的关联程度;金融分析师也能依据模型结果,清晰地了解不同因素对信用风险的影响。

计算效率高:逻辑回归的计算复杂度较低,训练和预测速度快。在处理大规模数据时,它不需要像深度学习模型那样消耗大量的计算资源和时间。例如在互联网行业处理海量用户行为数据时,逻辑回归可以快速完成模型训练和预测,为业务决策提供及时支持。同时,它对硬件要求不高,普通的计算机设备就能满足运行需求,降低了应用门槛。

可解释性强:模型的参数直接反映了各个自变量对因变量的影响程度,即每个特征对于分类结果的贡献大小一目了然。通过查看参数的正负和大小,我们可以很直观地判断某个特征是增加还是减少了样本属于某一类别的概率。在市场营销中,企业可以利用逻辑回归分析不同营销因素(如广告投放渠道、促销活动等)对客户购买行为的影响,从而有针对性地调整营销策略。

不需要大量数据:相比一些复杂的机器学习算法,逻辑回归在数据量相对较小的情况下也能表现出较好的性能。它对数据的依赖性不像深度学习模型那样强烈,不需要大量的标注数据来进行训练。这在数据获取困难或标注成本较高的领域,如稀有疾病研究、小众市场调研等,具有很大的优势。研究人员可以利用有限的数据建立逻辑回归模型,进行初步的分析和预测。

(二)缺点

对数据分布有要求:逻辑回归假设数据具有线性可分性或近似线性可分性,当数据的分布不符合这一假设时,模型的性能会受到较大影响。例如在一些复杂的分类问题中,数据的特征之间存在高度非线性关系,逻辑回归可能无法准确捕捉到这些关系,导致分类准确率下降。在图像识别中,图像的特征往往非常复杂,逻辑回归很难直接对原始图像数据进行有效的分类。

容易欠拟合:由于模型本身的简单性,逻辑回归在处理复杂数据时容易出现欠拟合现象,即模型不能很好地捕捉数据中的复杂模式和规律。这使得它在面对具有高度复杂性和多样性的数据时,表现不如一些非线性模型,如决策树、支持向量机等。在预测股票价格走势这样复杂多变的任务中,逻辑回归可能无法准确反映股价的波动规律,预测效果较差。

特征处理要求高:逻辑回归对特征的要求较高,需要对特征进行合理的选择和预处理。如果特征选择不当,可能会引入无关特征或冗余特征,影响模型的性能和训练效率。同时,对于特征之间的相关性也比较敏感,如果存在高度相关的特征,可能会导致模型参数估计不准确,出现多重共线性问题。在分析消费者购买行为时,如果选择的特征中包含多个高度相关的经济指标,就可能会干扰模型对消费者行为的准确判断。

多分类拓展存在局限:虽然逻辑回归可以通过 One - vs - Rest(OvR)和 Softmax 回归等方法进行多分类拓展,但在处理类别较多的情况时,OvR 方法可能会导致分类边界不清晰,而 Softmax 回归的计算量又会显著增加,使得模型的训练和预测效率降低。在大规模图像分类任务中,当类别数量众多时,逻辑回归的多分类拓展方法往往难以满足实际需求。

八、总结

逻辑回归作为一种经典的机器学习算法,虽然原理相对简单,但在实际应用中表现出色。通过本文对逻辑回归从原理推导、优化目标定义、迭代优化参数、代码实现到多分类拓展的详细介绍,希望读者能对逻辑回归算法有更深入的理解。在实际应用中,可以根据具体问题对逻辑回归进行适当的调整和优化,比如选择合适的特征、调整学习率和迭代次数等,以获得更好的性能。同时,逻辑回归也是许多更复杂算法的基础,深入理解它有助于学习和掌握其他机器学习方法,如神经网络中的 Softmax 分类层等。在未来的研究和实践中,可以进一步探索逻辑回归在更多领域的应用,以及与其他算法的结合,发挥其更大的价值。

相关文章:

人工智能学习(五)之机器学习逻辑回归算法

深入剖析机器学习逻辑回归算法 一、引言 在机器学习领域,逻辑回归是一种极为经典且应用广泛的算法。虽说名字里带有 “回归”,但它主要用于解决分类问题,在医学、金融、互联网等多个领域都发挥着关键作用。例如,在医学上辅助判断…...

Kubernetes学习之包管理工具(Helm)

一、基础知识 1.如果我们需要开发微服务架构的应用,组成应用的服务可能很多,使用原始的组织和管理方式就会非常臃肿和繁琐以及较难管理,此时我们需要一个更高层次的工具将这些配置组织起来。 2.helm架构: chart:一个应用的信息集合…...

数据结构课程设计(四)校园导航

4 校园导航 4.1 需求规格说明 【问题描述】 一个学校平面图,至少包括10个以上的场所,每个场所带有编号、坐标、名称、类别等信息,两个场所间可以有路径相通,路长(耗时)各有不同。要求读取该校园平面图&a…...

(done) MIT6.S081 2023 学习笔记 (Day7: LAB6 Multithreading)

网页:https://pdos.csail.mit.edu/6.S081/2023/labs/thread.html (任务1教会了你如何用 C 语言调用汇编,编译后链接即可) 任务1:Uthread: switching between threads (完成) 在这个练习中,你将设计一个用户级线程系统中的上下文切…...

大年初六,风很大

北京的风在立春附近的几天突然大了,正在盘算着这个冬天可能就这样平庸的去了,没成想风来了。走在风中,穿着本应该是三九天穿的冬装,紧闭着嘴,缩着身子,感受着这冬天该有的低温。这是冬天该有的样子&#xf…...

【算法】回溯算法专题③ ——排列型回溯 python

目录 前置小试牛刀回归经典举一反三总结 前置 【算法】回溯算法专题① ——子集型回溯 python 【算法】回溯算法专题② ——组合型回溯 剪枝 python 小试牛刀 全排列 https://leetcode.cn/problems/permutations/description/ 给定一个不含重复数字的数组 nums ,返…...

利用deepseek参与软件测试 基本架构如何 又该在什么环节接入deepseek

利用DeepSeek参与软件测试,可以考虑以下基本架构和接入环节: ### 基本架构 - **数据层** - **测试数据存储**:用于存放各种测试数据,包括正常输入数据、边界值数据、异常数据等,这些数据可以作为DeepSeek的输入&…...

99.20 金融难点通俗解释:中药配方比喻马科维茨资产组合模型(MPT)

目录 0. 承前1. 核心知识点拆解2. 中药搭配比喻方案分析2.1 比喻的合理性 3. 通俗易懂的解释3.1 以中药房为例3.2 配方原理 4. 实际应用举例4.1 基础配方示例4.2 效果说明 5. 注意事项5.1 个性化配置5.2 定期调整 6. 总结7. 代码实现 0. 承前 本文主旨: 本文通过中…...

为AI聊天工具添加一个知识系统 之79 详细设计之20 正则表达式 之7

本文要点 要点 “正则表达式” 本来是计算机科学计算机科学的一个概念。本项目将它推广(扩张)到认知科学的“认知范畴”概念, 聚合(收敛)到 神经科学 的“神经元”概念。 做法是:用reg 来系统化定义认知…...

[ Spring ] Spring Boot Mybatis++ 2025

文章目录 StructureMyBatis Controller AbilitiesConfigure Plugins and RepositoriesApply Plugins and Add DependenciesMyBatis Spring PropertiesMyBatis ApplicationMyBatis BeansMyBatis MapperMyBatis Query Builder Structure this blog introduce 3 ways using mybat…...

虚幻基础17:动画层接口

能帮到你的话,就给个赞吧 😘 文章目录 animation layer interface animation layer interface 动画层接口:动画图表的集。仅有名字。 添加到动画蓝图中,由动画蓝图实现动画图表。...

前缀和算法

文章目录 算法总览题目1371.每个元音包含偶数次的最长子字符串 算法总览 题目 1371.每个元音包含偶数次的最长子字符串 1371.每个元音包含偶数次的最长子字符串 参考博主的讲解 思路分析:就是得使用前缀和记录情况,dp[i][j]表示s[0] 到s[i] 中&…...

稀疏混合专家架构语言模型(MoE)

注:本文为 “稀疏混合专家架构语言模型(MoE)” 相关文章合辑。 手把手教你,从零开始实现一个稀疏混合专家架构语言模型(MoE) 机器之心 2024年02月11日 12:21 河南 选自huggingface 机器之心编译 机器之心…...

深入理解 `box-sizing: border-box;`:CSS 布局的利器

深入理解 box-sizing: border-box;:CSS 布局的利器 默认行为示例代码 使用 box-sizing: border-box;示例代码 全局应用 box-sizing: border-box;示例代码 实际应用场景1. 表单布局2. 网格布局 总结 在 CSS 中,box-sizing 属性决定了元素的总宽度和高度是…...

MySQL不适合创建索引的11种情况

文章目录 前言1. **数据量小的表**2. **频繁更新的列**3. **低选择性的列**4. **频繁插入和删除的表**5. **查询中很少使用的列**6. **大文本或BLOB列**7. **复合索引中未使用的前导列**8. **频繁进行批量插入的表**9. **查询返回大部分数据的表**10. **临时表**11. **列值频繁…...

shell呈现数据——在脚本中重定向

重定向输出 只需简单地重定向相应的文件描述符,就可以在脚本中用文件描述符STDOUT和STDERR在多个位置生成输出。在脚本中重定向输出的方法有两种。 临时重定向每一行。永久重定向脚本中的所有命令。 下面将具体展示这两种方法的工作原理。 1.临时重定向 如果你…...

vector容器(详解)

本文最后是模拟实现全部讲解,文章穿插有彩色字体,是我总结的技巧和关键 1.vector的介绍及使用 1.1 vector的介绍 https://cplusplus.com/reference/vector/vector/(vector的介绍) 了解 1. vector是表示可变大小数组的序列容器。…...

【初/高中生讲机器学习】0. 本专栏 “食用” 指南——写在一周年之际⭐

创建时间:2025-01-27 首发时间:2025-01-29 最后编辑时间:2025-01-29 作者:Geeker_LStar 你好呀~这里是 Geeker_LStar 的人工智能学习专栏,很高兴遇见你~ 我是 Geeker_LStar,一名高一学生,热爱计…...

SAP SD学习笔记28 - 请求计划(开票计划)之2 - Milestone请求(里程碑开票)

上一章讲了请求计划(开票计划)中的 定期请求。 SAP SD学习笔记27 - 请求计划(开票计划)之1 - 定期请求-CSDN博客 本章继续来讲请求计划(开票计划)的其他内容: Milestone请求(里程碑请求)。 目录 1,Miles…...

【PyTorch介绍】

PyTorch 是什么? PyTorch 是一个开源的深度学习框架,由 Facebook 的人工智能研究实验室(FAIR)开发和维护。它是一个基于 Python 的库,专为深度学习和人工智能研究设计,支持动态计算图(dynamic …...

语言月赛 202412【正在联系教练退赛】题解(AC)

》》》点我查看「视频」详解》》》 [语言月赛 202412] 正在联系教练退赛 题目背景 在本题中,我们称一个字符串 y y y 是一个字符串 x x x 的子串,当且仅当从 x x x 的开头和结尾删去若干个(可以为 0 0 0 个)字符后剩余的字…...

【C++】B2122 单词翻转

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 💯一、我的做法代码实现:代码解析思路分析 💯二、老师的第一种做法代码实现&a…...

redis基本数据结构

基本数据结构 String String是Redis中最常见的数据存储类型: 其基本编码方式是RAW,基于简单动态字符串(SDS)实现,存储上限为512mb。 如果存储的SDS长度小于44字节,则会采用EMBSTR编码,此时ob…...

基于STM32景区环境监测系统的设计与实现(论文+源码)

1系统方案设计 根据系统功能的设计要求,展开基于STM32景区环境监测系统设计。如图2.1所示为系统总体设计框图。系统以STM32单片机作为系统主控模块,通过DHT11传感器、MQ传感器、声音传感器实时监测景区环境中的温湿度、空气质量以及噪音数据。系统监测环…...

使用冒泡排序模拟实现qsort函数

1.冒泡排序 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h>int main() {int arr[] { 0,2,5,3,4,8,9,7,6,1 };int sz sizeof(arr) / sizeof(arr[0]);//冒泡排序一共排序 sz-1 趟for (int i 0; i < sz - 1; i){//标志位&#xff0c;如果有序&#xff0c;直接…...

探秘Linux IO虚拟化:virtio的奇幻之旅

在当今数字化时代&#xff0c;虚拟化技术早已成为推动计算机领域发展的重要力量。想象一下&#xff0c;一台物理主机上能同时运行多个相互隔离的虚拟机&#xff0c;每个虚拟机都仿佛拥有自己独立的硬件资源&#xff0c;这一切是如何实现的呢&#xff1f;今天&#xff0c;就让我…...

在React中使用redux

一、首先安装两个插件 1.Redux Toolkit 2.react-redux 第一步&#xff1a;创建模块counterStore 第二步&#xff1a;在store的入口文件进行子模块的导入组合 第三步&#xff1a;在index.js中进行store的全局注入 第四步&#xff1a;在组件中进行使用 第五步&#xff1a;在组件中…...

从 C 到 C++:理解结构体中字符串的存储与操作

对于刚入门 C/C 的程序员来说&#xff0c;字符串的存储和操作可能是个容易混淆的知识点。在 C 中&#xff0c;std::string 提供了非常友好的接口&#xff0c;我们可以轻松地在结构体中使用字符串类型&#xff0c;无需关注底层细节。然而&#xff0c;在 C 语言中&#xff0c;字符…...

2.3学习总结

图&#xff1a; 1.图的基本概念 2.图的存储和遍历 3.最小生成树 4.最短路径 5.拓扑排序和关键路径 一、图的基本概念 图的定义&#xff1a;不允许没有顶点&#xff0c;但边集可以为空 {无向图 {有向图&#xff1a;边弧&#xff0c;弧头&#xff08;有箭头&#xff09;…...

wordpress代码结构解析

WordPress 是一个基于 PHP 和 MySQL 的开源内容管理系统&#xff08;CMS&#xff09;&#xff0c;广泛用于构建网站和博客。要解析 WordPress 代码&#xff0c;首先需要了解其核心结构、主要文件和常用的函数。以下是 WordPress 代码解析的基本指南&#xff1a; --- ### 1. *…...

使用 Numpy 自定义数据集,使用pytorch框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测,对预测结果计算精确度和召回率及F1分数

1. 导入必要的库 首先&#xff0c;导入我们需要的库&#xff1a;Numpy、Pytorch 和相关工具包。 import numpy as np import torch import torch.nn as nn import torch.optim as optim from sklearn.metrics import accuracy_score, recall_score, f1_score2. 自定义数据集 …...

FPGA|例化生成的PLL功能IP核

1、例化上一篇文章中调用的IP核&#xff0c;新建文件PLL_test.v 2、代码如图 timescale 1ns / 1ps module PLL_test(input clk,input rst_n,output clkout0,output clkout1,output clkout2,output clkout3,output clkout4);wire locked;PLL pll_inst(.inclk0(clk),.c0(clkout0)…...

K个不同子数组的数目--滑动窗口--字节--亚马逊

Stay hungry, stay foolish 题目描述 给定一个正整数数组 nums和一个整数 k&#xff0c;返回 nums 中 「好子数组」 的数目。 如果 nums 的某个子数组中不同整数的个数恰好为 k&#xff0c;则称 nums 的这个连续、不一定不同的子数组为 「好子数组 」。 例如&#xff0c;[1,2,…...

手机连接WIFI可以上网,笔记本电脑连接WIFI却不能上网? 解决方法?

原因&#xff1a;DNS受污染了 解决办法 step 1&#xff1a;清空域名解析记录&#xff08;清空DNS&#xff09; ipconfig /flushdns (Windows cmd命令行输入) step 2&#xff1a;重新从DHCP 获取IP ipconfig /release&#xff08;释放当前IP地址&#xff09; ipconfig /renew &…...

大模型综述一镜到底(全文八万字) ——《Large Language Models: A Survey》

论文链接&#xff1a;https://arxiv.org/abs/2402.06196 摘要&#xff1a;自2022年11月ChatGPT发布以来&#xff0c;大语言模型&#xff08;LLMs&#xff09;因其在广泛的自然语言任务上的强大性能而备受关注。正如缩放定律所预测的那样&#xff0c;大语言模型通过在大量文本数…...

C语言按位取反【~】详解,含原码反码补码的0基础讲解【原码反码补码严格意义上来说属于计算机组成原理的范畴,不过这也是学好编程初级阶段的必修课】

目录 概述【适合0基础看的简要描述】&#xff1a; 上述加粗下划线的内容提取版&#xff1a; 从上述概述中提取的核心知识点&#xff0c;需背诵&#xff1a; 整数【包含整数&#xff0c;负整数和0】的原码反码补码相互转换的过程图示&#xff1a; 过程详细刨析&#xff1a;…...

本地部署与使用SenseVoice语音大模型简析

前言 SenseVoice 是一种语音基础模型&#xff0c;具有多种语音理解功能&#xff0c;包括自动语音识别 (ASR)、口语识别 (LID)、语音情感识别 (SER) 和音频事件检测 (AED)。本博客将指导您安装和使用 SenseVoice 模型&#xff0c;使其尽可能方便用户使用。 Github 仓库链接: ht…...

QMK启用摇杆和鼠标按键功能

虽然选择了触摸屏&#xff0c;我仍选择为机械键盘嵌入摇杆模块&#xff0c;这本质上是对"操作连续性"的执着。   值得深思的是&#xff0c;本次开发过程中借助DeepSeek的代码生成与逻辑推理&#xff0c;其展现的能力已然颠覆传统编程范式&#xff0c;需求描述可自动…...

排序算法与查找算法

1.十大经典排序算法 我们希望数据以一种有序的形式组织起来&#xff0c;无序的数据我们要尽量将其变得有序 一般说来有10种比较经典的排序算法 简单记忆为Miss D----D小姐 时间复杂度 &#xff1a;红色<绿色<蓝色 空间复杂度&#xff1a;圆越大越占空间 稳定性&…...

基于Spring Security 6的OAuth2 系列之九 - 授权服务器--token的获取

之所以想写这一系列&#xff0c;是因为之前工作过程中使用Spring Security OAuth2搭建了网关和授权服务器&#xff0c;但当时基于spring-boot 2.3.x&#xff0c;其默认的Spring Security是5.3.x。之后新项目升级到了spring-boot 3.3.0&#xff0c;结果一看Spring Security也升级…...

【思维导图】redis

学习计划&#xff1a;将目前已经学的知识点串成一个思维导图。在往后的学习过程中&#xff0c;不断往思维导图里补充&#xff0c;形成自己整个知识体系。对于思维导图里的每个技术知识&#xff0c;自己用简洁的话概括出来&#xff0c; 训练自己的表达能力。...

【Git】使用笔记总结

目录 概述安装Git注册GitHub配置Git常用命令常见场景1. 修改文件2. 版本回退3. 分支管理 常见问题1. git add [中文文件夹] 无法显示中文问题2. git add [文件夹] 文件名中含有空格3. git add 触发 LF 回车换行警告4. git push 提示不存在 Origin 仓库5. Git与GitHub中默认分支…...

cf div3 998 E(并查集)

E : 给出两个简单无向图 &#xff08;没有重边和自环&#xff09;f g . 可以对f 进行 删边 和加边 的操作。问至少操作多少次 &#xff0c;使得 f 和 g 的 点的联通情况相同&#xff08;并查集的情况相同&#xff09; 首先思考删边 &#xff1a; 对于 我 f 图存在边 e &#x…...

【C++】string类(上):string类的常用接口介绍

文章目录 前言一、C中设计string类的意义二、string类的常用接口说明1. string类对象的常见构造2. string类对象的容量操作2.1 size、capacity 和 empty的使用2.2 clear的使用2.3 reserve的使用2.4 resize的使用 3. string类对象的访问及遍历操作3.1 下标[ ] 和 at3.2 迭代器it…...

[SAP ABAP] ABAP SQL跟踪工具

事务码ST05 操作步骤 步骤1&#xff1a;使用事务码ST05之前&#xff0c;将要检测的程序生成的页面先呈现出来&#xff0c;这里我们想看下面程序的取数操作&#xff0c;所以停留在选择界面 步骤2&#xff1a; 新建一个GUI窗口&#xff0c;输入事务码ST05&#xff0c;点击 Acti…...

OpenGL学习笔记(六):Transformations 变换(变换矩阵、坐标系统、GLM库应用)

文章目录 向量变换使用GLM变换&#xff08;缩放、旋转、位移&#xff09;将变换矩阵传递给着色器坐标系统与MVP矩阵三维变换绘制3D立方体 & 深度测试&#xff08;Z-buffer&#xff09;练习1——更多立方体 现在我们已经知道了如何创建一个物体、着色、加入纹理。但它们都还…...

PHP 常用函数2025.02

PHP implode() 函数 语法 implode(separator,array) 参数描述separator可选。规定数组元素之间放置的内容。默认是 ""&#xff08;空字符串&#xff09;。array必需。要组合为字符串的数组。 技术细节 返回值&#xff1a;返回一个由数组元素组合成的字符串。PHP 版…...

17.3.4 颜色矩阵

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 17.3.4.1 矩阵基本概念 矩阵&#xff08;Matrix&#xff09;是一个按照长方阵列排列的复数或实数集合&#xff0c;类似于数组。 由…...

1. 【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--前言

在我们的专栏《单体开发》中&#xff0c;我们实现了一个简单的记账软件的服务端&#xff0c;并且成功上线。随着用户数量的不断增长&#xff0c;问题逐渐开始显现。访问量逐渐增加&#xff0c;服务端的压力也随之加大。随着访问量的攀升&#xff0c;服务端的响应时间变得越来越…...

02.04 数据类型

请写出以下几个数据的类型&#xff1a; 整数 a ----->int a的地址 ----->int* 存放a的数组b ----->int[] 存放a的地址的数组c ----->int*[] b的地址 ----->int* c的地址 ----->int** 指向printf函数的指针d ----->int (*)(const char*, ...) …...