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 的伪代码如下.

