隐私计算 FATE - 多分类神经网络算法测试
一、说明
本文分享基于 Fate 使用 横向联邦 神经网络算法 对 多分类 的数据进行 模型训练,并使用该模型对数据进行 多分类预测。
二分类算法:是指待预测的 label 标签的取值只有两种;直白来讲就是每个实例的可能类别只有两种 (0 或者 1),例如性别只有 男 或者 女;此时的分类算法其实是在构建一个分类线将数据划分为两个类别。
多分类算法:是指待预测的 label 标签的取值可能有多种情况,例如个人爱好可能有 篮球、足球、电影 等等多种类型。常见算法:Softmax、SVM、KNN、决策树。
关于 Fate 的核心概念、单机部署、训练以及预测请参考以下相关文章:
《隐私计算 FATE - 关键概念与单机部署指南》
《隐私计算 FATE - 模型训练》
《隐私计算 FATE - 离线预测》
二、准备训练数据
上传到 Fate 里的数据有两个字段名必需是规定的,分别是主键为 id 字段和分类字段为 y 字段,y 字段就是所谓的待预测的 label 标签;其他的特征字段 (属性) 可任意填写,例如下面例子中的 x0 - x9
本文只描述关键部分,关于详细的模型训练步骤,请查看文章《隐私计算 FATE - 模型训练》
2.1. guest 端
10 条数据,包含 1 个分类字段 y 和 10 个标签字段 x0 - x9
上传到 Fate 中,表名为 muti_breast_homo_guest 命名空间为 experiment
2.2. host 端
10 条数据,字段与 guest 端一样,但是内容不一样
上传到 Fate 中,表名为 muti_breast_homo_host 命名空间为 experiment
三、执行训练任务
3.1. 准备 dsl 文件
创建文件 homo_nn_dsl.json 内容如下 :
{"components": {"reader_0": {"module": "Reader","output": {"data": ["data"]}},"data_transform_0": {"module": "DataTransform","input": {"data": {"data": ["reader_0.data"]}},"output": {"data": ["data"],"model": ["model"]}},"homo_nn_0": {"module": "HomoNN","input": {"data": {"train_data": ["data_transform_0.data"]}},"output": {"data": ["data"],"model": ["model"]}}}
}
3.2. 准备 conf 文件
创建文件 homo_nn_multi_label_conf.json 内容如下 :{"dsl_version": 2,"initiator": {"role": "guest","party_id": 9999},"role": {"arbiter": [10000],"host": [10000],"guest": [9999]},"component_parameters": {"common": {"data_transform_0": {"with_label": true},"homo_nn_0": {"encode_label": true,"max_iter": 15,"batch_size": -1,"early_stop": {"early_stop": "diff","eps": 0.0001},"optimizer": {"learning_rate": 0.05,"decay": 0.0,"beta_1": 0.9,"beta_2": 0.999,"epsilon": 1e-07,"amsgrad": false,"optimizer": "Adam"},"loss": "categorical_crossentropy","metrics": ["accuracy"],"nn_define": {"class_name": "Sequential","config": {"name": "sequential","layers": [{"class_name": "Dense","config": {"name": "dense","trainable": true,"batch_input_shape": [null,18],"dtype": "float32","units": 5,"activation": "relu","use_bias": true,"kernel_initializer": {"class_name": "GlorotUniform","config": {"seed": null,"dtype": "float32"}},"bias_initializer": {"class_name": "Zeros","config": {"dtype": "float32"}},"kernel_regularizer": null,"bias_regularizer": null,"activity_regularizer": null,"kernel_constraint": null,"bias_constraint": null}},{"class_name": "Dense","config": {"name": "dense_1","trainable": true,"dtype": "float32","units": 4,"activation": "sigmoid","use_bias": true,"kernel_initializer": {"class_name": "GlorotUniform","config": {"seed": null,"dtype": "float32"}},"bias_initializer": {"class_name": "Zeros","config": {"dtype": "float32"}},"kernel_regularizer": null,"bias_regularizer": null,"activity_regularizer": null,"kernel_constraint": null,"bias_constraint": null}}]},"keras_version": "2.2.4-tf","backend": "tensorflow"},"config_type": "keras"}},"role": {"host": {"0": {"reader_0": {"table": {"name": "muti_breast_homo_host","namespace": "experiment"}}}},"guest": {"0": {"reader_0": {"table": {"name": "muti_breast_homo_guest","namespace": "experiment"}}}}}}
}
3.3. 提交任务
执行以下命令:
flow job submit -d homo_nn_dsl.json -c homo_nn_multi_label_conf.json
执行成功后,查看 dashboard 显示:
四、准备预测数据
与前面训练的数据字段一样,但是内容不一样,y 值全为 0
4.1. guest 端
上传到 Fate 中,表名为 predict_muti_breast_homo_guest 命名空间为 experiment
4.2. host 端
上传到 Fate 中,表名为 predict_muti_breast_homo_host 命名空间为 experiment
五、准备预测配置
本文只描述关键部分,关于详细的预测步骤,请查看文章《隐私计算 FATE - 离线预测》
创建文件 homo_nn_multi_label_predict.json 内容如下 :
{"dsl_version": 2,"initiator": {"role": "guest","party_id": 9999},"role": {"arbiter": [10000],"host": [10000],"guest": [9999]},"job_parameters": {"common": {"model_id": "arbiter-10000#guest-9999#host-10000#model","model_version": "202207061504081543620","job_type": "predict"}},"component_parameters": {"role": {"guest": {"0": {"reader_0": {"table": {"name": "predict_muti_breast_homo_guest","namespace": "experiment"}}}},"host": {"0": {"reader_0": {"table": {"name": "predict_muti_breast_homo_host","namespace": "experiment"}}}}}}
}
六、执行预测任务
执行以下命令:
flow job submit -c homo_nn_multi_label_predict.json
执行成功后,查看 homo_nn_0 组件的数据输出:
可以看到算法输出的预测结果。
相关文章:
隐私计算 FATE - 多分类神经网络算法测试
一、说明 本文分享基于 Fate 使用 横向联邦 神经网络算法 对 多分类 的数据进行 模型训练,并使用该模型对数据进行 多分类预测。 二分类算法:是指待预测的 label 标签的取值只有两种;直白来讲就是每个实例的可能类别只有两种 (0 或者 1)…...
Codeforces Round 853 (Div. 2)
Codeforces Round 853 (Div. 2) C. Serval and Toxels Arrays 思路: 求任意两个组合的元素个数。 注意到,其实每个元素都是独立的。他在任意组合的出现情况组成的贡献是可以分开讨论的。我们讨论元素x。假设x在m1个数组中出现了cnt次(一个…...

Ka频段需要更多带宽?
随着全球连接需求的增长,许多卫星通信(satcom)系统日益采用Ka频段,对数据速率的要求也水涨船高。目前,高性能信号链已经能支持数千兆瞬时带宽,一个系统中可能有成百上千个收发器,超高吞吐量数据速率已经成为现实。 另…...
初学pyinstaller打包过程中的一些问题
记录一下使用pyinstaller打包过程中的一些问题: 不安装虚拟环境打包,直接打包,一般不会出现什么问题,但是打包的exe很大,把所有模块和依赖库也一起打包了。 建议使用虚拟环境打包,安装必要的包࿰…...

第七章:Java常用类
第七章:Java常用类 7.1:字符串相关的类 String的特性 String表示是字符串,使用一对""引起来表示。 String声明为final的,不可被继承。 String实现了Serializable、Comparable接口,表示字符是支持序列化和…...

Apk加固后多渠道打包
之前一直使用360加固宝进行apk的加固打包,可以一键加固并打多渠道打包。但是,现在360加固宝收费了,在进行加固,多渠道打包,就得一步一步自己操作了,会很繁琐。所以,本文使用 360加固美团Wallet …...
K8S + ISTIO 金丝雀部署的例子
金丝雀发布(Canary):也是一种发布策略,和国内常说的灰度发布是同一类策略。蓝绿部署是准备两套系统,在两套系统之间进行切换,金丝雀策略是只有一套系统,逐渐替换这套系统。 Istio 提供一种简单的…...
python自带数据的模型合集
鸢尾花----聚类 Python鸢尾花数据集通常用于分类问题, 这些模型都可以通过Python中的Scikit-learn库进行实现。同时,也可以对这些模型进行参数调优以提高模型的准确性。 Logistic Regression(逻辑回归): 逻辑回归是一…...

女生学习大数据怎么样~有前景么
当前大数据发展前景非常不错,且大数据领域对于人才类型的需求比较多元化,女生学习大数据也会有比较多的工作机会。大数据是一个交叉学科涉及到的知识量比较大学习有一定的难度,女生则有女生的优势,只要认真学习了都是可以做大数据…...

统计代码量
一 windows 在 Windows 系统上,您可以使用 PowerShell 命令行工具来统计项目的代码量。下面是使用 PowerShell 统计项目代码量的步骤: 打开 PowerShell 终端:按下 Win X 键,选择「Windows PowerShell(管理员…...

uniapp在线升级关联云空间
升级中心 uni-upgrade-center - App: https://ext.dcloud.net.cn/plugin?id4542 App升级中心 uni-upgrade-center文档: https://uniapp.dcloud.net.cn/uniCloud/upgrade-center.html#uni-upgrade-center-app 升级中心 uni-upgrade-center - Admin&#…...

学习streamlit-2
首先视频快速预览下今天的学习内容: Streamlit Shorts: How to make a button今天继续学习streamlit,首先激活之前建立的虚拟环境: ❯ conda activate streamlit-env (streamlit-env) ~ via 🐍 v3.9.16 via …...

Vscode中Vue文件保存格式化、 ElementUI、Font Awesome俩大插件使用
Vscode中Vue文件老一片红色出现格式错误??如何运行别人的项目(没有node_modules文件)??选用组件与图标?? 解决问题一 前提有:Prettier ESLint插件、ESLint插件 1.打开s…...

汽车标定知识整理(三):CCP报文可选命令介绍
目录 一、可选命令 CRO命令报文的可选命令表: 二、可选命令帧格式介绍 1、GET_SEED——获取被请求资源的种子(0x12) 2、UNLOCK——解锁保护(0x13) 3、SET_S_STATUS——设置Session状态(0x0C࿰…...

kubeadm安装K8S(集群)
前言市面上很多k8s的安装工具,作为产品的设计者和推广者,K8S组织也知道自己的产品部署起来十分的困难,于是把开源爱好者写的工具kubeadmn收编为正规军,纳入到了自己的麾下。为什么我们要用kubeadmn来部署?因为kubeadm不…...

Baumer工业相机堡盟相机如何使用PnPEventHandler实现相机掉线自动重连(C++新)
项目场景: Baumer工业相机堡盟相机传统开发包BGAPI SDK进行工业视觉软件整合时,常常需要将SDK中一些功能整合到图像处理软件中,方便项目的推进使用; 在项目的图像处理任务中,可能会因为一些硬件比如线缆网卡的原因导…...
Windows 命令行基础
1. 引言:为什么要使用命令行在 DOS 时代,人们只能依靠输入命令同计算机互交。而现在,微软的 Windows 操作系统已得到了广泛使用,我们处理日常事务也大多使用基于图形用户界面(GUI,Graphics User Interface&…...

面试官: 谈下音视频同步原理,音频和视频能绝对同步吗?
作者:波哥 心理分析:音视频同步本身比较难,一般使用ijkplayer 第三方做音视频同步。不排除有视频直播 视频通话需要用音视频同步,可以从三种 音频为准 视频为准 自定义时钟为准三种方式实现音视频同步 求职者:如果被问到 放正心态…...

CFS三层靶机安装与配置
CFS三层靶机安装与配置 环境下载 百度网盘 提取码:Chen 环境安装 下载完成后,有三个文件夹,每个文件夹对应一个靶机 进入三个文件夹,双击打开后缀为.ovf的文件,按提示安装虚拟机 环境配置 网段划分 target1&#…...
爬虫入门教程-Spider
Spider 爬虫是定义如何抓取某个网站(或一组网站)的类,包括如何执行抓取(即关注链接)以及如何从其网页中提取结构化数据(即抓取项目)。换句话说,Spider是您定义用于为特定网站&#x…...

wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...

Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...

云原生时代的系统设计:架构转型的战略支点
📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、云原生的崛起:技术趋势与现实需求的交汇 随着企业业务的互联网化、全球化、智能化持续加深,传统的 I…...