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

2938                                                       软件学报  2025  年第  36  卷第  7  期


                 3.2.2    创建叶子节点
                    本文进一步调整训练数据信息的返回形式, 仅将标签传递给叶子节点, 以避免拉普拉斯机制下错误的噪声计
                 数结果. 与此同时, 仅使用叶子节点的标签即可完成对新样本的预测, 因此对叶子节点传递标签的操作并不会对决
                 策树模型的预测功能造成影响. 上述过程中, 同样采用重排翻转机制实现访问数据过程的隐私保护. 其中叶子节点
                 对训练数据查询操作的效用函数设置如下.
                                                                      u leaf (D,L i ) 定义如公式  (15) 所示:
                    假设当前访问的训练集为          D, 则对标签集   L 执行查询的效用函数
                                                                                                     (15)
                                                       u lea f (D,L i ) = N i
                 其中,  L i  表示标签集合中任意标签,      N i  表示  D 中标签为  L i  的样本数量. 根据全局敏感度的定义, 可以计算出公式
                 (15) 的全局敏感度为    1.
                    通过公式    (15) 计算每种标签的效用分数, 同时为每种标签计算分数概率, 计算过程如下.
                    假设  L i  表示标签集合中任意标签, 则      L i 的分数概率  p lea f_i  如公式  (16) 所示:

                                                         (   (       ) )
                                                 p lea f_i = exp ε lea f u i  −u ∗  /2               (16)
                                                               lea f  leaf
                 其中,  ε lea f  表示叶子节点获得的隐私预算,    u i   表示根据公式   (15) 计算得到的标签    L i  的效用分数,  u ∗   表示待选标
                                                  lea f                                      leaf
                 签集合中的最大效用分数.
                    每次创建叶子节点时, 本文通过算法            3  的流程对训练数据进行访问并将输出的标签作为叶子节点的标签.

                 3.3   随机森林生成环节
                    基于第   3.1  节以及第  3.2  节, 进一步生成差分隐私随机森林模型. 首先, 从原始数据集中采用不放回抽样的方
                 式抽取若干样本, 基于这些样本构建多个训练子集, 将第                 3.1  节划分好的隐私预算分配给每个训练子集. 其次, 每
                 个训练子集基于第       3.2  节的  pfDPDT  算法构建相应的差分隐私决策树模型. 随后, 将多个差分隐私决策树模型集
                 成为差分隐私随机森林模型, 决策树模型之间会采用投票方式选举出整个森林模型的预测结果.
                    至此, 整个   eDPRF  算法的主要设计思路表述完毕, 为了更清晰描述算法的具体实施步骤, 整个                      eDPRF  算法执
                 行流程如算法     4  所示.

                 算法  4. eDPRF  算法.
                              D, 训练数据的特征集合  , 训练数据的标签集合  , 随机森林的隐私预算  , 随机森林的深度
                                                                                         ε
                                                  F
                                                                     L
                 输入: 训练数据
                 treeDepth, 随机森林的规模  ;
                                      T
                 输出: 随机森林模型.
                 函数:  BuildForest(D,F,L,ε,depth,treeDepth).
                 ① Forest={ };
                 ② for  i = 1 to  T  do
                 ③   depth ← 1;
                 ④  设置每个决策树的隐私预算为            ε tree = ε;
                                                        |D|
                 ⑤ 从训练集    D 使用不放回抽样的方式抽取大小为               的训练子集    D i ;
                                                        T
                 ⑥   D = D− D i  ;
                 ⑦   Tree i ← BuildTree(D i ,F,L,ε tree ,depth,treeDepth) /*调用算法  5  构建决策树 */
                 ⑧    Forest = Forest ∪Tree i
                 ⑨ end for
                 ⑩ return 随机森林模型

                    其中, 算法   4  中调用的算法   5  的伪代码如下.
   12   13   14   15   16   17   18   19   20   21   22