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
测试:
cd standalone_fate_master_1.6.0
source bin/init_env.sh
bash ./python/federatedml/test/run_test.sh
会输出一系列的测试输出,最终:
toy测试
python ./examples/toy_example/run_toy_example.py 10000 10000 0
运行起来之后可以看到:
控制台(IP:8080
):
安装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(‘breast_1_train.csv’, index=False, header=True)
breast_2_train = train.iloc[200:]
breast_2_train.to_csv(‘breast_2_train.csv’, index=False, header=True)
eval.to_csv(‘breast_eval.csv’, index=False, header=True)
注意:官方地址中的csv文件是有问题的,要运行这个切割数据集自己生成新的数据集文件
==================