(文末提供数据集下载)ML.NET库学习001:基于PCA的信用卡异常检查之样本处理与训练
文章目录
- (文末提供数据集下载)ML.NET库学习001:基于PCA的信用卡异常检查之样本处理与训练
- 目标
- 项目概述
- 代码结构概述
- 1. **主要类和文件**
- 2. **命名空间和使用指令**
- 3. **数据类 (`TransactionObservation`)**
- 4. **主程序入口 (`Main` 方法)**
- 5. **数据预处理 (`DataPreprocessing` 方法)**
- 6. **模型训练 (`TrainModel` 方法)**
- 7. **模型评估 (`EvaluateModel` 方法)**
- 8. **文件操作 (`FileHandling` 方法)**
- 代码功能详解
- **1. 数据加载与预处理**
- **2. 模型训练**
- **3. 模型评估**
- **4. 文件操作**
- 代码依赖
- 示例用法
- **数据文件 (`transaction_data.txt)`**
- **运行程序**
- 输出结果
- 代码优势
- 总结
- 数据集
(文末提供数据集下载)ML.NET库学习001:基于PCA的信用卡异常检查之样本处理与训练
目标
-
AnomalyDetectCreditCardFraudDetection.Solution
-
CreditCardFraudDetection.Trainer
-
学习知识点:PCA、表格数据的预处理方法、模型训练步骤;ML库的学习初体验
项目概述
-
项目概述:
- 这是一个使用ML.NET进行异常检测的C#控制台应用程序,目标是检测欺诈交易。
-
数据加载与预处理:
- 使用
LoadData
方法从CSV文件加载交易数据。 - 将文本数据转换为数值型特征向量,并构建包含这些特征的数据集。
- 使用
-
模型训练:
- 构建了一个管道,包括特征拼接、归一化和PCA变换。
- 使用随机化PCA算法进行异常检测模型的训练,设置主成分数量(Rank=28)和过采样率(Oversampling=20)。
-
模型评估:
- 在测试数据集上评估模型性能,计算准确率、召回率和其他相关指标。
- 使用
ConsoleHelper.PrintAnomalyDetectionMetrics
方法输出评估结果。
-
文件处理:
- 通过相对路径获取绝对路径,确保程序能够正确定位数据文件。
- 解压ZIP文件到指定目录,以便访问和处理数据集。
-
参数选择与优化:
- Rank设置为28可能是因为数据中有28个特征,或者基于其他理论选择。
- Oversampling=20意味着在训练过程中每个样本会被过采样20次,以增强模型的泛化能力。
-
数据平衡性处理:
- 在训练数据中使用过滤变换,仅保留标签为0(正常交易)的数据,可能是因为欺诈交易较少,通过减少正常交易的数量来平衡数据集。
- 也可以考虑其他方法如过采样欺诈交易或使用调整类别权重的方法。
-
潜在改进点:
- 实现更复杂的特征工程,例如提取时间序列特征或使用统计聚合特征。
- 调整PCA参数,进行网格搜索以找到最佳的主成分数量和过采样率。
- 使用交叉验证评估模型性能,确保模型在不同数据子集上的泛化能力。
-
代码实现步骤:
- 编写
LoadData
方法,读取CSV文件并解析数据字段。 - 实现特征向量的构建,可能需要将文本类型转换为数值型。
- 配置和训练模型管道,包括所有必要的变换步骤。
- 解压数据集到指定目录,并确保程序能够正确访问这些文件。
- 编写
-
运行环境与依赖:
- 确保项目引用了ML.NET库。
- 安装必要的NuGet包,如
Microsoft.ML
和Microsoft.ML.Transforms
.
通过以上步骤,可以全面理解并实现这个欺诈交易检测系统。
代码结构概述
1. 主要类和文件
Program.cs
: 包含主程序入口,数据处理逻辑,模型训练和评估。
2. 命名空间和使用指令
using Microsoft.ML;
using Microsoft.ML.Data;
using Microsoft.ML.Transforms;
using Microsoft.ML.AnomalyDetection;
using System;
using System.Collections.Generic;
using System.IO;
3. 数据类 (TransactionObservation
)
定义了事务观测的结构,包含以下字段:
Id
: 事务ID。Features
: 特征向量(长度为28)。Label
: 标签(0表示正常,1表示异常)。
public class TransactionObservation : ITransformableTo<RowItem>
{public float[] Features;public float Label;public void PrintToConsole(){Console.WriteLine($"ID: {Id}, Label: {(Label == 1 ? "Fraud" : "Not Fraud")}");// 打印特征向量Console.WriteLine($"Features: [{string.Join(", ", Features)}]");Console.WriteLine();}
}
4. 主程序入口 (Main
方法)
public static void Main(string[] args)
{var mlContext = new MLContext();// 加载数据集IDataView data = mlContext.Data.LoadFromTextFile<TransactionObservation>(@"data\transaction_data.txt",separatorChar: '\t',useHeader: true);// 数据预处理和训练ITransformer model = TrainModel(mlContext, data);// 评估模型EvaluateModel(mlContext, model, data);
}
5. 数据预处理 (DataPreprocessing
方法)
private static ITransformer PreprocessData(MLContext mlContext, IDataView data)
{var preprocessPipeline = mlContext.Transforms.Concatenate("Features", new[] { nameof(TransactionObservation.Features) }).Append(mlContext.Transforms.NormalizeLpNorm(outputColumnName: "NormalizedFeatures",inputColumnName: "Features"));return preprocessPipeline;
}
6. 模型训练 (TrainModel
方法)
private static ITransformer TrainModel(MLContext mlContext, IDataView data)
{var options = new RandomizedPcaTrainer.Options{FeatureColumnName = "NormalizedFeatures",Rank = 28,Oversampling = 20,EnsureZeroMean = true,Seed = 1};IEstimator<ITransformer> trainer = mlContext.AnomalyDetection.Trainers.RandomizedPca(options);var trainingPipeline = preprocessPipeline.Append(trainer);return trainingPipeline.Fit(data);
}
7. 模型评估 (EvaluateModel
方法)
private static void EvaluateModel(MLContext mlContext, ITransformer model, IDataView testData)
{var predictions = model.Transform(testData);AnomalyDetectionMetrics metrics = mlContext.AnomalyDetection.Evaluate(predictions);Console.WriteLine("Precision: {0}", metrics.Precision);Console.WriteLine("Recall: {0}", metrics.Recall);Console.WriteLine("F1-Score: {0}", metrics.F1Score);
}
8. 文件操作 (FileHandling
方法)
private static string GetAbsolutePath(string relativePath)
{FileInfo _dataRoot = new FileInfo(typeof(Program).Assembly.Location);string assemblyFolderPath = _dataRoot.Directory.FullName;return Path.Combine(assemblyFolderPath, relativePath);
}private static void UnZipDataSet(string zipDataSet, string destinationFile)
{if (!File.Exists(destinationFile)){ZipFile.ExtractToDirectory(zipDataSet, Path.GetDirectoryName(destinationFile));}
}
代码功能详解
1. 数据加载与预处理
- 数据加载: 使用
MLContext.Data.LoadFromTextFile
方法从文件加载事务数据。 - 数据预处理: 包括特征向量拼接和归一化处理,确保模型输入格式一致。
2. 模型训练
- PCA异常检测器: 使用随机化 PCA 算法进行异常检测,设置参数如主成分数量、过采样率等。
- 模型拟合: 通过
Fit
方法在预处理后的数据上训练模型。
3. 模型评估
- 预测与评估: 在测试数据上应用训练好的模型,并使用
AnomalyDetectionMetrics
计算精度、召回率和 F1 分数等指标。
4. 文件操作
- 路径获取: 使用反射获取程序集目录,构造绝对路径。
- 文件解压: 解压事务数据文件到指定位置。
代码依赖
- Microsoft.ML 包: 需要安装
Microsoft.ML
和相关组件包(如Microsoft.ML.AnomalyDetection
)。 - 文本文件格式: 数据文件应为制表符分隔的文本文件,包含标题行。
示例用法
数据文件 (transaction_data.txt)
Id Features Label
1 0.5,0.6,...,0.3 0
2 0.7,0.8,...,0.4 1
...
运行程序
dotnet run --project ./AnomalyDetection.csproj
输出结果
模型训练完成后,将在控制台输出以下信息:
- 训练完成: 显示训练耗时。
- 评估结果: 显示 Precision、Recall 和 F1-Score。
代码优势
- 高效处理: 使用 ML.NET 进行高效的机器学习任务处理。
- 模块化设计: 代码结构清晰,功能模块独立,便于扩展和维护。
- 易用性: 提供了完整的文件操作和数据预处理逻辑,方便用户直接使用。
总结
该代码实现了一个基于随机化 PCA 的异常检测系统,适用于金融事务等场景中的欺诈 detection。通过 ML.NET 框架,实现了从数据加载、预处理、模型训练到评估的完整流程。
数据集
数据集下载地址
相关文章:
(文末提供数据集下载)ML.NET库学习001:基于PCA的信用卡异常检查之样本处理与训练
文章目录 (文末提供数据集下载)ML.NET库学习001:基于PCA的信用卡异常检查之样本处理与训练目标项目概述代码结构概述1. **主要类和文件**2. **命名空间和使用指令**3. **数据类 (TransactionObservation)**4. **主程序入口 (Main 方法)**5. **数据预处理 (DataPrepr…...
疯狂SQL转换系列- SQL for Milvs2.4
鉴于Milvus仍在不停的迭代新版本,推出新功能,其SDK目前并不稳定。目前其2.4版本的SDK接口已与之前的2.2版本有了较大的差别,功能上也有了一定的调整。为此,我们重新提供了针对[Milvus2.4](https://github.com/colorknight/moql-tr…...
C++的 I/O 流
本文把复杂的基类和派生类的作用和关系捋出来,具体的接口请参考相关文档 C的 I/O 流相关的类,继承关系如下图所示 https://zh.cppreference.com/w/cpp/io I / O 的概念:内存和外设进行数据交互称为 I / O ,例如:把数…...
基于ansible部署elk集群
ansible部署 ELK部署 ELK常见架构 (1)ElasticsearchLogstashKibana:这种架构是最常见的一种,也是最简单的一种架构,这种架构通过Logstash收集日志,运用Elasticsearch分析日志,最后通过Kibana中…...
4.Python字符串和列表:字符串输入、字符串输出、下标和切片、字符串常见函数、列表(list)、列表的循环遍历、列表的增删改查、列表的嵌套、列表的切片
1. Python 字符串 1.1 字符串输入 input() 函数用于从用户获取字符串输入。它总是返回一个字符串类型的值。 # 从用户输入字符串 name input("请输入你的名字:") print(f"你好, {name}")1.2 字符串输出 字符串的输出通常使用 print() 函数…...
51单片机之使用Keil uVision5创建工程以及使用stc-isp进行程序烧录步骤
一、Keil uVision5创建工程步骤 1.点击项目,新建 2.新建目录 3.选择目标机器,直接搜索at89c52选择,然后点击OK 4.是否添加起吊文件,一般选择否 5.再新建的项目工程中添加文件 6.选择C文件 7.在C文件中右键,添加…...
Redis - 全局ID生成器 RedisIdWorker
文章目录 Redis - 全局ID生成器 RedisIdWorker一、引言二、实现原理三、代码实现代码说明 四、使用示例示例说明 五、总结 Redis - 全局ID生成器 RedisIdWorker 一、引言 在分布式系统中,生成全局唯一ID是一个常见的需求。传统的自增ID生成方式在分布式环境下容易出…...
Linux ftrace 内核跟踪入门
文章目录 ftrace介绍开启ftraceftrace使用ftrace跟踪指定内核函数ftrace跟踪指定pid ftrace原理ftrace与stracetrace-cmd 工具KernelShark参考 ftrace介绍 Ftrace is an internal tracer designed to help out developers and designers of systems to find what is going on i…...
Visual Studio(VS)没有显示垂直滚轮or垂直滚轮异常显示
前言: 前段时间,我换上了新电脑。满心欢喜地安装好 VS,准备大干一场时,却发现了一个小麻烦 —— 垂直滚轮显示异常(如图 1)。这种显示方式实在让我难以适应,每一次操作都觉得别扭。 于是&#…...
大数据数仓实战项目(离线数仓+实时数仓)3
1.课程内容和课程目标 2.订单时间维度指标需求分析 根据时间数据,生成一个时间维度表,我们后面还可以去复用这个时间维度表 3.使用kettle生成日期维度数据 Hive创建日期维度表 使用Kettle构建以下组件结构图 使用kettle生成日期维度数据插入到我们的hi…...
通过acme生成与续签ssl证书,并部署到nginx
通过acme生成与续签ssl证书,并部署到nginx 介绍 官方介绍: acme.sh 实现了 acme 协议,可以从 ZeroSSL,Lets Encrypt 等 CA 生成免费的证书。 安装 acme.sh 1. curl方式 curl https://get.acme.sh | sh -s emailmyexample.com…...
c语言对应汇编写法(以中微单片机举例)
芯片手册资料 1. 赋值语句 C语言: a 5; b a; 汇编: ; 立即数赋值 LDIA 05H ; ACC 5 LD R01,A ; R01 ACC(a5); 寄存器间赋值 LD A,R01 ; ACC R01(读取a的值) LD R02,A ; R02 ACC&…...
React基础内容(面试一)
React大厂常见的面试题目涉及多个方面,包括React的基本概念、组件、状态管理、生命周期、性能优化等。以下是对这些面试题目的详细解析: 一、React基本概念 解释React是什么以及它的主要特点 React是一个用于构建用户界面的JavaScript库,由F…...
2025年软件测试五大趋势:AI、API安全、云测试等前沿实践
随着软件开发的不断进步,测试方法也在演变。企业需要紧跟新兴趋势,以提升软件质量、提高测试效率,并确保安全性,在竞争激烈的技术环境中保持领先地位。本文将深入探讨2025年最值得关注的五大软件测试趋势。 Parasoft下载https://…...
常用工具类——Collections集合框架
常用工具类——Collections集合框架 Collections 是 JDK 提供的一个工具类,提供了一系列静态方法,分类来复习! 1.排序操作 reverse(List list) :反转顺序shuffle(List list) : 洗牌,将顺序打乱sort(List list) &…...
【大数据技术】搭建完全分布式高可用大数据集群(ZooKeeper)
搭建完全分布式高可用大数据集群(ZooKeeper) apache-zookeeper-3.8.4-bin.tar.gz注:请在阅读本篇文章前,将以上资源下载下来。 写在前面 本文主要介绍搭建完全分布式高可用集群 ZooKeeper 的详细步骤。 注意: 统一约定将软件安装包存放于虚拟机的/software目录下,软件…...
Docker Desktop安装kubernetes时一直在Starting:Kubernetes failed to start
原因:由于墙的问题,导致拉取国外的K8s镜像失败 解决: 下载 k8s-for-docker-desktop 选中自己的kubernetes 版本 下载zip包 PowerShell运行load_images.ps1文件 重启docker kubernetes运行成功...
物流中的物联网:其含义、应用和优势
随着世界联系日益紧密,物流格局正经历重大变革。科技已成为供应链管理的支柱,推动物流公司迈入效率与连通性兼具的新时代。 物联网(IoT)是一股变革性力量,重塑着物流与运输行业的架构。物联网在物流领域并非昙花一现的…...
Axure设计教程:动态排名图(中继器实现)
一、开篇 在Axure原型设计中,动态图表是展示数据和交互效果的重要元素。今天,我们将学习如何使用中继器来创建一个动态的排名图,该图表不仅支持自动轮播,还可以手动切换,极大地增强了用户交互体验。此教程旨在提供一个…...
【人工智能】掌握图像风格迁移:使用Python实现艺术风格的自动化迁移
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 图像风格迁移(Image Style Transfer)是一种基于深度学习的计算机视觉技术,通过将一张图像的内容与另一张图像的艺术风格结合,生成一幅具…...
# C指针地址CUP寄存器访问IO内存映射
C指针地址&CUP寄存器访问&IO内存映射 在裸机编程中,C语言可以像汇编语言一样直接操作芯片寄存器地址进行读取和写入,主要是由于以下几个原因: 1. 裸机环境下没有操作系统的干预 裸机编程是指直接在硬件上运行程序,没有…...
UE5 蓝图学习计划 - Day 14:搭建基础游戏场景
在上一节中,我们 确定了游戏类型,并完成了 项目搭建、角色蓝图的基础设置(移动)。今天,我们将进一步完善 游戏场景,搭建 地形、墙壁、机关、触发器 等基础元素,并添加角色跳跃功能,为…...
浅尝yolo11全程记录1-准备环境+官网模型推理(个人备份)
准备工作(虚拟环境、导入项目) 安装Anaconda 主要是为了创建和管理虚拟环境,在pycharm里按照项目里的requirments.txt安装依赖的时候,使用虚拟环境会好很多(我记得不用Anaconda也可以直接在pycharm的terminal里头创建…...
用 Python 给 Excel 表格截图(20250207)
我搜索了网络上的方案,感觉把 Excel 表格转换为 HTML 再用 platwright 截图是比较顺畅的路径,因为有顺畅的工具链。如果使用的是 Windows 系统则不需要阅读此文,因为 win32com 库更方便。这篇文章中 Excel 转 HTML 的方案,主要弥补…...
Office/WPS接入DS等多个AI工具,开启办公新模式!
在现代职场中,Office办公套件已成为工作和学习的必备工具,其功能强大但复杂,熟练掌握需要系统的学习。为了简化操作,使每个人都能轻松使用各种功能,市场上涌现出各类办公插件。这些插件不仅提升了用户体验,…...
智能化转型2.0:从“工具应用”到“价值重构”
过去几年,“智能化”从一个模糊的概念逐渐成为企业发展的核心议题。2024年,随着生成式AI、大模型、智能体等技术的爆发式落地,中国企业正式迈入智能化转型的2.0时代。这一阶段的核心特征是从单一场景的“工具应用”转向全链条的“价值重构”&…...
深度整理总结MySQL——索引工作原理
B树索引数据结构 前言什么样的索引数据结构是好的搜索速度要求支持范围查找寻求适合查找的算法寻求合适的数据结构二叉查找树自平衡二叉树B树B树数据结构B与B树比较 总结 前言 相信你在面试时,通常会被问到“什么是索引?”而你一定要能脱口而出…...
基于asr的所见即可说方案
年前写的文章对所见即可说方案进一步调研-CSDN博客,针对rk3568定制版,进行了Accessibility实现所见即可说功能的验证与调研,结论是不可行。 最终解决方案是:结合科大讯飞的AI大模型智能助手,使用rk3588板(…...
【截图】selenium自动通过浏览器截取指定元素div的图片
【截图】selenium自动通过浏览器截取指定元素div的图片 思路 截取完整网页截图 通过元素的坐标 截图到指定位置的图片 前提是已经获取到 driver 了 # 定位目标divtarget_div driver.find_element(By.CLASS_NAME, headlines-right)# 获取div的位置和大小location target_div…...
CSS入门学习笔记(一)
学习视频:https://www.bilibili.com/video/BV1zN2UYoEEo/ 目录 基本介绍语法引入方式内联样式(行内样式)内部样式外部样式 选择器四种选择器全局选择器元素选择器类选择器id选择器 合并选择器选择器的优先级 字体属性colorfont-sizefont-weig…...
docker安装es及分词器ik
系统是macos,docker是docker-desktop 拉取镜像 docker pull bitnami/elasticsearch 启动docker镜像 docker create -e "discovery.typesingle-node" \ --name elasticsearch1 -p 9200:9200 -p 9300:9300 \ bitnami/elasticsearch:8.17.1 测试是否好…...
11. 9 构建生产级聊天对话记忆系统:从架构设计到性能优化的全链路指南
构建生产级聊天对话记忆系统:从架构设计到性能优化的全链路指南 关键词: 聊天对话记忆系统、多用户会话管理、LangChain生产部署、Redis记忆存储、高并发对话系统 一、服务级聊天记忆系统核心需求 多用户隔离:支持同时处理数千个独立对话持久化存储:对话历史不因服务重启丢…...
SpringBoot启动源码剖析:从入口到容器的诞生
文章目录 SpringBoot启动的核心入口SpringApplication的初始化SpringBoot的启动流程1. 准备环境(Environment)2. 创建应用上下文(ApplicationContext)3. 刷新应用上下文(Refresh Context)4. 调用Runner接口…...
Day38【AI思考】-彻底打通线性数据结构间的血脉联系
文章目录 **彻底打通线性数据结构间的血脉联系****数据结构家族谱系图****一、线性表(老祖宗的规矩)****核心特征** **二、嫡系血脉解析**1. **数组(规矩森严的长子)**2. **链表(灵活变通的次子)** **三、庶…...
虚拟鼠标MATVT:遥控器操控的安卓电视增强工具
虚拟鼠标MATVT:遥控器操控的安卓电视增强工具 matvt Virtual Mouse for Android TV that can be controlled via remote itself. 项目地址: https://gitcode.com/gh_mirrors/ma/matvt 项目基础介绍与编程语言 虚拟鼠标MATVT(matvt)是…...
优惠券平台(一):基于责任链模式创建优惠券模板
前景概要 系统的主要实现是优惠券的相关业务,所以对于用户管理的实现我们简单用拦截器在触发接口前创建一个单一用户。 // 用户属于非核心功能,这里先通过模拟的形式代替。后续如果需要后管展示,会重构该代码 UserInfoDTO userInfoDTO new…...
从零开始:OpenCV 图像处理快速入门教程
文章大纲 第1章 OpenCV 概述 1.1 OpenCV的模块与功能 1.2 OpenCV的发展 1.3 OpenCV的应用 第2章 基本数据类型 2.1 cv::Vec类 2.2 cv::Point类 2.3 cv::Rng类 2.4 cv::Size类 2.5 cv:&…...
计算机网络-SSH基本原理
最近年底都在忙,然后这两天好点抽空更新一下。前面基本把常见的VPN都学习了一遍,后面的内容应该又继续深入一点。 一、SSH简介 SSH(Secure Shell,安全外壳协议)是一种用于在不安全网络上进行安全远程登录和实现其他安…...
数据库性能优化(sql优化)_统计信息_yxy
数据库性能优化_统计信息理解 1 什么是数据库统计信息?2 统计信息不准确3 统计信息分类3.1 表统计信息3.2 列统计信息3.3 索引统计信息4 统计方式4.1 频率直方图4.2 等高直方图5 总结1 什么是数据库统计信息? 数据库中同一个sql有非常多种执行方式,每种执行方式的代价肯定不…...
QT通过setProperty设置不同QSS样式
如上切换效果就是通过setProperty来实现切换不同颜色的。 实现以上效果第一步,需要在QSS中做属性处理。 QLabel{color:red;} QLabel[status"1"]{color:black;} QLabel[status"2"]{color:white;} QLabel[status"3"]{color:blue;} QLa…...
基础入门-算法解密散列对称非对称字典碰撞前后端逆向MD5AESDESRSA
知识点: 0、算法类型-单向散列&对称性&非对称性 1、算法识别加解密-MD5&AES&DES&RSA 2、解密条件寻找-逻辑特征&源码中&JS分析 应用场景: 1、发送数据的时候自动将数据加密发送(只需加密即可) 安全…...
VsCode创建VUE项目
1. 首先安装Node.js和npm 通过网盘分享的文件:vsCode和Node(本人电脑Win11安装) 链接: https://pan.baidu.com/s/151gBWTFZh9qIDS9XWMJVUA 提取码: 1234 它们是运行和构建Vue.js应用程序所必需的。 1.1 Node安装,点击下一步即可 …...
【DeepSeek】DeepSeek小模型蒸馏与本地部署深度解析DeepSeek小模型蒸馏与本地部署深度解析
一、引言与背景 在人工智能领域,大型语言模型(LLM)如DeepSeek以其卓越的自然语言理解和生成能力,推动了众多应用场景的发展。然而,大型模型的高昂计算和存储成本,以及潜在的数据隐私风险,限制了…...
ARM嵌入式学习--第十三天(I2C)
I2C --介绍 I2C(Inter-intergrated Circuit 集成电路)总线是Philips公司在八十年代初推出的一种串行、半双工的总线,主要用于近距离、低速的芯片之间的通信;I2C总线有俩根双向的信号线,一根数据线SDA用于收发数据&…...
js滚动到页面最底部
setTimeout(()> { //延后执行,等页面渲染结束let container document.querySelector(.raise-flag-content); //找到当前divif (container) {container.scrollTop container.scrollHeight - (container.clientHeight - 400 );}})container.scrollTop container…...
关于 SQL 内连接、外连接(左连接、右连接)的面试题
一、概念理解类 1. 请详细解释内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)在 SQL 中的概念和区别,并分别举例说明它们在实际查询场景中的应用。 在SQL中,内连接&a…...
【论文阅读】Comment on the Security of “VOSA“
Comment on the Security of Verifiable and Oblivious Secure Aggregation for Privacy-Preserving Federated Learning -- 关于隐私保护联邦中可验证与遗忘的安全聚合的安全性 论文来源摘要Introduction回顾 VOSA 方案对VOSA不可伪造性的攻击对于类型 I 的攻击对于类型 II 的…...
Zookeeper是如何解决脑裂问题的?
大家好,我是锋哥。今天分享关于【Zookeeper是如何解决脑裂问题的?】面试题。希望对大家有帮助; Zookeeper是如何解决脑裂问题的? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Zookeeper 通过多种机制来解决脑裂&…...
宾馆民宿酒店住宿管理系统+小程序项目需求分析文档
该系统是一款专为现代酒店设计的高效、智能、易用的管理工具,旨在帮助酒店提升运营效率、优化客户体验,提升客户满意度与忠诚度,并促进业务增长。系统采用先进的云计算技术,支持小程序等多平台访问,第三方接口,确保数据安全与稳定。本系统主要针对中小型精品酒店、连锁酒…...
【centOS】搭建公司内网git环境-GitLab 社区版(GitLab CE)
1. 安装必要的依赖 以 CentOS 7 系统为例,安装必要的依赖包: sudo yum install -y curl policycoreutils openssh-server openssh-clients postfix sudo systemctl start postfix sudo systemctl enable postfix2. 添加 GitLab 仓库 curl -sS https:/…...