机器学习实战18-机器学习中XGBClassifier分类器模型的应用实战,以及XGBClassifier分类器的调优策略

大家好,我是微学AI,今天给大家介绍一下机器学习实战18-机器学习中XGBClassifier分类器模型的应用实战,以及XGBClassifier分类器的调优策略。XGBClassifier是基于eXtreme Gradient Boosting (XGBoost)算法的分类器模型,在机器学习领域有着广泛应用。作为一种迭代的决策树提升方法,XGBClassifier通过集成多个弱学习器(通常是 CART 决策树)来构建强学习器,以实现对各类分类问题的高效预测。

在模型结构上,XGBClassifier采用梯度提升框架,通过优化损失函数来逐步训练一系列决策树。每一步,模型都会拟合前一步骤残差,从而减小整体预测误差。此外,它引入了正则化项以控制模型复杂度,防止过拟合,包括L1和L2正则化,以及列抽样(column subsampling)和行抽样(row subsampling)等技术。

XGBClassifier支持多种评价指标,如准确率、精确率、召回率、F1值等,并且具备自定义损失函数的能力,使其能够灵活适应多类别分类、二分类以及其他各种分类任务。同时,该模型还提供了丰富的超参数供用户调整,以优化模型性能,如学习率、树的深度、最小叶子节点样本数等。XGBClassifier以其卓越的性能、高效的计算速度以及强大的泛化能力,在众多数据科学竞赛和实际业务场景中展现出显著优势,成为分类问题求解的常用工具之一。
在这里插入图片描述

文章目录

  • 一、XGBClassifier模型概述
    • XGBClassifier定义
    • 二、XGBClassifier优势
  • 三、XGBClassifier模型结构详解
    • XGBClassifier的调参建议
    • 损失函数与优化目标
    • 正则化与节点分裂策略
  • 四、XGBClassifier实际应用案例
    • 金融风控领域
    • 医疗诊断领域
    • 推荐系统领域
  • 五、XGBClassifier分类器模型的数学原理
  • 六、XGBClassifier分类器模型的代码实现
  • 七、总结

一、XGBClassifier模型概述

XGBClassifier定义

XGBClassifier是基于eXtreme Gradient Boosting (XGBoost)算法的分类器,它是梯度提升树(Gradient Boosting Decision Tree, GBDT)的一种高效实现。XGBoost通过并行计算、列抽样、正则化和缺失值处理等一系列优化技术,极大地提升了模型训练速度和预测准确率。

在机器学习领域中,XGBClassifier是一个监督学习模型,主要用于解决二分类或多分类问题。它通过迭代构建弱学习器(通常是决策树),并将这些弱学习器以加权的方式组合成一个强学习器。在每一轮迭代中,模型会根据前一轮的学习结果调整数据分布和新引入的弱学习器的复杂度,以此逐步提升整体模型的表现。

假设我们正在建立一个系统来预测用户是否会购买某款产品。我们可以使用用户的年龄、性别、购物历史、浏览时间等特征作为输入数据,然后利用XGBClassifier进行训练。模型会生成一系列“简单规则”(即弱学习器,可以理解为决策树),比如“年轻女性用户如果经常浏览该产品且停留时间较长,则更可能购买”。通过不断迭代和优化这些规则,并将它们综合起来,最终形成一个强大的预测模型,能够较为准确地预测出每位用户是否会产生购买行为。

二、XGBClassifier优势

XGBClassifier是基于eXtreme Gradient Boosting (XGBoost)算法的分类器,它是梯度提升树(Gradient Boosting Decision Tree, GBDT)的一种高效实现。该模型通过集成多个弱学习器(通常是决策树)来构建一个强大的预测模型,每个新加入的学习器都在减少前一步骤中模型预测错误的基础上进行优化。其主要优势包括:

  1. 高效性:XGBClassifier采用了一种特殊的优化技术,能够快速处理大规模数据集,并且在保持高准确率的同时,对内存和计算资源的需求相对较低。

  2. 灵活性与可调优性:它提供了丰富的超参数供用户调整,如学习率、树的深度、正则化项等,以适应不同的数据特性和任务需求。

  3. 并行计算:XGBoost支持并行计算,能够在多核CPU或GPU上加速训练过程,大大提升了训练效率。

  4. 缺失值处理:XGBClassifier内置了对缺失值的有效处理机制,无需预处理即可直接处理含有缺失值的数据。

  5. 鲁棒性强:对于过拟合问题有较好的控制能力,通过正则化和早停策略可以有效防止过拟合现象。

假设我们正在运营一家电商平台,需要预测用户是否会购买某款产品。我们可以使用XGBClassifier模型来解决这个问题。首先,收集用户的各项特征数据,如年龄、性别、浏览历史、购物频率等。然后,利用XGBClassifier的强大集成学习能力,将这些复杂的用户行为信息转化为一系列简单的决策规则(即决策树),并通过不断迭代优化这些规则,最终形成一个精准的预测模型。即使部分用户数据存在缺失,XGBClassifier也能妥善处理。同时,由于其高效的并行计算能力和良好的抗过拟合特性,使得我们在短时间内就能得到高质量的预测结果,从而为个性化推荐提供有力支持。

三、XGBClassifier模型结构详解

XGBClassifier的调参建议

XGBClassifier是XGBoost库中的一个基于梯度提升的集成学习分类器,它是一个强大的机器学习模型,通常需要进行适当的参数调整以达到最佳性能。以下是一些常见的调参建议:

  1. 学习率 (learning_rate):
    • 学习率决定了每个弱学习器对最终模型的影响程度。较小的学习率通常需要更多的弱学习器(即树的数量),但可以提高模型的泛化能力。常见的学习率设置在0.01到0.3之间。
  2. 树的数量 (n_estimators):
    • 这个参数表示基学习器的数量,即决策树的数量。增加树的数量可以减少偏差,但可能会增加过拟合的风险。一般从100或200开始,根据验证集的性能逐渐增加。
  3. 树的深度 (max_depth):
    • 树的深度决定了模型复杂度。较深的树可以捕捉更多的特征关系,但也更容易过拟合。通常设置在3到10之间,但最好是交叉验证来确定最佳值。
  4. 子采样率 (subsample):
    • 这个参数用于训练每棵树时抽取样本的比例。较小的子采样率可以减少过拟合,增加模型的泛化能力。常见的设置在0.5到1之间。
  5. 列采样率 (colsample_bytree):
    • 类似于子采样,这是用于训练每棵树时抽取特征的比例。它有助于降低过拟合,增强模型的稳定性。通常设置在0.5到1之间。
  6. 正则化参数 (gamma, alpha, lambda):
    • gamma是节点分裂所需的最小损失减少量。较大的gamma值会导致模型更加保守。
    • alpha是L1正则化项的权重,用于控制叶节点的权重。
    • lambda是L2正则化项的权重,用于控制模型的复杂度。
  7. 最小子分裂重量 (min_child_weight):
    • 这个参数用于控制叶子节点所需的的最小样本权重和。较大的值可以避免模型学习到过于具体的细节。
  8. 缺失值的处理 (missing, scale_pos_weight):
    • missing用于指定缺失值的默认值。
    • scale_pos_weight用于处理类别不平衡问题,其值应该设为负样本量与正样本量的比例。
      调参时,推荐使用交叉验证来评估不同参数组合的性能,并使用网格搜索(GridSearchCV)或随机搜索(RandomizedSearchCV)来自动化参数调整过程。此外,可以监控验证集的性能来避免过拟合,并使用早期停止(early_stopping_rounds)来在验证集性能不再提升时停止训练。

损失函数与优化目标

XGBClassifier是基于梯度提升决策树的机器学习模型,它是XGBoost库中的一种分类算法实现。该模型的核心思想是通过迭代地构建多个弱学习器(通常是 CART 决策树),并将它们组合起来形成一个强学习器。

模型结构方面,XGBClassifier采用加法模型框架,即在每一轮迭代中,新的决策树会尝试拟合前一轮预测结果与真实标签之间的残差,以此逐步提升模型的整体性能。其结构包含多个 boosting 回归树,每个回归树的输出结果会被累加到最终预测值上。

损失函数方面,XGBClassifier支持多种损失函数,如二分类问题常用的逻辑回归损失函数(Binary: Logloss),多分类问题的softmax函数等。损失函数的选择取决于具体的任务需求,其主要作用是衡量模型预测结果与实际标签之间的差异,并在训练过程中指导模型优化。

优化目标则是最小化损失函数,同时引入正则化项以防止过拟合,即模型的目标是最小化预测误差和模型复杂度之和。在训练过程中,XGBoost利用泰勒展开对损失函数进行二阶近似,并结合贪婪的贪心策略选择最优分割点,从而高效地优化模型。

假设我们要预测顾客是否会购买某种商品(二分类问题)。XGBClassifier就像一位经验丰富的销售顾问,他首先做出初步判断(第一颗决策树),然后根据初次判断与实际购买情况的差异(损失函数)不断调整策略(迭代生成新的决策树)。同时,为了避免过于复杂的推销策略导致顾客反感(防止过拟合),他会自我约束,寻求最简洁有效的说服方式(正则化)。通过一轮轮的学习和改进,这位销售顾问的预测能力将越来越强。

正则化与节点分裂策略

XGBClassifier是基于梯度提升决策树(Gradient Boosting Decision Tree, GBDT)的机器学习模型,它是XGBoost库中的分类器实现。该模型的核心特点是通过集成多个弱学习器(即浅层决策树)来构建一个强大的预测模型,并在训练过程中引入了正则化和优化的节点分裂策略。

  1. 正则化:在XGBClassifier中,正则化主要体现在两个方面,一是L1和L2正则化,用于控制模型复杂度,防止过拟合。L1正则化通过对权重参数进行稀疏化处理,实现特征选择;L2正则化则是通过约束权重参数的平方和,使得模型参数相对较小且稳定。二是通过设置最大深度、最小叶子节点样本数等参数限制单个决策树的复杂度。

  2. 节点分裂策略:XGBoost采用了一种新颖的贪心算法寻找最优分割点,不仅考虑了特征分裂后增益的大小,还引入了二阶泰勒展开近似损失函数,以更精确地衡量每个特征分裂对模型性能的提升程度。此外,它还支持并行计算,大大提高了模型训练速度。

四、XGBClassifier实际应用案例

金融风控领域

在金融风控领域,XGBClassifier是一种广泛应用的机器学习模型。它基于梯度提升决策树算法,能够有效处理大量特征数据,并对信贷风险、欺诈交易检测等任务进行精准预测。

某银行在审批个人贷款申请时,会面临如何准确评估申请人违约风险的问题。通过收集包括但不限于申请人的年龄、收入、职业、信用历史、负债情况等多个维度的数据,利用XGBClassifier进行训练建模。模型通过对这些特征的学习和权重分配,可以预测出每个申请人的违约概率。银行则根据这个预测结果,决定是否批准贷款以及设定合理的贷款利率,从而有效控制信贷风险,降低坏账损失。

生活例子生动说明:假设你是一个水果店老板,每天都有很多人来赊账买水果,你需要判断哪些人能按时还款,哪些人可能赖账。这时,你可以参考一些信息,比如他们的购买记录(信用历史)、工作稳定性(职业)、每次购买金额与他们日常收入的关系(负债情况)等。XGBClassifier就像你的智能助手,帮你分析这些信息,给出每个人可能赖账的概率,这样你就知道应该给谁赊账,给谁不能赊,避免因频繁赖账导致的经济损失。

医疗诊断领域

在医疗诊断领域,XGBClassifier是一种强大的机器学习工具,常用于疾病预测和分类任务。例如,在癌症早期筛查项目中,我们可以利用大量的患者临床数据(如年龄、性别、生活习惯、家族病史、血液检测指标、影像学特征等多维度信息)作为输入特征,通过训练XGBClassifier模型,来预测患者是否患有某种特定癌症。

假设我们正在构建一个肺癌早期预测系统。每一条样本数据代表一个个体,其特征包括年龄、吸烟状况、职业暴露史、肺部CT图像的纹理特征等。XGBClassifier会根据历史病例的学习,自动挖掘这些特征之间的复杂关系,并据此建立预测模型。当新的患者数据输入时,模型将输出该个体患肺癌的概率,辅助医生进行初步诊断和决策。

生活中的类比:想象一下你是一位经验丰富的厨师,要判断一道菜是否适合糖尿病患者食用。你可以根据食材种类(比如糖分、脂肪含量等特征)、烹饪方式(煎、炒、蒸等特征)等信息做出判断。而XGBClassifier就像是你的智能助手,它通过学习你过去对菜品的判断经验,逐渐学会并掌握影响糖尿病患者饮食选择的关键因素,从而在你忙碌时,能准确快速地帮你筛选出适宜的菜品。

推荐系统领域

在推荐系统领域中,XGBClassifier是一种常用的机器学习模型,它基于梯度提升决策树算法,能够有效处理大规模数据集并进行高效预测。

具体应用案例:假设我们正在构建一个电影推荐系统,目标是预测用户对未观看电影的评分或喜好程度。首先,我们会收集大量的用户历史行为数据,如用户的观影记录、评分、浏览时间等特征。然后,利用XGBClassifier对这些数据进行训练。在训练过程中,模型会生成多棵决策树,每棵树都在前一棵树的基础上优化预测结果,通过集成学习的方式提高整体预测性能。

想象一下,你是一位在线视频平台的用户,平台使用了XGBClassifier作为推荐引擎的一部分。当你在平台上观看并评价了一系列电影后,系统开始运用XGBClassifier模型分析你的观影习惯和偏好(比如喜欢科幻片、不喜欢恐怖片,更偏爱高评分电影等)。模型通过学习海量用户的行为模式,精准地“猜”出你可能对哪些尚未观看的电影感兴趣,并将这些电影优先推荐给你,从而实现个性化推荐,提升用户体验。

五、XGBClassifier分类器模型的数学原理

XGBoost(eXtreme Gradient Boosting)是一种基于梯度提升树(Gradient Boosting Decision Tree, GBDT)算法的高效实现,其核心模型XGBClassifier主要用于分类任务。由于LaTeX公式较为复杂,下面仅简要介绍XGBoost的核心数学原理:

在XGBoost中,目标函数(obj)可以表示为训练损失函数(L)与正则化项(Ω)之和:

O b j ( θ ) = ∑ i = 1 n L ( y i , y ^ i ( t ) ) + Ω ( f ) Obj(\theta) = \sum_{i=1}^{n} L(y_i, \hat{y}_i^{(t)}) + \Omega(f) Obj(θ)=i=1nL(yi,y^i(t))+Ω(f)

其中, n n n是样本数量, y ^ i ( t ) \hat{y}_i^{(t)} y^i(t)是在第 t t t轮迭代时对第 i i i个样本预测的值, y i y_i yi是实际标签, f f f代表所有树的线性组合。

对于二分类问题,常用的损失函数如 logistic loss 可以写作:

L ( y i , y ^ i ( t ) ) = − [ y i log ⁡ ( y ^ i ( t ) ) + ( 1 − y i ) log ⁡ ( 1 − y ^ i ( t ) ) ] L(y_i, \hat{y}_i^{(t)}) = -[y_i\log(\hat{y}_i^{(t)}) + (1-y_i)\log(1-\hat{y}_i^{(t)})] L(yi,y^i(t))=[yilog(y^i(t))+(1yi)log(1y^i(t))]

正则化项用于控制模型复杂度,防止过拟合,通常包括叶子节点权重的L1正则和L2正则:

Ω ( f ) = γ T + 1 2 λ ∑ j = 1 T ∑ k = 1 K w j 2 \Omega(f) = \gamma T + \frac{1}{2}\lambda\sum_{j=1}^{T}\sum_{k=1}^{K}w_j^2 Ω(f)=γT+21λj=1Tk=1Kwj2

其中, T T T是树的总数量, K K K是每棵树的叶子节点数, w j w_j wj是第 j j j个叶子节点的分数, γ \gamma γ λ \lambda λ分别是控制树的复杂度和叶节点权重的正则化参数。

在每一轮迭代中,XGBoost通过优化目标函数来生成一个新的弱学习器(决策树),并将其累加到现有的模型中,以此逐步提升模型的表现。

以上是一个简化的数学描述,实际上XGBoost还包括许多优化策略,例如列采样、行采样、直方图近似等,以提高计算效率和模型性能。

六、XGBClassifier分类器模型的代码实现

实际上,XGBoost库并不基于PyTorch框架,而是基于C++和Python实现的梯度提升库,其核心算法是Gradient Boosting Decision Tree (GBDT)。以下是一个使用XGBoost库中的XGBClassifier进行分类任务的Python样例代码:

# 导入所需的库
import xgboost as xgb
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 将数据转换为DMatrix格式,这是XGBoost所要求的数据格式
D_train = xgb.DMatrix(X_train, label=y_train)
D_test = xgb.DMatrix(X_test, label=y_test)# 定义XGBClassifier模型参数
params = {'objective': 'multi:softmax',  # 分类问题'num_class': 3,  # 类别数量'max_depth': 3,  # 树的最大深度'eta': 0.3,  # 学习率'verbosity': 1,
}# 训练模型
model = xgb.train(params, D_train, num_boost_round=100)# 预测
preds = model.predict(D_test)# 将预测结果转换为整数类别(取概率最高的类别)
preds = np.argmax(preds, axis=1)# 计算准确率
accuracy = accuracy_score(y_test, preds)
print("Accuracy: %.2f%%" % (accuracy * 100.0))

请注意,以上可以在PyTorch项目中集成XGBoost作为预处理或后处理步骤的一部分。

七、总结

XGBClassifier是一种基于XGBoost算法的高效分类器模型,在机器学习领域应用广泛。其核心机制是运用梯度提升框架集成多个弱学习器——CART决策树,通过迭代优化损失函数并拟合残差,以提高预测准确性并防止过拟合。模型内置正则化技术和行、列抽样策略,有效控制模型复杂度。XGBClassifier支持多类别的评价指标选择与自定义损失函数,具有高度灵活性,适用于各类分类任务。此外,丰富的超参数配置选项使得用户可以根据具体需求优化模型性能。凭借出色的性能、高速计算能力和卓越的泛化能力,XGBClassifier在各类数据科学竞赛及实际业务场景中表现出色,成为解决分类问题的首选工具之一。

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

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

相关文章

[Semi-笔记]Switching Temporary Teachers for Semi-Supervised Semantic Segmentation

目录 概要创新一:Dual Temporary Teacher挑战:解决: 创新二:Implicit Consistency Learning(隐式一致性学习)挑战:解决: 实验结果小结论文地址代码地址 分享一篇2023年NeurIPS的文章…

python 利用xpath 爬取一周天气

需求: 爬取 中国天气网指定城市一周的天气,以天津为例 实现: 1,先找到一周的数据位置。 divs html.xpath("//div[classhanml]") 2,再遍历每天。 trs div.xpath("./div/div[2]/table//tr[position…

PC发送指令给单片机控制LED(与上一篇文章相反)

此时要重新配置寄存器 ,实现电脑往单片机传输数据 1、配置SCON寄存器的REN 即 REN 1 2、有TI(发送中断)就有RI(接收中断) 3、优化 发现发送 o 时,D5亮灯会有延迟 下面就是做到真正的无延迟的全双工通信 …

深入理解计算机系统 家庭作业 2.85

A 7111.01.11*V E2,M1.11,f0.11 位表示: exp:10000...001其中0有k-2个.frac:1100...000其中0有n-2个 B 有个默认条件就是E>n, En,M1.111...(小数部分n个1),f0.1111(n个1),V exp:111...11其中1有n-1个.frac:111...111其中1有n个 C有个默认条件就是没有符号位.最小的规格…

JS详解-设计模式

工厂模式: 单例模式: // 1、定义一个类class SingleTon{// 2、添加私有静态属性static #instance// 3、添加静态方法static getInstance(){// 4、判断实例是否存在if(!this.#instance){// 5、实例不存在,创建实例this.#instance new Single…

Android 关于apk反编译d2j-dex2jar classes.dex失败的几种方法

目录 确认路径正确直接定位到指定目录确定目录正确,按如下路径修改下面是未找到相关文件正确操作 确认路径正确 ,即d2j-dex2jar和classes.dex是否都在一个文件夹里(大部分的情况都是路径不正确) 直接定位到指定目录 路径正确的…

第12届蓝桥杯省赛 ---- C/C++ C组

文章目录 1. ASC2. 空间3. 卡片4. 相乘5. 路径6.时间显示7.最少砝码8. 杨辉三角形9. 左孩子右兄弟 第12届蓝桥杯省赛&#xff0c;C/C C组真题&#xff0c;第10题不是很清楚&#xff0c;题解不敢乱放&#x1f601;&#x1f601;&#x1f601; 1. ASC 额。。。。 #include <i…

Java NIO Selector选择器源码分析

文章目录 前言Selector类结构Selector抽象类AbstractSelectorSelectorImplWindowsSelectorImpl三种SelectionKey集合 前言 Java NIO&#xff08;New I/O&#xff09;的Selector选择器是一个用于多路复用&#xff08;Multiplexing&#xff09;的I/O操作的关键组件。它允许一个单…

【题目】【网络系统管理】2021年全国职业院校技能大赛模块B--样题(九)

2021年全国职业院校技能大赛 网络系统管理&#xff08;样题9&#xff09;模块B&#xff1a;Windows环境 全国职业院校技能大赛执委会.技术专家组 2021年03月 竞赛简介 请认真阅读以下指引&#xff01; 比赛共4个小时&#xff0c;你必须自行决定如何分配你的时间。 当比赛结…

java-权限修饰符、代码块

一、权限修饰符概念 权限修饰符是用来控制一个成员被访问的范围&#xff0c;可以用来修饰成员变量、方法、构造方法、内部类 二、权限修饰符的分类 举例&#xff1a; 1、private 2、空着不写 3、protected 4、public 三、权限修饰符的使用规则 实际开发中&#xff0c;一般使…

Mahalanobis距离(马氏距离)的本质

马氏距离是加权 ℓ 2 \ell_2 ℓ2​范数的特例。 马氏距离是一种基于样本分布的距离&#xff0c;加权矩阵是样本或总体协方差矩阵的逆&#xff0c;其本质为去相关数据标准化&#xff0c;通过数据变换&#xff0c;消除样本中不同特征维度间的相关性和量纲差异。

电子台账:用控件颜色提高工作效率和数据质量

目录 1 前言 2 用页签颜色表示月度数据锁定状态 3 模板制作中定位数据源表格及其行列 3.1 鼠标移过水平过滤模板 3.2 鼠标移过垂直过滤模板 4 数据抓取过程对账页和源单元格同时染色 5 数据溯源过程&#xff0c;对企业数据源单元格染色 6 用键盘进行数据编辑后 1 前言 …

第1个Django应用及Django的请求处理

Python学习之路系列文章目录 python面向对象之警察与匪徒火拼场景模拟python面向对像之第二次笔记Django环境搭建及测试第1个Django应用及Django的请求处理 第1个Django应用及Django的请求处理 Python学习之路系列文章目录一、PyCharm创建django项目二、创建app什么是app怎么创…

JavaScript权威指南(第7版) 笔记 - 扩展操作符总结

扩展操作符 ... &#xff0c;不是真正意义上的JavaScript操作符。 let str "0123ABC" console.log(typeof ...str);// Uncaught SyntaxError: Unexpected token ... 上面的第2行代码会报错&#xff0c;扩展操作符 ... 只能在数组字面量、对象字面量、函数调用中使…

C语言中的字符与字符串:魔法般的函数探险

前言 在C语言的世界里&#xff0c;字符和字符串是两个不可或缺的元素&#xff0c;它们像是魔法般的存在&#xff0c;让文字与代码交织出无限可能。而在这个世界里&#xff0c;有一批特殊的函数&#xff0c;它们如同探险家&#xff0c;引领我们深入字符与字符串的秘境&#xff0…

Linux:进程等待究竟是什么?如何解决子进程僵尸所带来的内存泄漏问题?

Linux&#xff1a;进程等待究竟是什么&#xff1f;如何解决子进程僵尸所带来的内存泄漏问题&#xff1f; 一、进程等待的概念二、进程等待存在的意义三、如何进行进程等待3.1 wait()是实现进程等待1、wait()原型2. 验证wait()能回收僵尸子进程的空间 3.2 waitpid()实现进程等待…

560.和为K的子数组

560.和为K的子数组 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2示例 2&#xff1a; 输入&#xf…

Win10 下 git error unable to create file Invalid argument 踩坑实录

原始解决方案参看&#xff1a;https://stackoverflow.com/questions/26097568/git-pull-error-unable-to-create-file-invalid-argument 本问题解决于 2024-02-18&#xff0c;使用 git 版本 2.28.0.windows.1 解决方案 看 Git 抛出的出错的具体信息&#xff0c;比如如下都来自…

c51 单片机如何控制小灯闪烁?

目录 硬件电路设计 软件编程 烧录程序 测试 调整和优化 C51单片机是一种经典的8位微控制器&#xff0c;广泛应用于各种嵌入式系统和智能控制项目中。 C51单片机控制小灯闪烁主要涉及到硬件电路设计和软件编程两个方面。下面是一个基本的步骤说明&#xff1a; 硬件电路设计…

铸铁平台合理布局的重要性

铸铁平台合理布局的重要性是为了确保工作环境的安全和效率。以下是一些重要的原因&#xff1a; 安全性&#xff1a;合理布局可以最大限度地减少工作场所的事故和伤害。通过将设备和材料放置在正确的位置&#xff0c;可以降低工作人员被危险物体击中或跌倒的风险。此外&#xff…