Page 359 - 《软件学报》2024年第4期
P. 359

吕沈欢 等: 多标记学习中基于交互表示的深度森林方法                                                      1937


                 的决策路径, 通过随机森林中大量决策树的集成则可以筛选出在随机噪声的影响下仍然较为稳定出现的一部分决
                 策路径, 这些决策路径在随机性的影响下是较为鲁棒的. 我们可以提取出所有决策路径中稳定性最高的一部分特
                 征交互, 而这些特征交互编码了特征空间中的结构信息. 我们可以通过特征交互激活的特征空间区域得到两组表
                 示特征: 特征置信度得分和标记概率分布.
                    考虑一个多标记学习任务, 我们有           n  个训练样本, 它们分别为      p 维的特征向量. 由此我们可以给定一个多标记
                                                                  ,
                 学习的训练集     S n = {(x 1 ,Y 1 ),...,(x n ,Y n )} . 其中对于   ∀i ∈ {1,...,n} x i ∈ S  是一个   p 维的特征向量   x i = (x i1 , x i2 ,..., x ip )
                 且   Y i ∈ Y 是  x i  对应的与其相关的标记的集合. 使用这些训练数据训练得到多个不同的森林模型之后, 我们可以从
                 其中的决策树路径中得到大量的决策规则. 这些规则对于不同的特征类型会有所不同. 对于一个连续性特征                                    x ·k  ,
                 它可以采取以下形式: 比如        x ·k < t k   或者    x ·k ⩾ t k  , 也可以记为   x ·k ⋛ t k  . 而对于一个类别型特征, 我们则将其进行  one-
                 hot 编码使得其决策规则和上述方式一致. 由此定义一条决策树路径为                        R j = {(∆ k ,t k )|∀(x ·k t k ) ∈ 第 j个决策路径}  ,
                 此处的   ∆ k ∈ {−k,+k}  表示    x ·k   是否在该决策路径中且其对应的决策规则的方向       ⋛ (+ 代表   ⩾ , –代表 <),   t k  表示其
                                                                                      I index      I threshold  .
                 对应的决策规则的阈值. 我们可以拆解决策路径信息为两部分交互信息: 方向和下标信息                             j   和阈值信息    j
                 图  1(a) 中的例子就是随机森林模型训练后得到的两个叶子节点              ℓ 和   ℓ  所对应的两个决策规则:    R ℓ = (x ·1 ⩾ t 1 )∩(x ·2 < t 2 )∩
                                                                   ′
                                  ′       ′       ′
                 (x ·3 ⩾ t 3 ) 和  R ℓ ′ = (x ·2 < t )∩(x ·4 ⩾ t )∩(x ·3 ⩾ t )  . 在其被拆解为两部分交互信息之后, 可以表示为两个式子:   I(R ℓ ) =
                                  2       4       3
                                                  ′
                                                   ′
                                                ′
                 {(1,−2,3),(t 1 ,t 2 ,t 3 )} 和  I(R ℓ ′) = {(−2,4,3),(t ,t ,t )}  .
                                                   3
                                                2
                                                  4
                 算法  1. 多标记随机交互树 (multi-label random interaction trees, ML-RIT).
                                    {
                                R = R i |R i = {I index , I threshold  } n   ;
                 输入: 决策路径集合                        }
                                           i   i    i=1
                 输出:   T  激活区域的样本置信度得分和多标记概率分布.
                 1. for 树  ℓ 在  {1,2,...,L} 中 do
                 2.   令   ℓ 是深度为  D 的树. 令  J 树中节点的总数, 并对每一对父子节点对进行标注, 使得子节点的下标比父亲节点大.
                 对每一个节点     j = 1,..., J , 记节点   j 的父亲节点为   pa( j) , 令   i j  是关于节点   j 的一个从训练数据中均匀采样得到的下标
                 3.  令  T  index  ← I index   ,   T  threshold  ← I threshold
                        1    i 1  1       i 1
                 4.  for    j 在  {2,..., J} 中 do
                 5.     T  index  ← I index  ∩T pa(j)
                        j    i j
                 6.      T  threshold  ← ()
                        j
                                   T  index  中 do
                 7.   for 特征下标  i 在   j
                 8.    if   ∆ i ⩾ 0  then
                                         {                       }
                                                ′
                                                          ′
                 9.        T  threshold  ← T  threshold  + max(t i ,t )|t i ∈ I threshold ,t ∈ T  threshold
                            j       j           i   i j   i  pa(j)
                 10.    else
                                          {                       }
                                                ′
                                                          ′
                 11.        T  threshold  ← T  threshold  + min(t i ,t )|t i ∈ I threshold ,t ∈ T  threshold
                             j       j          i    i j  i   pa(j)
                 12.    end if
                 13.   end for
                 14.  end for
                          {              }
                     index  index
                 15.   T  ← T  : depth( j) = D
                     ℓ      j
                            {                }
                     threshold  threshold
                 16.   T  ← T     : depth( j) = D
                     ℓ        j
                          index  threshold
                 17.   T ℓ ← {T ℓ  ,T ℓ  }
                               ∪ L
                 18. 得到交互   T =   T ℓ
                                ℓ=1
                 19. end for
                 20. 通过  bootstrap  采样对交互进行评估和筛选
                 21. 计算  T  激活区域的样本置信度得分和多标记概率分布
   354   355   356   357   358   359   360   361   362   363   364