您的位置:首页 > 汽车 > 新车 > 第 7 课:XGB算法与SGB算法开发实践

第 7 课:XGB算法与SGB算法开发实践

2024/11/16 12:28:21 来源:https://blog.csdn.net/weixin_42296932/article/details/139903471  浏览:    关键词:第 7 课:XGB算法与SGB算法开发实践

本讲主要介绍隐语纵向树模型原理及工程实现介绍。关于纵向多方协同的集成树模型XGB算法,隐语提供了基于两种不同加密协议实现的算法,一种是基于MPC协议实现SS-XGB, 一种是基于半同态加密算法实现的SecureBoost。

一、背景-纵向数据分割场景和树模型

        普通的树模型是不区分横向和纵向概念的,纵向树模型即基于纵向分割数据集训练的决策树模型。纵向数据集一般来自于前置步骤特征隐私求交得到,特征来自于各个参与方,只有一方拥有标签。各个参与方不期望将特征以明文的形式直接传递给其他参与方,也不希望泄漏相关重要信息。纵向树模型主要用于联合建模(不同特征维度、合作得到的联邦模型比单方训练的模型效果更优),并且树模型有较好的可解释性。

        根据不同的安全程度要求,隐语实现了可证安全算法SS-XGB和纵向联邦算法SGB。

二、使用-隐语纵向树模型

        跟传统的机器学习一致,SS-XGB包括准备阶段(环境和数据集,主要是SPU配置和加载纵向数据),训练阶段(参数设置和执行,XGBoost的参数较多,需要精心设置)以及模型评估(分为安全和不安全的评估方法,计算指标和采取进一步决策)。SGB也一样,分为准备HEU和数据阶段,设置训练参数,以及模型评估和保存。

        隐语框架实现了设备抽象,Python实现分层架构-算法,灵活易读易于维护,分层架构-原语,对瓶颈算子进行优化,并且借助开源进行共享共建。

三、原理和实现-从理论到工程

        首先确定保护的数据部分,哪些数据在秘密分享下进行,其中任何数据都被MPC保护。其次准备安全原语,设计用于MPC计算的算子,如秘密分享、加/乘法等。最后进行数据结构和算法的改造。

        开发实战包括如何在组件中封装算法,根据算子已经实现的功能,定义组件参数和输入输出,建立安全设备,调用引擎方法和存储结果。进行算法的改造,即如何增加训练参数、修改功能等,明确要修改的算法模块,找到对应的代码模块。之后就是模型序列化以及保存和导出。

四、实践

        见作业。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com