[ai-007] 联邦学习--腾讯fata--一个例子

本文档介绍了如何在单机环境下使用FATE进行联邦学习,包括安装、模型训练与预测的详细步骤。通过my_quick_run.py脚本运行训练和预测任务,涉及数据上传、配置文件如upload_data.json、train_info.json和test_predict_conf.json等。FATE项目包含多个组件,如数据IO、模型训练和预测评估,训练完成后结果存储在train_info.json,预测结果则需要通过fate_flow_client.py读取。
摘要由CSDN通过智能技术生成

0.从官方demo改编

1.安装FATE,如果是docker安装,主目录是/fate

2.源代码my_quick_run.py。这是一个单机版的例子。
2.1 模型训练
python  my_quick_run.py train
2.2 根据训练好的模型做预测
python  my_quick_run.py predict

3.项目源码文件
breast_a.csv
breast_b.csv
test_hetero_lr_train_job_conf.json
test_predict_conf.json  upload_data.json
my_quick_run.py
test_hetero_lr_train_job_dsl.json
train_info.json
运行时,会生成data目录,存放一些配置信息,会生成result目录,存放预测结果。出了my_quick_run.py外,其他文件都能在fate里找到。

4.上传数据
上传数据,是运行的第一步。上传数据涉及三个文件:
breast_a.csv,breast_b.csv,upload_data.json。
单机版,有两个角色,一个是host,一个是guest。叫什么名字不影响效果。这两个角色,分别持有自己的数据。其中,breast_a.csv是host持有的数据,breast_b.csv是guest持有的数据。breast_b.csv有y值,breast_a.csv没有y值。
upload_data.json是上传数据时候的配置信息,json格式的。本例,upload_data.json内容如下:
{
  "file": "breast_b.csv",
  "head": 1,
  "partition": 10,
  "work_mode": 0,
  "table_name": "hetero_breast_b",
  "namespace": "hetero_guest_breast"
}

其中,head表示第一行是文件头,partition表示数据分为10分,work_mode是0,表示为单机版,table_name表示存储数据的表名,namesapce表示存储数据时候命名空间。upload_data.json的数据是模板,运行的时候会被修改。

具体的上传数据过程是 fate_flow_client.py执行的。


5.训练
5.1 训练涉及如下文件
test_hetero_lr_train_job_conf.json
test_hetero_lr_train_job_dsl.json

5.2 test_hetero_lr_train_job_conf.json
这里定义了训练各方的数据源,处理处理组件,模型入参。

5.3 test_hetero_lr_train_job_dsl.json
这里定义了所有的component,也就训练的每个环节。包括 数据IO,数据交互,特征归一,特征分箱,特征选择,模型训练,训练效果评估。每个component都包括input和output。每个output的数据都可以通过命令导出,后文会提到。


5.4 训练完成后,训练结果的信息--注意不是训练结果,存储在train_info.json。

6.预测
预测涉及一个文件test_predict_conf.json。它声明,这是哪个角色去做预测。在本例,用guest角色去做预测,因为它对应的数据有y值,能判断预测结果精度。

预测完毕后,需要用命令行从fate服务端把结果读出来:
python /fate/fate_flow/fate_flow_client.py -f component_output_data -j 2019101406255680884591 -p 1000 -r guest -cpn hetero_lr_0 -o .

注意,这里有诸多参数,需要注意的是 -f component_output_data,这表示要读取某个component的输出数据,-cpn hetoro_lr_0,表示component的名字。

结果存储在job_2019101406255680884591_hetero_lr_0_guest_1000_output_data。这里有两个文件,一个是output_data.csv,这是结果,另一个是output_data_meta.json,是输出结果的meta信息。


7.源码

import os
import sys
import json
import time
import random
import argparse
import subprocess
from pprint import pprint


#feta的主目录,通常也是安装目录
FATE_HOME = &#
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值