Page 18 - 《软件学报》2025年第7期
P. 18

王树兰 等: eDPRF: 高效的差分隐私随机森林训练算法                                                   2939



                 算法  5. pfDPDT.

                                                  F
                                                                       L
                 输入: 训练数据     D, 训练数据的特征集合  , 训练数据的标签集合  , 决策树的隐私预算                      ε tree , 决策树的深度
                 treeDepth, 当前节点所在的深度     depth;
                 输出: 决策树模型.
                 函数:  BuildTree(D,F,L,ε tree ,depth,d max ).
                 ① if 特征集合为空    F = ∅ or 当前深度达到最大深度      depth == treeDepth or  D 只含一类标签  then
                 ②  设置叶子节点的隐私预算为

                                                       depth−1
                                                       ∑
                                                                 ε tree
                                              ε lea f = ε tree −          ;
                                                           s t (treeDepth−m+1)
                                                        m=1
                 ③   lea f _ label ← BuildLea f(D i ,L,ε lea f ) /*调用算法  3  返回叶子节点标签*/;
                 ④  设置叶子节点的标签为         lea f _ label;
                 ⑤  return 叶子节点
                 ⑥ else
                           F
                 ⑦  for   f  in   do
                 ⑧   if   f  是连续型特征 then
                 ⑨    对    f  通过分箱操作完成离散化
                 ⑩   end if
                 ⑪  end for
                 ⑫  设置分支结点的隐私预算为

                                                             ε tree
                                                 ε spl =               ;
                                                     s t (treeDepth−depth+1)
                 ⑬   split_value ← BuildSplit(D,F,L,ε spl ) /*调用算法  2  返回分裂特征*/;
                 ⑭  根据选出的特征       split_value, 对训练集  D 执行划分操作;
                 ⑮  从  F  中删除使用过的特征,      F ← F − split_value;
                 ⑯  for  D  in {  D[1],..., D[k] } do /*递归地执行建树操作*/
                         ′

                                            BuildTree(D ,F,L,ε tree ,depth+1,treeDepth)
                                                      ′
                 ⑰  end for
                 ⑱ end if
                 ⑲ return 决策树模型
                    至此, 满足差分隐私的随机森林模型算法             5  构建完成. 用户可以基于该模型进一步实现新样本预测过程, 具体
                 流程见算法    6  所示.
                 算法  6. 基于随机森林实现预测过程.

                 输入: 未知样本集     D test , 随机森林  Forest;
                 输出: 预测结果.
                 函数:  Predict(D test ,Forest).
                 ① Result={ };
                 ② for  d in  D test  do
                 ③ for  tree in  Forest do
                                                         predict_value;
                 ④   遍历当前决策树, 到达叶子节点, 得到预测值
   13   14   15   16   17   18   19   20   21   22   23