横向联邦统计任务
1. 引入需要的包
from delta import pandas as pd
from delta.task import HorizontalAnalytics
from delta.delta_node import DeltaNode
import delta.dataset
from typing import Dict2. 定义隐私计算任务
class WageAvg(HorizontalAnalytics):
def __init__(self) -> None:
super().__init__(
name="wage_avg", # 任务名称,用于在Deltaboard中的展示
min_clients=2, # 算法所需的最少客户端数,至少为2
max_clients=3, # 算法所支持的最大客户端数,必须大雨等于min_clients
wait_timeout=5, # 等待超时时间,用来控制一轮计算的超时时间
connection_timeout=5, # 连接超时时间,用来控制流程中每个阶段的超时时间
)
def dataset(self) -> Dict[str, delta.dataset.DataFrame]:
"""
定义任务所需的数据。
return: 字典,键是数据的名字,需要与execute方法中的参数名称对应;值是一个delta.dataset.DataFrame实例。
"""
return {
"wages": delta.dataset.DataFrame("wages.csv")
}
def execute(self, wages: pd.DataFrame):
"""
实现具体的统计逻辑。
输入与dataset方法的返回值对应
"""
return wages.mean()3. 指定执行任务用的Delta Node的API
4. 执行隐私计算任务
5. 查看执行状态


最后更新于