563
社区成员




什么是纵向树模型?
基于纵向分割数据集训练的决策树模型
SS-XGB(基于秘密分享XGB)
SGB(基于联邦和同态加密)
使用树模型的三个简单步骤:
SS-XGB:
SGB:
SS-XGB准备:
SGB准备:
经典算法到MPC算法
经典算法到联邦算法
组件封装
算法修改
模型导出
使用树模型的三个简单步骤
隐语算法通用使用方法:准备(设备和数据)、训练(参数设置和执行)、评估(计算指标和决策)
SS-XGB: 教程提点
预习教程:官网SS-XGB教程链接
SGB: 教程提点
预习教程:官网SGB教程链接
两种算法使用有何区别?
准备设备和数据:MPC 和 联邦算法的对比
设置训练参数:XGB vs SGB 多功能集合的树模型算法实现
模型产出:评估和保存 :密态模型和联邦模型
SS-XGB / SGB 算法是如何炼成的?
经典算法到MPC算法:算法改造三部曲,参考论文(ss XGB)。
https://arxiv.org/pdf/2005.08479.pdf
经典算法到联邦算法: 算法改造三部曲,参考论文(SecureBoost)
https://arxiv.org/pdf/2005.08479.pdf
如何修改源码实现合适的功能?
开发实战
组件封装:如何在组件中封装算法?
组件封装三部曲
算法修改:如何增加训练参数、修改功能
算法修改三部曲:以SGB为例
模型导出:如何把存储模型?
模型导出三部曲
SS-XGB / SGB 在隐语实现有什么独特优势?
隐语的优势:SS XGB/SGB on secretflow
1.用ss-XGB来完成刚才老师演示的SGB流程。
# 模型训练
from secretflow.ml.boost.ss_xgb_v import Xgb
from secretflow.data.split import train_test_split as train_test_split_fed
import time
spu = sf.SPU(spu_conf)
# 初始化Xgb对象
ss_xgb = Xgb(spu)
start = time.time()
# 定义参数
params = {
'num_boost_round': 14,
'max_depth': 5,
'learning_rate': 0.3,
'sketch_eps': 0.1,
'objective': 'logistic',
'reg_lambda': 0.1,
'subsample': 1,
'colsample_by_tree': 1,
'base_score': 0.5,
}
# 训练模型
model = ss_xgb.train(params, X_train_fed, y_train_fed)
2.当用ss-XGB跑完相同的流程后,它的test AUC是多少?
如果SGB去除早停,对比SGB和ssXGB都是14棵树的情况下,AUC相差不大
3.如果Alice有15个特质,Bob有1个特质,如果用SGB和ss-XGB做联合建模,我们是否还会获得额外的 AUC的收益?
SGB-早停
SGB-非早停
ssXGB
对比:从结果看没有额外收益