联邦学习实战-2-用FATE从零实现横向逻辑回归

  • 4.3. list index out of range

  • 四、Tips

    • 4.1. 重新启动fate-flow和fateboard
  • 4.2. ‘NoneType’ object has no attribute ‘count’

  • 4.3. list index out of range

一、安装FATE平台

=====================================================================

FATE是微众银行开源的联邦学习框架

官方地址:https://fate.fedai.org

文档:https://fate.readthedocs.io/en/latest/_build_temp/standalone-deploy/doc/Fate-standalone_deployment_guide_zh.html

https://github.com/FederatedAI/Practicing-Federated-Learning/tree/main/chapter05_FATE_HFL

注意:书本使用的FATE是1.4.0版本,而我使用的是1.6.0版本(2021-8-13),文中的配置文件中的注释在使用时要去除

采用在主机安装FATE的安装模式

官方文档中的命令都是用sh运行,因为本机的环境不同,所以采用bash

wget https://webank-ai-1251170195.cos.ap-guangzhou.myqcloud.com/standalone_fate_master_1.6.0.tar.gz

tar -xzvf standalone_fate_master_1.6.0.tar.gz

cd standalone_fate_master_1.6.0

source bin/init_env.sh

bash init.sh init

问题:service.sh: [[ not found

解决:修改init.sh文件中的sh命令为bash

vXfbnF

测试:

cd standalone_fate_master_1.6.0

source bin/init_env.sh

bash ./python/federatedml/test/run_test.sh

会输出一系列的测试输出,最终:

img

toy测试

python ./examples/toy_example/run_toy_example.py 10000 10000 0

运行起来之后可以看到:

MdTqV9

KESqxK

控制台(IP:8080):

img

安装FATE-Client和FATE-Test

为方便使用FATE,我们提供了便捷的交互工具FATE-Client以及测试工具FATE-Test.

请在环境内使用以下指令安装:

python -m pip install fate-client

python -m pip install fate-test

二、切分数据集

数据集:威斯康星州临床科学中心开源的乳腺癌肿瘤数据集

from sklearn.datasets import load_breast_cancer

为了模拟横向联邦建模的场景,我们首先在本地将乳腺癌数据集切分为特征相同的横向联邦形式,当前的breast数据集有569条样本,我们将前面的469条作为训练样本,后面的100条作为评估测试样本。

从469条训练样本中,选取前200条作为公司A的本地数据,保存为breast_1_train.csv,将剩余的269条数据作为公司B的本地数据,保存为breast_2_train.csv。

测试数据集可以不需要切分,两个参与方使用相同的一份测试数据即可,文件命名为breast_eval.csv。

splitDataset.py

from sklearn.datasets import load_breast_cancer

import pandas as pd

breast_dataset = load_breast_cancer()

breast = pd.DataFrame(breast_dataset.data, columns=breast_dataset.feature_names)

breast = (breast-breast.mean())/(breast.std())

col_names = breast.columns.values.tolist()

columns = {}

for idx, n in enumerate(col_names):

columns[n] = “x%d”%idx

breast = breast.rename(columns=columns)

breast[‘y’] = breast_dataset.target

breast[‘idx’] = range(breast.shape[0])

idx = breast[‘idx’]

breast.drop(labels=[‘idx’], axis=1, inplace = True)

breast.insert(0, ‘idx’, idx)

breast = breast.sample(frac=1)

train = breast.iloc[:469]

eval = breast.iloc[469:]

breast_1_train = train.iloc[:200]

breast_1_train.to_csv(‘brea

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值