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

预测模型开发与评估:基于机器学习的数据分析实践

在当今数据驱动的时代,预测模型已成为各行各业决策制定的核心工具。本文将分享我在COMP5310课程项目中开发预测模型的经验,探讨从数据清洗到模型优化的完整过程,并提供详细的技术实现代码。

## 研究问题与数据集

### 研究问题

我们的研究聚焦于信用卡欺诈检测,主要探讨以下问题:如何通过机器学习技术有效识别信用卡交易中的欺诈行为,并最大化检测准确率同时减少误报?

这一问题对金融机构和消费者都具有重大意义。对金融机构而言,能够及时识别欺诈交易可以减少经济损失;对消费者而言,则能保障个人财产安全并增强使用信用卡的信心。

### 数据集概述

我们使用的是信用卡交易数据集,包含了大量真实交易记录,其中少部分被标记为欺诈交易。数据集具有以下特点:

- 包含交易时间、金额及多个经PCA变换后的特征变量

- 存在严重的类别不平衡问题(欺诈交易占比不到1%)

- 原始数据中存在缺失值和异常值,需要进行预处理

## 建模准备

### 评估指标选择

考虑到欺诈检测的特殊性,我们选择以下评估指标:

1. **AUC-ROC曲线下面积**:能够全面评估模型在不同阈值下的表现

2. **精确率-召回率曲线及F1分数**:特别关注模型对少数类(欺诈交易)的识别能力

### 数据划分策略

我们采用了时间序列验证的方式划分数据:

- 训练集:70%(按时间顺序的前70%交易)

- 验证集:15%(用于超参数调优)

- 测试集:15%(用于最终评估)

这种划分方式能更好地模拟真实世界中欺诈检测的应用场景。

## 预测模型开发

### 模型选择:XGBoost算法

我选择了XGBoost作为主要模型,原因如下:

- 对类别不平衡数据集有较好的处理能力

- 能有效处理非线性关系

- 具有内置的特征重要性评估

- 在许多类似欺诈检测任务中表现优异

### 算法原理

XGBoost是梯度提升决策树(GBDT)的一种高效实现,其核心原理是通过构建多个弱学习器(决策树),每个新树都专注于修正前面树的预测误差。

XGBoost的主要算法步骤如下:

# XGBoost算法伪代码def xgboost_training(data, labels, n_estimators, learning_rate):# 初始化预测为0predictions = [0 for _ in range(len(labels))]# 迭代构建决策树for i in range(n_estimators):# 计算当前预测的残差(梯度)gradients = compute_gradients(labels, predictions)hessians = compute_hessians(labels, predictions)# 基于梯度和Hessian矩阵构建新树tree = build_tree(data, gradients, hessians)# 更新预测值tree_predictions = tree.predict(data)predictions = [pred + learning_rate * tree_predfor pred, tree_pred in zip(predictions, tree_predictions)]return final_model

### 模型开发过程

首先,我进行了深入的数据预处理:

# 数据预处理代码import pandas as pdimport numpy as npfrom sklearn.preprocessing import StandardScalerfrom sklearn.model_selection import train_test_split# 加载数据df = pd.read_csv('credit_card_fraud.csv')# 处理缺失值df.fillna(df.median(), inplace=True)# 特征缩放scaler = StandardScaler()df[['Amount', 'Time']] = scaler.fit_transform(df[['Amount', 'Time']])# 时间序列划分df = df.sort_values('Time')train_size = int(0.7 * len(df))val_size = int(0.15 * len(df))train_data = df.iloc[:train_size]val_data = df.iloc[train_size:train_size+val_size]test_data = df.iloc[train_size+val_size:]X_train, y_train = train_data.drop('Class', axis=1), train_data['Class']X_val, y_val = val_data.drop('Class', axis=1), val_data['Class']X_test, y_test = test_data.drop('Class', axis=1), test_data['Class']```接下来,我训练了初始XGBoost模型:```python# XGBoost模型训练import xgboost as xgbfrom sklearn.metrics import roc_auc_score, f1_score, precision_recall_curve# 创建DMatrix数据结构dtrain = xgb.DMatrix(X_train, label=y_train)dval = xgb.DMatrix(X_val, label=y_val)# 设置初始参数params = {'objective': 'binary:logistic','eval_metric': 'auc','max_depth': 6,'eta': 0.1,'subsample': 0.8,'colsample_bytree': 0.8,'scale_pos_weight': sum(y_train == 0) / sum(y_train == 1)  # 处理类别不平衡}# 训练模型watchlist = [(dtrain, 'train'), (dval, 'eval')]model = xgb.train(params, dtrain, num_boost_round=100,evals=watchlist, early_stopping_rounds=10)```

## 模型评估与优化

### 模型评估

我使用了ROC曲线和精确率-召回率曲线进行全面评估:

# 模型评估代码import matplotlib.pyplot as pltfrom sklearn.metrics import roc_curve, precision_recall_curve, auc# 在测试集上进行预测dtest = xgb.DMatrix(X_test)y_pred_prob = model.predict(dtest)# 计算ROC曲线fpr, tpr, _ = roc_curve(y_test, y_pred_prob)roc_auc = auc(fpr, tpr)# 计算PR曲线precision, recall, _ = precision_recall_curve(y_test, y_pred_prob)pr_auc = auc(recall, precision)# 计算最佳阈值下的F1分数f1_scores = []thresholds = np.arange(0.1, 0.9, 0.05)for threshold in thresholds:y_pred = (y_pred_prob >= threshold).astype(int)f1_scores.append(f1_score(y_test, y_pred))best_threshold = thresholds[np.argmax(f1_scores)]y_pred_optimized = (y_pred_prob >= best_threshold).astype(int)```

初始模型评估结果:

- AUC-ROC: 0.975

- PR-AUC: 0.856

- 最佳阈值下F1分数: 0.823

### 模型优化

通过网格搜索进行超参数优化:

# 超参数调优代码from sklearn.model_selection import GridSearchCV# 设置超参数搜索空间param_grid = {'max_depth': [3, 5, 7, 9],'learning_rate': [0.01, 0.05, 0.1, 0.2],'n_estimators': [50, 100, 200],'subsample': [0.6, 0.8, 1.0],'colsample_bytree': [0.6, 0.8, 1.0],'min_child_weight': [1, 3, 5]}# 创建XGBoost分类器xgb_clf = xgb.XGBClassifier(objective='binary:logistic',scale_pos_weight=sum(y_train == 0) / sum(y_train == 1))# 执行网格搜索grid_search = GridSearchCV(estimator=xgb_clf,param_grid=param_grid,scoring='f1',cv=5,verbose=1,n_jobs=-1)grid_search.fit(X_train, y_train)# 获取最佳参数best_params = grid_search.best_params_print(f"最佳参数: {best_params}")# 使用最佳参数训练最终模型final_model = xgb.XGBClassifier(**best_params)final_model.fit(X_train, y_train)```

优化后模型评估结果:

- AUC-ROC: 0.991

- PR-AUC: 0.912

- 最佳阈值下F1分数: 0.887

## 结论与讨论

通过本次项目,我成功开发了一个高效的信用卡欺诈检测模型。XGBoost算法在处理类别不平衡数据集方面展现出优异性能,特别是经过超参数优化后,模型在测试集上取得了令人满意的结果。

模型的主要优势在于:

1. 高准确率:减少误报同时保持高检出率

2. 可解释性:通过特征重要性分析,了解哪些因素对欺诈检测最为关键

3. 计算效率:相比复杂的神经网络,XGBoost在实际应用中更具部署优势

未来工作方向包括:

- 融合多模型集成学习,进一步提升性能

- 探索深度学习方法在欺诈检测中的应用

- 研究基于异常检测的无监督学习方法,用于发现新型欺诈模式

通过本项目,我不仅掌握了预测模型开发的完整流程,更深入理解了在现实业务场景中应用机器学习技术的挑战与策略。

## 参考资料

1. Chen, T., & Guestrin, C. (2016). XGBoost: A Scalable Tree Boosting System.

2. Brownlee, J. (2020). Imbalanced Classification with Python.

3. Pozzolo, A. D., et al. (2015). Calibrating Probability with Undersampling for Unbalanced Classification.

相关文章:

预测模型开发与评估:基于机器学习的数据分析实践

在当今数据驱动的时代,预测模型已成为各行各业决策制定的核心工具。本文将分享我在COMP5310课程项目中开发预测模型的经验,探讨从数据清洗到模型优化的完整过程,并提供详细的技术实现代码。 ## 研究问题与数据集 ### 研究问题 我们的研究聚焦…...

2026《数据结构》考研复习笔记四(绪论)

绪论 前言时间复杂度分析 前言 由于先前笔者花费约一周时间将王道《数据结构》知识点大致过了一遍,圈画下来疑难知识点,有了大致的知识框架,现在的任务就是将知识点逐个理解透彻,并将leetcode刷题与课后刷题相结合。因此此后的过…...

2025-5-16Vue3快速上手

1、reactive创建 对象类型的响应式数据 (1) (2)reactive包裹的对象类型数据是Proxy对象类型 2、ref 创建对象类型的响应式数据 (1)使用js修改ref的数据时依然要加.value (2)ref的底层是用reactive做响应式数据的,因为…...

Lua中使用module时踩过的坑

在lua中设置某个全局对象(假如对象名为LDataUser)为nil时, LDataUser并不会变成nil, 但在有些情况下设置LDataUser nil时却真变成了nil,然后会导致后续再使用LDataUser时会抛nil异常, 后来发现是使用module搞的鬼,下面看看豆包AI给的解释,还…...

WinSCP用户管理FTP详解

1、下载winscp 官方下载地址:https://winscp.net/eng/index.php 2、登录ftp 3、桌面快捷键 4、首页介绍 5、文件搜索 模糊查询,关键字两边必须加’ * ‘号 6、编码报错 报错原因:使用’936(ANS/OEM-简体中尉GBK)’编…...

python基础语法(三-中)

基础语法3&#xff1a; 2.列表与元组&#xff1a; <1>.列表、元组是什么&#xff1f; 都用来存储数据&#xff0c;但是两者有区别&#xff0c;列表可变&#xff0c;元组不可变。 <2>.创建列表&#xff1a; 创建列表有两种方式&#xff1a; [1].a 【】&#x…...

NLP双雄争霸:GPT与BERT的生成-理解博弈——从技术分野到产业融合的深度解码

NLP双雄争霸&#xff1a;GPT与BERT的生成-理解博弈——从技术分野到产业融合的深度解码 前言&#xff1a; 在自然语言处理&#xff08;NLP&#xff09;的版图上&#xff0c;GPT与BERT如双子星般照亮了智能时代的语言星空。一个是凭借千亿参数横扫生成任务的“文本造物主”&…...

JS手写代码篇---手写 instanceof 方法

2、手写 instanceof 方法 instancecof用于检测一个对象是否是某个构造函数的实例。它通常用于检查对象的类型&#xff0c;尤其是在处理继承关系时。 eg: const arr [1,2,3,4,5]console.log(arr instanceof Array); // trueconsole.log(arr instanceof Object); // true那这是…...

浮点数截断法:四舍五入的精确模拟

理论解释&#xff1a; 1. 目标 假设 a 3.14159&#xff0c;我们想四舍五入到 小数点后两位&#xff08;即 3.14 或 3.15&#xff09;。 2. 步骤拆解 (1) a * 100 把 a 放大 100 倍&#xff0c;让小数点后两位变成整数部分&#xff1a; 3.14159 * 100 314.159 (2) 0.5 关…...

c++ 类的语法3

测试下默认构造函数。demo1&#xff1a; void testClass3() {class Demo { // 没显示提供默认构造函数&#xff0c;会有默认构造函数。public:int x; // 普通成员变量&#xff0c;可默认构造};Demo demo1;//cout << "demo1.x: " << demo1.x << en…...

EasyExcel导出excel再转PDF转图片详解

封装EasyExcel导出工具类 相关的依赖自己网上搜索加上&#xff0c;这里不在阐述 Slf4j Service public class AgentExcelUtils {public String syncDynamicHeadWrite(String fileName,String sheetName,List<List<String>> headList,List<?> data) throws…...

【知识产权出版社-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…...

Oc语言学习 —— 重点内容总结与拓展(上)

隐藏和封装 有四种访问控制符&#xff1a;private(当前类访问权限)&#xff0c;package(与映像访问权限相同)&#xff0c;protect(子类访问权限)&#xff0c;public(公共访问权限)。 访问控制符 1.private&#xff08;当前类访问权限&#xff09; 成员变量只能在当前类的内部…...

全面且深度学习c++类和对象(上)

文章目录 过程和对象类的引入&#xff0c;类的定义类的访问限定符及封装类的访问限定符封装 类的实例化类大小内存对齐规则&#xff1a; this指针this特性 过程和对象 C语言面向过程设计&#xff0c;c面向对象设计&#xff0c; 举例&#xff1a;洗衣服 C语言&#xff1a;放衣服…...

QML元素 - RectangularGlow

QML 的 RectangularGlow 是 Qt Quick Effects 模块中专门为矩形元素设计的外发光效果&#xff0c;适用于为卡片、按钮、面板等矩形或圆角矩形添加柔和的边缘光晕&#xff0c;相比通用 Glow 更高效且支持圆角匹配。以下是详细使用技巧和优化指南&#xff1a; 1. 基本用法 impor…...

GraphPad Prism项目的管理

《2025新书现货 GraphPad Prism图表可视化与统计数据分析&#xff08;视频教学版&#xff09;雍杨 康巧昆 清华大学出版社教材书籍 9787302686460 GraphPadPrism图表可视化 无规格》【摘要 书评 试读】- 京东图书 GraphPad Prism统计数据分析_夏天又到了的博客-CSDN博客 项目…...

uniapp自定义日历计划写法(vue2)

文章目录 uniapp自定义日历计划写法(vue2)1、效果2、实现源码前言:我们有时候需要实现的日历找不到相应的插件的时候,往往需要手动去写一个日历,以下就是我遇到这样的问题时,手搓出来的一个解决方案,希望可以帮助到更多的人。创作不易,请多多支持uniapp自定义日历计划写…...

差分探头为什么要选择使用屏蔽双绞线

市面上很多各种品牌的差分探头&#xff0c;其使用的线缆都使用了屏蔽双绞线&#xff08;STP&#xff09;&#xff0c;这主要是因为在测试过程中因高压线路周围强电场或磁场在信号线与地线间感应出共模电压而产生的电磁耦合效应会对测试结果产生干扰&#xff0c;而屏蔽双绞线可以…...

Qt—用SQLite实现简单的注册登录界面

1.实现目标 本次实现通过SQLite制作一个简易的登录窗口&#xff0c;当点击注册按钮时&#xff0c;登录窗口会消失&#xff0c;会出现一个新的注册界面&#xff1b;完成注册或退出注册时&#xff0c;注册窗口会消失&#xff0c;重新出现登录窗口。注册过的用户信息会出现在SQLi…...

Visual Studio旧版直链

[Visual Studio 2019 社区版]&#xff08;https://aka.ms/vs/16/release/vs_community.exe&#xff09; [Visual Studio 2019 专业版]&#xff08;https://aka.ms/vs/16/release/vs_professional.exe&#xff09; [Visual Studio 2019 企业版]&#xff08;https://aka.ms/vs/16…...

elementUI源码学习

学习笔记。 最近在看element的table表格优化&#xff0c;又去看了一下element源码框架。element 的架构是很优秀&#xff0c;通过大量的脚本实现工程化&#xff0c;让组件库的开发者专注于事情本身&#xff0c;比如新加组件&#xff0c;一键生成组件所有文件&#xff0c;并完成…...

【LeetCode 热题 100】搜索插入位置 / 搜索旋转排序数组 / 寻找旋转排序数组中的最小值

⭐️个人主页&#xff1a;小羊 ⭐️所属专栏&#xff1a;LeetCode 热题 100 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 搜索插入位置搜索二维矩阵在排序数组中查找元素的第一个和最后一个位置搜索旋转排序数组寻找旋转排序数组中的最小值…...

捌拾伍- 量子傅里叶变换 (3)

前期的内容在 捌拾叁- 量子傅里叶变换 前期的内容在 捌拾肆- 量子傅里叶变换 (2) 9. 之前的 之前的公式写错了&#xff01; Markdown 的 KaTeX 真难用&#xff01;&#xff01;&#xff01; 而且之前的公式是从 j1 – jn &#xff0c;但量子计算都是从 0 开始的&#xff0c…...

探索ISBN查询接口:为图书管理系统赋能

在开发图书管理应用时&#xff0c;ISBN&#xff08;国际标准书号&#xff09;查询接口是获取图书元数据的核心工具。通过扫描图书条形码得到ISBN&#xff0c;再调用API即可轻松获取书名、作者、出版社、封面等信息。本文详细介绍几种主流ISBN查询API&#xff0c;包括国际和国内…...

Linux 内核中 inet_accept 的实现与自定义传输协议优化

在 Linux 内核中,网络协议栈的核心功能由一系列精心设计的函数实现,其中 inet_accept 是 TCP 协议接受新连接的关键入口。本文将深入分析该函数的实现逻辑,并探讨在实现自定义传输协议时如何权衡性能优化与代码简化。 一、inet_accept 函数解析 1. 功能概述 inet_accept 是…...

SAP-ABAP:SAP DMS(文档管理系统)的详细说明,涵盖其核心功能、架构、配置及实际应用

1. DMS 概述 SAP DMS&#xff08;Document Management System&#xff09;是SAP系统中用于管理企业文档的核心模块&#xff0c;支持文档的全生命周期管理&#xff08;创建、存储、版本控制、审批、归档&#xff09;。它与其他模块&#xff08;如物料管理MM、生产计划PP、设备维…...

前端方法的总结及记录

个人简介 &#x1f468;‍&#x1f4bb;‍个人主页&#xff1a; 魔术师 &#x1f4d6;学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全栈发展 &#x1f6b4;个人状态&#xff1a; 研发工程师&#xff0c;现效力于政务服务网事业 &#x1f1e8;&#x1f1f3;人生格言&…...

【Arthas实战】常见使用场景与命令分享

简介: Arthas是一款Java诊断工具&#xff0c;适用于多种场景&#xff0c;如接口响应变慢、CPU占用过高、热更新需求等。其核心命令包括实时监控面板&#xff08;dashboard&#xff09;、线程状态查看&#xff08;thread&#xff09;、方法调用链路追踪&#xff08;trace&#x…...

SearchClassUtil

路径扫描工具SearchClassUtil&#xff0c;用于扫描指定包&#xff08;XXXX&#xff09;下的所有.class文件&#xff0c;并将它们的全限定类名&#xff08;如tomcat.SearchClassUtil&#xff09;收集到列表中返回。该工具使用递归文件遍历和反射机制&#xff0c;是实现 Spring 框…...

开放世界地形渲染:以三角洲行动为例(下篇)

本文主要介绍如何提升室外画面渲染的品质 版权声明 本文为“优梦创客”原创文章&#xff0c;您可以自由转载&#xff0c;但必须加入完整的版权声明文章内容不得删减、修改、演绎本文视频版本&#xff1a;见文末 渲染品质提升 要提升画面的品质&#xff0c;就是去提升渲染的画…...

GpuGeek 网络加速:破解 AI 开发中的 “最后一公里” 瓶颈

摘要&#xff1a; 网络延迟在AI开发中常被忽视&#xff0c;却严重影响效率。GpuGeek通过技术创新&#xff0c;提供学术资源访问和跨国数据交互的加速服务&#xff0c;助力开发者突破瓶颈。 目录 一、引言&#xff1a;当算力不再稀缺&#xff0c;网络瓶颈如何破局&#xff1f; …...

关于 Web安全:1. Web 安全基础知识

一、HTTP/HTTPS 协议详解 1. HTTP协议基础 什么是 HTTP&#xff1f; HTTP&#xff08;HyperText Transfer Protocol&#xff09;是互联网中浏览器和服务器之间传输数据的协议&#xff0c;基于请求-响应模式。它是一个无状态协议&#xff0c;意思是每次请求都是独立的&#x…...

debugfs:Linux 内核调试的利器

目录 一、什么是 debugfs&#xff1f;二、debugfs 的配置和启用方式2.1 内核配置选项2.2 挂载 debugfs2.3 Android 系统中的 debugfs 三、debugfs 的典型应用场景3.1 调试驱动开发3.2 内核子系统调试3.3 性能分析 四、常见 debugfs 子目录与功能示例4.1 /sys/kernel/debug/trac…...

Spyglass:跨时钟域同步(同步使能)

相关阅读 Spyglasshttps://blog.csdn.net/weixin_45791458/category_12828934.html?spm1001.2014.3001.5482 简介 同步使能方案主要用于数据信号跨时钟域同步&#xff0c;该方案将一个控制信号同步至目标时钟域并用其作为数据信号的捕获触发器的使能信号&#xff0c;如图1所示…...

安装Minikube

环境 CentOS7 参考 minikube start | minikube 创建虚拟机,参考 模拟Gitlab安装-CSDN博客 下载二进制包 curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 报错不能解析host,配置host 下载成功 安装 sudo install minikube-linux-am…...

图像锐化调整

一、背景介绍 之前找多尺度做对比度增强时候&#xff0c;发现了一些锐化相关算法&#xff0c;正好本来也要整理锐化&#xff0c;这里就直接顺手对之前做过的锐化大概整理了下&#xff0c;方便后续用的时候直接抓了。 这里整理的锐化主要是两块&#xff1a;一个是参考论文&#…...

【CanMV K230】AI_CUBE1.4

《k230-AI 最近小伙伴有做模型的需求。所以我重新捡起来了。正好把之前没测过的测一下。 这次我们用的是全新版本。AICUBE1.4.dotnet环境9.0 注意AICUBE训练模型对硬件有所要求。最好使用独立显卡。 有小伙伴说集显也可以。emmmm可以试试哈 集显显存2G很勉强了。 我们依然用…...

STM32外设AD-定时器触发 + DMA读取模板

STM32外设AD-定时器触发 DMA读取模板 一&#xff0c;方法思路二&#xff0c;定时器基础与配置1&#xff0c;定时器时钟源 (Clock Source)2&#xff0c;预分频器 (Prescaler - PSC)3&#xff0c;自动重装载寄存器 (Auto-Reload Register - ARR) / 周期 (Period)4&#xff0c;触…...

数据库故障排查指南:从入门到精通

1. 常见数据库故障类型 1.1 连接故障 数据库连接超时连接池耗尽网络连接中断认证失败1.2 性能故障 查询执行缓慢内存使用过高CPU使用率异常磁盘I/O瓶颈1.3 数据故障 数据不一致数据丢失数据损坏事务失败2. 故障排查流程 2.1 初步诊断 -- 检查数据库状态SHOW STATUS;SHOW PRO…...

【AT32】 AT32 移植 Freemodbus 主站

基于野火开发板 at32f437zgt6芯片 和at32 官方开发工具 移植了网上一套开源的freemodbus 主站 这里对modbus 协议不做过多的讲解 主要已实现代码为主 AT32 Work Bench 参考之前我之前的配置 与stm32cubemx软件差不多 注意485芯片的收发脚配置即可 AT32 IDE 说实话这软件太垃…...

内网环境下如何使用ntpdate实时同步时间

背景介绍 NTP&#xff08;Network Time Protocol&#xff09;是一种网络协议&#xff0c;用于同步计算机系统的时间。ntpdate是一个用于手动同步时间的命令行工具&#xff0c;它可以从指定的NTP服务器获取当前时间并更新本地系统时间。 ntpdate 服务介绍 功能&#xff1a;ntp…...

python版本管理工具-pyenv轻松切换多个Python版本

在使用python环境开发时&#xff0c;相信肯定被使用版本所烦恼&#xff0c;在用第三方库时依赖兼容的python版本不一样&#xff0c;有没有一个能同时安装多个python并能自由切换的工具呢&#xff0c;那就是pyenv&#xff0c;让你可以轻松切换多个Python 版本。 pyenv是什么 p…...

工商总局可视化模版 – 基于ECharts的大数据可视化HTML源码

概述 在大数据时代&#xff0c;数据可视化已成为各行各业进行数据分析和决策的重要工具。幽络源今天为大家带来一款基于ECharts的工商总局数据可视化HTML模版&#xff0c;帮助开发者快速搭建专业级工商广告数据展示平台。这款模版设计规范&#xff0c;功能完善&#xff0c;适合…...

计算机网络 : 网络基础

计算机网络 &#xff1a; 网络基础 目录 计算机网络 &#xff1a; 网络基础引言1. 网络发展背景2. 初始协议2.1 初始协议2.2 协议分层2.2.1 软件分层的好处2.2.2 OSI七层模型2.2.3 TCP/IP五层&#xff08;四层&#xff09;模型 2.3 TCP/IP协议2.3.1TCP/IP协议与操作系统的关系&…...

eSwitch manager 简介

eSwitch manager 的定义和作用 eSwitch manager 通常指的是能够配置和管理 eSwitch&#xff08;嵌入式交换机&#xff09;的实体或接口。在 NVIDIA/Mellanox 的网络架构中&#xff0c;Physical Function&#xff08;PF&#xff09;在 switchdev 模式下充当 eSwitch manager&am…...

物联网技术在银行安全用电系统中的应用与实践研究

摘要 随着金融科技的快速发展&#xff0c;银行业电子设备数量激增&#xff0c;用电安全管理问题日益突出。本文基于2019年农业银行与2020年中国邮政储蓄银行发布的安全用电相关政策&#xff0c;分析了银行场景下存在的五大用电安全隐患&#xff0c;提出以物联网技术为核心的安…...

589. N叉树的前序遍历迭代法:null指针与栈的巧妙配合

一、题目描述 给定一个N叉树的根节点&#xff0c;返回其节点值的前序遍历结果。前序遍历的定义是&#xff1a;先访问根节点&#xff0c;再依次遍历每个子节点&#xff08;从左到右&#xff09;。例如&#xff0c;对于如下N叉树&#xff1a; 1/ | \3 2 4 / \ 5 6前序遍历结果…...

【洗车店专用软件】佳易王洗车店多项目会员管理系统:一卡多用扣次软件系统实操教程 #扣次洗车管理软件

一、软件试用版资源文件下载说明 &#xff08;一&#xff09;若您想体验软件功能&#xff0c;可通过以下方式获取软件试用版资源文件&#xff1a; 访问头像主页&#xff1a;进入作者头像主页&#xff0c;找到第一篇文章&#xff0c;点击文章最后的卡片按钮&#xff0c;即可了解…...

小红书笔记详情接口如何调用?实操讲解。

调用小红书笔记详情接口通常需要经过申请权限、构建请求、发送请求并处理响应等步骤&#xff0c;以下是详细的实操讲解&#xff1a; 一、申请接口权限 注册小红书开放平台账号 访问小红书开放平台官网/第三方开放平台&#xff0c;按照提示完成注册流程&#xff0c;提供必要的…...

leetcode 57. Insert Interval

题目描述 代码&#xff1a;由于intervals已经按照左端点排序&#xff0c;并且intervals中的区间全部不重叠&#xff0c;那么可以断定intervals中所有区间的右端点也已经是有序的。先二分查找intervals中第一个其右端点>newInterval左端点的区间。然后按照类似于56. Merge In…...