更新时间:2024-10-22 GMT+08:00
分享

创建纵向联邦学习作业

前提条件

  • 空间组建完成,参考组建空间
  • 空间成员完成计算节点部署,配置参数时选择挂载方式和数据目录,参考部署计算节点
  • 空间成员在计算节点中完成数据发布,参考发布数据
  • 参与方的计算节点如果是采用云租户部署,并且使用子账号进行创建的,需要参考配置CCE集群子账号权限给子账号增加权限配置。

约束限制

  • 纵向联邦作业XGBoost算法只支持两方参与训练。
  • 训练作业必须选择一个当前计算节点发布的数据集。
  • 作业创建者的数据集必须含有特征。

创建纵向联邦学习作业

纵向联邦学习作业在本地运行,目前支持XGBoost算法、逻辑回归LR算法和FiBiNET算法。

纵向联邦学习分为五个步骤:数据选择、样本对齐(可选)、特征选择(可选)、模型训练、模型评估。

创建过程如下:

  1. 用户登录进入计算节点页面。
  2. 在左侧导航树上依次选择作业管理 > 可信联邦学习,打开可信联邦学习作业页面。
  3. 可信联邦学习页面,单击“创建”

    图1 创建作业

  4. 在弹出的对话框中单击“纵向联邦”按钮,编辑“作业名称”等相关参数,完成后单击“确定”

    目前,纵向联邦学习支持“XGBoost”“逻辑回归”“FiBiNET”三种算法类型,XGBoost支持“分类”“回归”两种任务类型。
    图2 新建作业

  5. 在弹出的界面进行数据选择,选择两方数据集作为整个作业的数据集,必须选择一个当前代理的数据集,另一个数据集可以来自空间中的任意一方。两方的数据集中一方数据集只含有特征,另一方的数据集必须含有标签。

    重试:开关开启后,执行失败的作业会根据配置定时进行重试,仅对开启后的执行作业生效。开关关闭后,关闭前已触发重试的作业不受影响,仅对关闭后的执行作业生效。

    CPU配额:执行特征选择作业和训练作业时,会创建新容器来执行,该参数的值为创建新容器的CPU核数。

    内存配额:执行特征选择作业和训练作业时,会创建新容器来执行,该参数的值为创建新容器的内存。

    样本粗筛:当己方数据过大无法导出成文本文件时,可以使用样本粗筛获取合作方的明文id前缀,使用大数据组件筛选出id前缀相符的数据,达到减少数据量的目的。样本粗筛时还可以选择多个标记为“非敏感”的字段进行过滤,结果会按照“id前缀,过滤字段1,过滤字段2……”的格式保存成csv文本文件。

    选择完成后单击“下一步”
    图3 数据选择
    图4 样本粗筛

  6. (可选步骤) 样本对齐,支持使用新对齐的结果,如图5所示;也支持复用隐私求交作业中通过这两个数据集计算得到的结果,如图6所示。

    图5 使用新对齐结果
    图6 复用隐私求交作业中的结果

  7. (可选步骤)进行特征选择,此步骤要求数据已经对齐,即两方数据集每一行的数据都是一一对应的。

    单击数据集按钮切换数据集,勾选特征作为模型训练的指定特征,选择分箱方式后单击“启动分箱和IV计算”,计算得到所选特征对标签的影响程度。计算完成后,单击特征行的可以展开图表形式的分箱woe值。

    “FiBiNET”算法新增限制:

    1. 特征方必须要有两个及以上离散特征,连续特征可有可无。
    2. 标签方可以不提供任何特征,如果标签方提供特征也要遵循1规则。

    其他算法无限制

    选择完成后单击“下一步”

    • 在所选数据集中只能有一个字段是标签。
    • 训练时需勾选使用的特征选项,勾选后可以跳过特征分箱,直接进行训练。
    • 分箱方式包括等频分箱和等距分箱。等频分箱是指经过计算使得每个分箱区间包含大致相等的实例数量;等距分箱是指经过计算使得每个箱体的区间间隔保持一致。
    • 需要至少勾选一个无标签数据集特征才能进行模型训练。如果不勾选任何特征,会提示“选择两个数据集,一个有标签,一个无标签,且至少选择一个无标签方特征,才可启动训练。”
    图7 特征选择
    图8 查看特征分箱woe值

  8. 在页面右下角单击“启动训练”进行模型训练。
  9. 在弹出的界面配置执行参数,配置执行参数可选择常规配置与自定义配置。

    • 常规配置:通过界面点选算法使用的常规参数,具体支持的参数请参考表1
      表1 常规配置参数

      算法类型

      参数名

      参数描述

      XGBoost

      学习率

      控制权重更新的幅度,以及训练的速度和精度。取值范围为0~1的小数。

      树数量

      定义XGBoost算法中决策树的数量,一个样本的预测值是多棵树预测值的加权和。取值范围为1~50的整数。

      树深度

      定义每棵决策树的深度,根节点为第一层。取值范围为1~10的整数。

      切分点数量

      定义每个特征切分点的数量,数量越多,准确率越高,计算时间越长。取值范围为5~10的整数。

      分类阈值

      区分正负例的得分阈值。

      逻辑回归/FiBiNET

      学习率

      控制权重更新的幅度,影响训练收敛速度和模型精度,取值范围为0~1。

      迭代次数

      完成全部样本训练的次数,取值为正整数。

      批大小

      单次训练使用的样本数,取值为正整数。

      分类阈值

      区分正负例的得分阈值

    • 自定义配置: 通过json格式的文本配置更多高级参数,具体支持的参数请参考表2
      表2 自定义配置参数

      参数

      是否必选

      参数类型

      描述

      predict_threshold

      Float

      预测阈值,最小值0,最大值1

      learning_rate

      Float

      学习率,最小值0,最大值1

      batch_size

      Integer

      批大小,最小值1

      epoch

      Integer

      迭代次数,最小值1

      tree_num

      Integer

      树数量,最小值1

      tree_depth

      Integer

      树深度,最小值1

      split_num

      Integer

      切分点数量,最小值5

      discrete_embedding_size

      Integer

      离散特征embedding的维度,最小值4

      multihot_embedding_size

      Integer

      multihot特征embedding的维度,最小值4

      mlp_dims

      Array of integers

      多层感知机每层的节点数

      reduction_ratio

      Integer

      senet层压缩比例,最小值2

      save_format

      String

      模型保存格式

      loss_function

      String

      损失函数

      loss_param

      String

      损失函数参数json字符串

    图9 常规参数配置(XGBoost)
    图10 常规参数配置(逻辑回归/FiBiNET)
    图11 自定义参数配置

    填写完作业参数,单击“确定”即可开始训练作业。启动作业后会生成一条新的历史作业记录。模型训练页面展示了历史作业的执行情况、模型的评估指标和生成时间。模型的评估指标是使用训练数据集产生的。

    单击“查看参数”可以查看该模型训练时指定的机器学习作业参数;逻辑回归作业可以单击“查看中间结果”实时查看每一次迭代的评估指标。

    图12 模型训练参数

  10. 进行模型评估。在历史作业列表中,单击执行成功的记录操作列的“发起评估”,可对该模型发起一次评估作业,用于评估该模型在非训练数据集上的表现。

    评估作业需要选择和训练数据集数据结构相同的两方数据集,以保证评估的正常进行。

    模型评估指标包括准确率/AUC/KS/F1/召回率/精确率,取值范围均在0~1之间。AUC和F1作为综合评估指标,值越大说明训练出的模型越好。

    图13 发起评估

相关文档