FATE联邦学习初探(三)

在上传数据完成之后,接下来根据给出的案例来完成一个简单的实验。

首先需要确保数据上传成功,没成功的可以参考联邦学习初探(二)_顿顿有鱼有虾的博客-优快云博客

然后,还需要确保FATE Flow Service也是成功配置的。

pipeline init --ip 127.0.0.1 --port 9380

 首先是训练阶段的代码

from pipeline.backend.pipeline import PipeLine
from pipeline.component import Reader, DataTransform, Intersection, HeteroSecureBoost, Evaluation
from pipeline.interface import Data
import os

pipeline = 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).component_param(
    table={"name": "breast_hetero_guest", "namespace": "experiment"})
# set host parameter
reader_0.get_party_instance(role='host', party_id=10000).component_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).component_param(
    with_label=True)
data_transform_0.get_party_instance(role='host', party_id=[10000]).component_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))
pipeline.compile()


pipeline.fit()


pipeline.dump("pipeline_saved.pkl")

成功运行训练之后,会生成一个.pkl文件,文件中保存的即为训练好的模型

 接下来使用训练好的模型进行预测

from pipeline.backend.pipeline import PipeLine
from pipeline.component import Reader, DataTransform, Intersection, HeteroSecureBoost, Evaluation
from pipeline.interface import Data
import os




pipeline = PipeLine.load_model_from_file('pipeline_saved.pkl')
pipeline.deploy_component([pipeline.data_transform_0, pipeline.intersect_0, pipeline.hetero_secureboost_0])


reader_1 = Reader(name="reader_1")
reader_1.get_party_instance(role="guest", party_id=9999).component_param(table={"name": "breast_hetero_guest", "namespace": "experiment"})
reader_1.get_party_instance(role="host", party_id=10000).component_param(table={"name": "breast_hetero_host", "namespace": "experiment"})



evaluation_0 = Evaluation(name="evaluation_0", eval_type="binary")


predict_pipeline = PipeLine()
predict_pipeline.add_component(reader_1)\
                .add_component(pipeline, 
                               data=Data(predict_input={pipeline.data_transform_0.input.data: reader_1.output.data}))\
                .add_component(evaluation_0, data=Data(data=pipeline.hetero_secureboost_0.output.data))

predict_pipeline.predict()

预测完成后,控制台输出如下所示

同时我们还可以通过访问浏览器体验算法过程看板,访问:Http://${ip}:8080, ip为127.0.0.1或本机实际ip 

 

 

### FATE联邦学习框架概述 FATE(Federated AI Technology Enabler)是一个开源的联邦学习框架,旨在提供安全、高效的多方联合建模解决方案。它支持多种类型的联邦学习模式,包括但不限于横向联邦学习和纵向联邦学习。 #### 横向联邦学习案例 在实际应用中,当参与方的数据特征空间相同而样本ID不同的情况下,可以采用横向联邦学习的方式进行协作建模[^1]。这种方式能够有效利用各方数据的优势,提升模型性能的同时保护隐私。 #### 终端命令操作指南 为了方便用户管理任务流程,在FATE框架中可以通过`flow`命令来完成一系列的操作,比如提交任务等。具体而言,通过编写配置文件(通常是JSON格式),定义好训练所需的各种参数之后,即可运行相应的脚本启动作业[^2]。例如: ```bash flow job submit -c test_hetero_linr_train_job_conf.json -d test_hetero_linr_train_job_dsl.json ``` 上述命令中的两个JSON文件分别代表了DSL(Domain Specific Language)描述以及具体的配置选项集合。 #### 可视化工具——FATEBoard 除了强大的后台处理能力之外,FATE还配备了一个图形界面叫做FATEBoard,用于监控整个实验过程的状态变化情况以及其他重要指标展示功能[^3]。这使得研究人员无需频繁切换窗口查看日志信息就能直观理解当前进展如何。 ### 安装部署与文档获取途径 对于初次接触该系统的开发者来说,可以从官方仓库下载最新版本源码包或者二进制分发版来进行本地环境搭建测试;与此同时也可以查阅项目主页上的详细介绍资料进一步加深认识程度。通常情况下这些资源会被托管于GitHub平台之上供全球访问者自由取阅。 以下是几个可能对你有帮助的相关链接地址模板(需自行替换为真实URL): - **官方网站**: https://fate.apache.org/ - **GitHub Repository**: https://github.com/FederatedAI/FATE - **User Documentation**: https://fate.readthedocs.io/ 请注意以上仅为示意性质的内容结构安排建议,请根据自己实际情况调整适用范围内的细节部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值