fate框架使用记录

在腾讯云服务器上使用fate

1. secureboost

进入环境

输入ssh + 服务器地址 --> 输入密码进入服务器
使用cd FATE/命令进入框架所在文件夹
使用docker exec -it fate_python bash命令进入docker

上载数据

由于原文件夹中的upload_data_guest.json和upload_data_host.json文件中table_name和namespace参数存在不一致问题,故新创建两个json文件:up_dt_guest.json和up_dt_host.json,并写入内容如下:
up_dt_host.json

{
   
  "file": "examples/data/breast_a.csv",
  "head": 1,
  "partition": 10,
  "work_mode": 0,
  "table_name": "breast_a",
  "namespace": "hetero"
}

up_dt_guest.json

{
   
  "file": "examples/data/breast_b.csv",
  "head": 1,
  "partition": 10,
  "work_mode": 0,
  "table_name": "breast_b",
  "namespace": "hetero"
}

接下来上载数据:
python fate_flow/fate_flow_client.py -f upload -c examples/federatedml-1.0-examples/up_dt_guest.json -c examples/federatedml-1.0-examples/up_dt_host.json
注意是先上载guest后上载host
最后提交任务:
python fate_flow/fate_flow_client.py -f submit_job -d examples/federatedml-1.0-examples/hetero_secureboost/test_secureboost_train_dsl.json -c examples/federatedml-1.0-examples/hetero_secureboost/test_secureboost_train_binary_conf.json
可以通过提示网址查看结果:
http://localhost:8080/index.html#/dashboard?job_id=20190929055530316952233&role=guest&party_id=10000
结果如下:
在这里插入图片描述
点击view this job查看所有结果,同时可以通过切换job查看guest端和host端上载的数据,训练的指标存放在evaluation中:
在这里插入图片描述

2. logistic regression

步骤同上:
python fate_flow/fate_flow_client.py -f submit_job -d examples/federatedml-1.0-examples/hetero_logistic_regression/test_hetero_lr_train_job_dsl.json -c examples/federatedml-1.0-examples/hetero_logistic_regression/test_hetero_lr_train_job_conf.json
部分结果:
在这里插入图片描述
目前只熟悉这一种操作。。。

熟悉fate文档

Supported Components

DataIO
对应模块名称DataIO,通常是建模任务的第一个组件,将用户上传数据转换为实例对象。
数据输入:DTable,值是原始数据。
数据输出:转换后的DTable,值是federatedml/feature/instance.py中定义的数据实例。
Intersect
对应模块名称Intersection计算两方的相交数据集,而不会泄漏差异集信息。主要用于异构方案任务。
数据输入:DTable数据。
数据输出:同时出现在两方DTable的键组成的DTable。
Federated Sampling
对应模块名称FederatedSample,联合采样数据,使分布在各方之间变得平衡。此模块支持federated版本和standalone版本。
数据输入:DTable数据。
数据输出:采样数据,支持随机采样和分层采样。
Feature Scale
对应模块名称FeatureScale,用于特征缩放和标准化的模块。
数据输入:DTable,其值为实例。
数据输出:转换后的DTable。
模型输出:变换系数,例如最小/最大,平均值/标准差。
Hetero Feature Binning
对应模块名称HeteroFeatureBinning,使用合并输入数据,计算每个列的iv和woe,并根据合并后的信息转换数据。
数据输入:DTable在guest中有标签y,在host中没有标签y。
数据输出:转换后的DTable。
模型输出:每列的iv /woe,分裂点,事件计数,非事件计数等。
OneHot Encoder
对应模块名称OneHotEncoder,将一列转换为OneHot格式。
数据输入:输入DTable。
数据输出:转换了带有新header的DTable。
模型输出:原始header和特征值到新header映射。
Hetero Feature Selection
对应模块名称HeteroFeatureSelection,提供5种类型的过滤器。每个过滤器都可以根据用户配置选择列。
数据输入:输入DTable。
模型输入:如果使用iv过滤器,则需要hetero_binning模型。
数据输出:转换的DTable具有新的header和已过滤的数据实例。
模型输出:每列是否留下。
Hetero-LR
对应模块名称HeteroLR,通过多方构建异质逻辑回归模块。
数据输入:输入DTable。
模型输出:Logistic回归模型。
Homo-LR
对应模块名称HomoLR,通过多方构建同质逻辑回归模块。
数据输入:输入DTable。
模型输出:Logistic回归模型。
Hetero Secure Boosting
对应模块名称HeteroSecureBoost,通过多方建立异构安全提升模型。
数据输入:DTable,值是实例。
模型输出:SecureBoost模型,由模型元和模型参数组成。
Evaluation
对应模块名称Evaluation,为用户输出模型评估指标。

DSL & Task Submit Runtime Conf Setting

为了使建模任务更加灵活,目前,FATE使用其自己的领域特定语言(DSL,domain-specific language)来描述建模任务。通过使用这种DSL,可以将诸如数据输入,功能设计和分类/回归模块等建模组件组合为有向非循环图(DAG)。 因此,用户可以根据需要灵活地组合算法组件。
此外,每个组件都有自己的参数要配置。 此外,各方之间的配置可能会有所不同。 为了方便起见,FATE使用在一个文件中配置所有各方和所有组件的所有参数。 本指南将向您展示如何创建这样的配置文件。
DSL Configure File
我们使用json文件作为dsl配置文件,它实际上是一个字典。 dict的第一级始终是“component”,显示您将在建模任务中添加组件。

{
   
"components" : {
   
    ...
}

然后,应在第二层中定义每个组件。 以下设置组件的示例:

"dataio_0": {
   
    "module": "DataIO",
    "input": {
   
        "data": {
   
            "data": [
                "args.train_data"
            ]
        }
    },
    "output": {
   
        "data": ["train"],
        "model": ["dataio"]
    },
    "need_deploy": true
}

如示例所示,用户将组件名称定义为该模块的键。 但是此模块应以“ _num”结尾,其中num应以0开头。(???)
Field Specification
1.模块:指定使用哪个组件。 除.json后缀外,此字段应与federatedml / conf / setting_conf中的文件名严格相同。
2.输入:输入有两种类型,数据和模型。
i.data
有三种可能的data_input类型:
a.data:通常用于data_io,feature_engineering模块和评估中。
b.train_data:用于homo_lr,hetero_lr和secure_boost。 如果提供此字段,则任务将被解析为拟合任务。
c.eval_data:如果提供了train_data,则此字段为可选。 在这种情况下,此数据将用作验证集。 如果未提供train_data,则此任务将被解析为预测或迁移任务。
ii.model
有两种可能的模型输入类型:
a.model:这是由相同类型的组件输入的模型。 例如,hetero_binning_0作为拟合组件运行,hetero_binning_1将hetero_binning_0的模型输出作为输入,因此可以用于迁移或预测。示例如下:

"hetero_feature_binning_1": {
   
    "module"
  • 7
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值