主要内容:隐语机器学习算法介绍,不同机器学习算法的安全假设
讲师:胡东文—SF联邦学习工程方向负责人
环境:我们以v1.6.1b0版本为例,通过secretnote进行介绍。
一、预处理和隐私求交
1. 数据结构:DataFrame 和 FedNdarray

(左:HDtaFrame、中:VDataFrame、右:MixDataFrame)
-
构建联邦表
联邦表是一个跨多方的虚拟概念。
联邦表中各方的数据存储在本地,不允许出域。
-
除了拥有数据的一方之外,没有人可以访问数据存储。
-
联邦表的任何操作都会由Driver调度给每个Worker,执行指令会逐层传递,直到特定拥有数据的Worker的Python Runtime。
-
框架确保只有 Worker.device 和 Object.device相同的时候才能够操作数据。
-
联合表旨在从中心角度管理和操作多方数据
-
接口方面和
pandas.DataFrame对齐,以降低多方数据操作的成本。
-
-
DataFrame
与pandas的DataFrame类似,作为联邦表格数据的封装。DataFrame由多个参与方的数据块构成,支持数据水平、垂直切分和混合切分,分别对应3组API:HDataFrame、VDataFrame、MixDataFrame。
-
VDataFrame底层如下:

-
-
FedNdarray
与numpy的ndarray类型,作为联邦ndarray的封装,同样由多个参与方的数据块构成,支持水平切分和垂直切分,对应统一的API:FedNdarray
2. 如何进行预处理
DataFrame和FedNdarray提供了一些读写api可供直接使用。
-
可以直接使用DataFrame API处理数据
在SecretFlow中提供了类似于
pandas.read_csv的接口来将各方数据的CSV读取成为一个联邦数据集。-
对于水平场景有
secretflow.horizontal.read_csv。 -
对于垂直场景有
secretflow.vertical.read_csv。首先准备好两方的数据csv文件,垂直场景两方数据并不强制要求对齐,因为这里提供了PSI的能力。
-
Alice: datapath (alice机器能访问到的本地路径)
-
Bob: datapath (bob机器能访问到的本地路径)
垂直场景是各方的schema不同,但是每一方都拥有每一个column的全部数据。不再需要比较器和聚合器。但是各方数据不一定是对齐的,我们需要在读取时候通过
PSI来进行数据对齐。-
path_dict:数据路径
-
spu: 用于求交使用的spu设备
-
keys: 用于求交的keys(支持多列求交)
-
drop_keys: 求交后需要删去的ID列名
from secretflow.data.vertical import read_csv v_alice_path = "/root/vertical_cancer_party1.csv" v_bob_path = "/root/vertical_cancer -
-

最低0.47元/天 解锁文章
1972






