联邦机器学习

July 10, 2024 · View on GitHub

Federatedml模块包括许多常见机器学习算法联邦化实现。所有模块均采用去耦的模块化方法开发,以增强模块的可扩展性。具体来说,我们提供:

  1. 联邦统计: 包括隐私交集计算,并集计算
  2. 联邦特征工程:包括联邦采样,联邦特征分箱,联邦特征选择等。
  3. 联邦机器学习算法:包括横向和纵向的联邦LR, GBDT, DNN等
  4. 模型评估:提供对二分类,多分类,回归评估
  5. 安全协议:提供了多种安全协议,以进行更安全的多方交互计算。

算法清单

如需不通过FATE-Client直接调用算法模块,请查看此教程.

算法模块名描述数据输入数据输出模型输入模型输出
Reader传递用户指定输入数据表给下游组件output_data
PSIPSI计算两方的相交数据集,而不会泄漏任何差异数据集的信息。主要用于纵向任务input_dataoutput_data
SamplingSample对数据进行联邦采样,使得数据分布在各方之间变得平衡。这一模块同时支持本地和联邦场景。input_dataoutput_data
Data SplitDataSplit将数据集切分成训练、验证、测试集。input_datatrain_output_data, validate_output_data, test_output_data
Feature ScaleFeatureScale特征归一化和标准化。train_data, test_datatrain_output_data, test_output_datainput_modeloutput_model
Data StatisticsStatistics计算各类统计指标。input_dataoutput_model
Hetero Feature BinningHeteroFeatureBinning使用分箱的输入数据,计算每个列的iv和woe,并根据合并后的信息转换数据。train_data, test_datatrain_output_data, test_output_datainput_modeloutput_model
Hetero Feature SelectionHeteroFeatureSelection提供多种类型的filter。每个filter都可以根据用户配置选择列。train_data, test_datatrain_output_data, test_output_datainput_models, input_modeloutput_model
Coordinated-LRCoordinatedLR通过多方构建纵向逻辑回归模块。train_data, validate_data, test_data, cv_datatrain_output_data, test_output_data, cv_output_datasinput_model, warm_start_modeloutput_model
Coordinated-LinRCoordinatedLinR通过多方建立纵向线性回归模块train_data, validate_data, test_data, cv_datatrain_output_data, test_output_data, cv_output_datasinput_model, warm_start_modeloutput_model
Homo-LRHomoLR通过多方构建横向逻辑回归模块。train_data, validate_data, test_data, cv_datatrain_output_data, test_output_data, cv_output_datasinput_model, warm_start_modeloutput_model
Homo-NNHomoNN通过多方构建横向神经网络模块。train_data, validate_data, test_data, cv_datatrain_output_data, test_output_data, cv_output_datasinput_model, warm_start_modeloutput_model
Hetero-NNHeteroNN通过多方构建纵向联邦神经网络模型。train_data, validate_data, test_datatrain_data_output, predict_data_outputtrain_model_input, predict_model_inputtrain_model_output
Hetero Secure BoostingHeteroSecureBoost通过多方构建纵向联邦梯度提升树模型。train_data, test_data, cv_datatrain_data_output, test_data_output, cv_output_datastrain_model_input, predict_model_inputtrain_model_output
EvaluationEvaluation评估二分类、多分类、回归等指标。input_data
UnionUnion将多个数据表合并成一个。input_dataoutput_data
SSHE-LRSSHELR通过两方构建纵向逻辑回归模块。train_data, validate_data, test_data, cv_datatrain_output_data, test_output_data, cv_output_datasinput_model, warm_start_modeloutput_model
SSHE-LinRSSHELinR通过两方构建纵向线性回归模块。train_data, validate_data, test_data, cv_datatrain_output_data, test_output_data, cv_output_datasinput_model, warm_start_modeloutput_model
算法模块名描述样例数据输入数据输出模型输入
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Reader传递用户指定输入数据表给下游组件output_data
PSIPSI计算两方的相交数据集,而不会泄漏任何差异数据集的信息。主要用于纵向任务psiinput_dataoutput_data
SamplingSample对数据进行联邦采样,使得数据分布在各方之间变得平衡。这一模块同时支持本地和联邦场景。sampleinput_dataoutput_data
Data SplitDataSplit将数据集切分成训练、验证、测试集。data splitinput_datatrain_output_data, validate_output_data, test_output_data
Feature ScaleFeatureScale特征归一化和标准化。feature scaletrain_data, test_datatrain_output_data, test_output_datainput_model
Data StatisticsStatistics计算各类统计指标。statisticsinput_data
Hetero Feature BinningHeteroFeatureBinning使用分箱的输入数据,计算每个列的iv和woe,并根据合并后的信息转换数据。hetero feature binningtrain_data, test_datatrain_output_data, test_output_datainput_model
Hetero Feature SelectionHeteroFeatureSelection提供多种类型的filter。每个filter都可以根据用户配置选择列。hetero feature selectiontrain_data, test_datatrain_output_data, test_output_datainput_models, input_model
Coordinated-LRCoordinatedLR通过多方构建纵向逻辑回归模块。coordinated LRtrain_data, validate_data, test_data, cv_datatrain_output_data, test_output_data, cv_output_datasinput_model, warm_start_model
Coordinated-LinRCoordinatedLinR通过多方建立纵向线性回归模块coordinated LinRtrain_data, validate_data, test_data, cv_datatrain_output_data, test_output_data, cv_output_datasinput_model, warm_start_model
Homo-LRHomoLR通过多方构建横向逻辑回归模块。homo lrtrain_data, validate_data, test_data, cv_datatrain_output_data, test_output_data, cv_output_datasinput_model, warm_start_model
Homo-NNHomoNN通过多方构建横向神经网络模块。homo nntrain_data, validate_data, test_data, cv_datatrain_output_data, test_output_data, cv_output_datasinput_model, warm_start_model
Hetero-NNHeteroNN通过多方构建纵向联邦神经网络模型。hetero nntrain_data, validate_data, test_datatrain_data_output, predict_data_outputtrain_model_input, predict_model_input
Hetero Secure BoostingHeteroSecureBoost通过多方构建纵向联邦梯度提升树模型。hetero secureboosttrain_data, test_data, cv_datatrain_data_output, test_data_output, cv_output_datastrain_model_input, predict_model_input
EvaluationEvaluation评估二分类、多分类、回归等指标。evaluationinput_data
UnionUnion将多个数据表合并成一个。unioninput_data_listoutput_data
SSHE-LRSSHELR通过两方构建纵向逻辑回归模块。SSHE LRtrain_data, validate_data, test_data, cv_datatrain_output_data, test_output_data, cv_output_datasinput_model, warm_start_model
SSHE-LinRSSHELinR通过两方构建纵向线性回归模块。SSHE LinRtrain_data, validate_data, test_data, cv_datatrain_output_data, test_output_data, cv_output_datasinput_model, warm_start_model
Feature CorrelationFeatureCorrelation计算本地或纵向联邦下的相关性系数。Feature Correlationinput_datainput_model