联邦学习"/>
联邦学习
一、数据篇
from pipeline.backend.pipeline import PipeLine
import ospipeline_upload = PipeLine().set_initiator(role='guest', party_id=9999).set_roles(guest=9999)partition = 4dense_data_guest = {"name": "breast_hetero_guest", "namespace": f"experiment"}
dense_data_host = {"name": "breast_hetero_host", "namespace": f"experiment"}
tag_data = {"name": "breast_hetero_host", "namespace": f"experiment"}data_base = "./"
pipeline_upload.add_upload_data(file=os.path.join(data_base, "examples/data/breast_hetero_guest.csv"),table_name=dense_data_guest["name"], # table namenamespace=dense_data_guest["namespace"], # namespacehead=1, partition=partition) # data infopipeline_upload.add_upload_data(file=os.path.join(data_base, "examples/data/breast_hetero_host.csv"),table_name=dense_data_host["name"],namespace=dense_data_host["namespace"],head=1, partition=partition)pipeline_upload.add_upload_data(file=os.path.join(data_base, "examples/data/breast_hetero_host.csv"),table_name=tag_data["name"],namespace=tag_data["namespace"],head=1, partition=partition)pipeline_upload.upload(drop=1)
2、训练篇
from pipeline.backend.pipeline import PipeLine
from pipelineponent import Reader, DataTransform, Intersection, HeteroSecureBoost, Evaluation
from pipeline.interface import Data
import ospipeline = PipeLine() \.set_initiator(role='guest', party_id=9999) \.set_roles(guest=9999, host=10000)reader_0 = Reader(name="reader_0")
# set guest parameter
reader_0.get_party_instance(role='guest', party_id=9999)ponent_param(table={"name": "breast_hetero_guest", "namespace": "experiment"})
# set host parameter
reader_0.get_party_instance(role='host', party_id=10000)ponent_param(table={"name": "breast_hetero_host", "namespace": "experiment"})data_transform_0 = DataTransform(name="data_transform_0")
# set guest parameter
data_transform_0.get_party_instance(role='guest', party_id=9999)ponent_param(with_label=True)
data_transform_0.get_party_instance(role='host', party_id=[10000])ponent_param(with_label=False)intersect_0 = Intersection(name="intersect_0")hetero_secureboost_0 = HeteroSecureBoost(name="hetero_secureboost_0",num_trees=5,bin_num=16,task_type="classification",objective_param={"objective": "cross_entropy"},encrypt_param={"method": "paillier"},tree_param={"max_depth": 3})evaluation_0 = Evaluation(name="evaluation_0", eval_type="binary")pipeline.add_component(reader_0)
pipeline.add_component(data_transform_0, data=Data(data=reader_0.output.data))
pipeline.add_component(intersect_0, data=Data(data=data_transform_0.output.data))
pipeline.add_component(hetero_secureboost_0, data=Data(train_data=intersect_0.output.data))
pipeline.add_component(evaluation_0, data=Data(data=hetero_secureboost_0.output.data))
pipelinepile()pipeline.fit()pipeline.dump("pipeline_saved.pkl")
更多推荐
联邦学习
发布评论