system: [SYSTEM]

user: 3. 多标签数据属性约简 在给定标签 l i ∈ L 的情况下，关于 l i 的一对样本集被定义为 E i = { x ∈ U : l i ( x ) = 1 } ， i = 1 ， ⋯ ， q . F i = { x ∈ U : l i ( x ) = 0 } ， i = 1 ， ⋯ ， q . 样本集 E i 是有该标签的样本集合，样本集 F i 是没有该标签的样本集合， E i 是正类样本集， F i 是负类样本集。每个标签具有一对样本集 E i 和 F i 。对于给定的属性子集 B ⊂ A ，下面的函数 d B ( E i ， F i ) 可以测量正类样本集 E i 和负类样本集 F i 之间的距离，函数定义为 这个距离函数 d B ( E i ， F i ) 测量了正类样本集 E i 和负类样本集 F i 的边界距离，函数值越大，分类器的分类能力越好。也就是说，标签相同的样本距离越近越好，标签不同的样本距离越远越好。 定义1：对于任意非空属性子集 B ⊆ A ，我们将每个标签的正负类样本间距离求和定义为依赖度函数，依赖函数为 γ ( B ) = ∑ i = 1 q d B ( E i ， F i ) 依赖度函数 γ ( B ) 用于评估属性子集的重要性，依赖度函数值的大小取决于正负类样本间距离函数 d B ( E i ， F i ) 值的大小。 引理1：对于多标签数据 S = ( U ， A ， L ) ，距离函数 d B ( E i ， F i ) 和依赖度函数 γ ( B ) 相对于属性集B是单调递增的。任意选择两个属性子集 B 1 和 B 2 ，有 B 1 ⊂ B 2 ⊂ A ，则存在 d B 1 ( E i ， F i ) < d B 2 ( E i ， F i ) ， γ ( B 1 ) ≤ γ ( B 2 ) 。 证明：由距离的定义，对于任意 B 1 ⊂ B 2 ，有 d B 1 ( x ， y ) = ∑ a ∈ B 1 | a ( x ) − a ( y ) | ≤ ∑ a ∈ B 2 | a ( x ) − a ( y ) | = d B 2 ( x ， y ) 根据集合到集合间距离的定义有 d B 1 ( E i ， F i ) = min x ∈ E i ， y ∈ F i d B 1 ( x ， y ) ≤ d B 1 ( x ， y ) d B 2 ( E i ， F i ) = min x ∈ E i ， y ∈ F i d B 2 ( x ， y ) ≤ d B 2 ( x ， y ) 因此 d B 2 ( E i ， F i ) − d B 1 ( E i − F i ) > 0 d B 1 ( E i ， F i ) < d B 2 ( E i ， F i ) 另外，根据定义1有 γ ( B 1 ) = ∑ i = 1 q d B 1 ( E i ， F i ) γ ( B 2 ) = ∑ i = 1 q d B 2 ( E i ， F i ) 得到 ∑ i = 1 q d B 2 ( E i ， F i ) − ∑ i = 1 q d B 1 ( E i ， F i ) ≥ 0 因此 γ ( B 1 ) ≤ γ ( B 2 ) 引理得证。 从引理1看出，随着属性数目的增加，样本间距离函数值越大，依赖度函数值也越大。这意味着在属性子集中添加新属性从而提高了分类器的分类能力。现在，我们通过最大化依赖度函数给出属性约简的定义。 定义2：对于多标签数据 S = ( U ， A ， L ) ，如果属性子集 B ⊆ A 满足以下条件，则称集合B是A的依赖约简： 1) γ ( B ) = γ ( A ) ； 2) 对于任意的 B ′ ⊂ B ， 。 我们可以看到约简的是A的一个极小子集，它保持了分类器的分类能力。然而，在现实应用中，上述定义过于严格，因此我们引入一个参数 ε ，并给出基于正负类边界距离的属性约简定义。 定义3：对于多标签数据 S = ( U ， A ， L ) ，如果属性子集 B ⊆ A 满足以下条件，则称集合B是A基于正负类边界距离的属性约简： 1) | γ ( B ) − γ ( A ) | < ε ； 2) 对于任意的 B ′ ⊂ B ， | γ ( B ′ ) − γ ( A ) | ≥ ε 。 在这里，我们通过引入参数 ε 来扩大属性约简的范围，并尽可能减少冗余属性，同时将正负类样本间距离的变化保持在较小的范围内。例1更详细地描述了约简过程。 例1：给出多标签数据集 S = ( U ， A ， L ) ，如表1所示，样本集为 U = { x 1 ， x 2 ， x 3 ， x 4 ， x 5 ， x 6 } ，属性集为 A = { a ， b ， c } ，标签集为 L = { l 1 ， l 2 ， l 3 } 。 Table 1 Multi-label dat U a b c l 1 l 2 l 3 x 1 8 4 6 1 0 0 x 2 6 3 6 0 1 0 2 6 7 1 0 1 x 4 9 3 8 1 0 1 x 5 3 3 8 0 0 1 x 6 4 8 4 0 1 0 表1. 多标签数据 正负类样本集如表2所示。 Table 2 Sample se L E F l 1 E 1 = { x 1 ， x 3 ， x 4 } F 1 = { x 2 ， x 5 ， x 6 } l 2 E 2 = { x 2 ， x 6 } F 2 = { x 1 ， x 3 ， x 4 ， x 5 } l 3 E 3 = { x 3 ， x 4 ， x 5 } F 3 = { x 1 ， x 2 ， x 6 } 表2. 样本集 根据距离定义计算出正负类样本间距离，然后得到依赖度函数值，结果如表3所示。 Table 3 Distanc B {a} {b} {c} {a，b} {a，c} {b，c} A d B 2 1 0 2.236 2 1 2.236 d B 2 1 0 2.236 2 1 2.236 d B 2 2 1 2.828 3.605 2.236 4.123 γ ( B ) 6 4 1 7.3 7.605 4.236 8.595 表3. 距离 根据定义3计算得到表4。 Table 4 Dependence degre {a} {b} {c} {a，b} {a，c} {b，c} A | γ ( B ) − γ ( A ) | 2.595 4.595 7.595 1.295 0.99 4.359 0 表4. 依赖度 根据定义3中的参数 ε = 1 ，则从表4中可看出属性集 { a ， c } 是正负类边界距离的属性约简。 现在，我们设计了一种基于正负类边界距离的属性约简算法。把定义3中的参数 ε 看作算法的停止条件，当依赖度的增加小于参数 ε 时，算法终止，完成属性约简。 变量 A k 是剩余的属性集，变量 B k 是选择的属性集。最初的剩余属性集就是全部的属性集A，从 A k 中任意选择一个 a j ，把它并到 B k 里，计算依赖度 γ ( B k ∪ { a j } ) ，有多少个属性就算多少个依赖度。然后选择依赖度最大的属性，在剩余属性 A k 里去掉，选择的属性 B k 中加上。选择最大的依赖度作为新的依赖度，当依赖增量小于参数 ε 时，算法终止，属性约简完成。当依赖增量大于参数 ε 时，回到第2步，选择了一个属性后还剩多少，然后循环上述过程，循环到满足不等式时，属性约简完成。在算法中， | U | 是样本数， | A | 是属性数，步骤2到步骤5是一个循环过程，循环 | A | 次。因此，时间复杂度为 O ( | A | | U | 2 ) 。