FATE入门案例——纵向 SecureBoost 模型

FATE入门案例——纵向 SecureBoost 模型

0,demo说明

使用的hetero_secureboost案例,角色及数据:(1) guest: breast_hetero_guest.csv (2) host: breast_hetero_host.csv。

参考来源:https://github.com/FederatedAI/FATE/tree/master/examples/dsl/v2/hetero_secureboost

1,模型训练

1,使用如下命令提交了job进行模型训练:

flow job submit -c ${runtime_config} -d ${dsl}

#配置文件为:
Binary-Class:
example-data: (1) guest: breast_hetero_guest.csv (2) host: breast_hetero_host.csv
dsl: test_secureboost_train_dsl.json
runtime_config: test_secureboost_train_binary_conf.json

2,训练细节分析:

参考来源:https://github.com/FederatedAI/FATE/blob/master/examples/experiment_template/user_usage/pipeline_predict_tutorial.md)

https://github.com/FederatedAI/FATE/blob/master/python/fate_client/flow_client/README_zh.rst

训练包括以下几个阶段,分别由相应组件执行:

  1. reader:读取原始数据;
  2. dateio:将数据转换为实例样本;
  3. Intersection:求host和guest方的交集;
  4. HeteroSecureBoost:树模型;
  5. evaluation:评估指标。

你可以从http://hostip:8080/fateboard面板查看到建模信息:

FATE入门案例——纵向 SecureBoost 模型_第1张图片

这里的_0_1指的是训练和验证的数据集,只是example中的例子该部分都是同样的数据,所以他们会有相同的dataouput.

其实第一棵树的训练都是要使用各自的标签。(待验证)

FATE入门案例——纵向 SecureBoost 模型_第2张图片

模型输出

FATE入门案例——纵向 SecureBoost 模型_第3张图片

数据输出:

FATE入门案例——纵向 SecureBoost 模型_第4张图片

模型各种指标:

FATE入门案例——纵向 SecureBoost 模型_第5张图片

host方的模型输出:

FATE入门案例——纵向 SecureBoost 模型_第6张图片

host的标签在guest处都是匿名处理了的。

FATE入门案例——纵向 SecureBoost 模型_第7张图片

host方无data output。

host方无模型指标。

2,模型预测

那么如何用我们已经训练好的模型进行预测呢?

参考:https://github.com/FederatedAI/FATE/blob/master/examples/experiment_template/user_usage/dsl_v2_predict_tutorial.md

1,通过我们刚刚提交的jobid,找到对应的model_id和model_version:

flow job config -j 202103270933192332863 -r guest -p 9999 -o ./

FATE入门案例——纵向 SecureBoost 模型_第8张图片

2,部署模型

flow model deploy --model-id guest-9999#host-9998#model --model-version 202103270933192332863

FATE入门案例——纵向 SecureBoost 模型_第9张图片

3,修改test_predict_conf.json配置文件的model_id和model_id,包括part_id和role。

4,使用修改好的配置文件提交任务进行预测:

FATE入门案例——纵向 SecureBoost 模型_第10张图片

可以看到模型预测的DAG似乎有些不同:

FATE入门案例——纵向 SecureBoost 模型_第11张图片

由前所述,这里的read和dataio几乎是一样的,当然这也包括intersection。

guest方的module output也同上。

这里的预测结果几乎和上面看到的是一样的,还是因为example的案例中都使用了同样的样本。

FATE入门案例——纵向 SecureBoost 模型_第12张图片

不失一般性,我们看下模型输出的第2棵树:

FATE入门案例——纵向 SecureBoost 模型_第13张图片

可以知道,guest方和host方的树模型都有对方的特征(实际上这两棵树本身就应该是这样,并且他们也是互补的)。因此,在模型使用时,需要同时用到这两棵树。

你可能感兴趣的:(联邦学习FATE,FATE,联邦学习,SecureBoost)