system: [SYSTEM]

user: 3. 加权调和提升度及其性质 在本节中，首先利用信息熵为来自不同属性的项赋予不同的权重，接下来将传统的模式挖掘相关概念和理论推广到加权项集挖掘上，最后给出加权调和提升度的概念和性质。 3.1. 基于信息熵的属性权重 在传统的项集挖掘算法中，不同的项都处于平等的地位，而在实际的数据集当中，不同属性的重要性是不同的，因此需要将数据集中的不同属性赋予不同的权重。可由领域专家为属性规定权重值，但这么做易受主观因素影响。在本文中，利用属性信息熵，以无监督的方式为数据集当中的各属性分配权重。 信息熵(Entropy)用以度量随机变量序列中所包含的信息量大小，是一种衡量信息不确定程度的指标。信息熵越大，随机变量序列中的离散取值越多，随机变量的分布越不均匀，该随机变量序列中的不确定性越大。本文中，以属性作为随机变量序列，计算数据集当中各属性的信息熵，作为属性权重。 定义1：属性信息熵 AEntropy 为属性中各取值提供的信息量之和，即 H ( A k ) = AEntropy ( A k ) = − ∑ i = 1 n     P ( a i ) log 2 P ( a i ) (1) 其中， A k 表示数据集 D = { A 1 ∪ ⋯ ∪ A k ∪ ⋯ ∪ A m } 中的第k个属性( 1 ≤ k ≤ m )， a i 是属性 A k 值域中的第i个可取值( 1 ≤ i ≤ n )， P ( a i ) 为属性 A k 中取值 a i 出现的概率。 将属性信息熵标准化，得到属性权重 ω ： ω k = AEntropy ( A k ) − AEntropy min AEntropy max − AEntropy min + 1 (2) 其中， AEntropy max 和 AEntropy min 分别为 D = { A 1 ， ⋯ ， A k ， ⋯ ， A m } 中m个属性中属性信息熵的最大值和最小值， ω k 为第k个属性的权重。信息熵的取值范围是 0 ≤ AEntropy ( A k ) ≤ log 2 n ，公式(2)将权重限制到了 1 ≤ ω k ≤ 2 范围内。 对于项集M的信息熵，可由属性联合信息熵来定义。将信息熵推广到两个及两个以上属性上，得到联合信息熵的概念： H ( M ) = H ( A 1 ， A 2 ， ⋯ ， A n ) = − ∑ x ∈ A 1 ∑ x ∈ A 2 ⋯ ∑ x ∈ A n     P ( a 1 ， a 2 ， ⋯ ， a n ) log 2 P ( a 1 ， a 2 ， ⋯ ， a n ) (3) 其中， P ( x 1 ， x 2 ， ⋯ ， x n ) 为n个属性的联合概率分布函数。 当项集扩展到较高维度时，涉及的属性较多，属性联合信息熵所需的计算量将大幅提高。为此，采取一定程度的近似。 项集的属性联合信息熵具有如下性质， max [ H ( A 1 ) ， H ( A 2 ) ， ⋯ ， H ( A n ) ] ≤ H ( A 1 ， A 2 ， ⋯ ， A n ) ≤ H ( A 1 ) + H ( A 2 ) + ⋯ + H ( A n ) (4) 由(4)可得，属性联合信息熵不小于该项集中任一属性的信息熵，不大于该项集中所有属性信息熵之和。可取的项集属性联合信息熵近似值为 H ( M ) * = H ( A 1 ， A 2 ， ⋯ ， A n ) * = max [ H ( A 1 ) ， H ( A 2 ) ， ⋯ ， H ( A n ) ] + ∏ i = 1 n H ( A i ) n (5) 即项集M中的最大属性信息熵加上属性信息熵的几何平均数。 接下来，与公式(2)类似，可计算出项集的权重 ω M 。 3.2. 加权项集相关概念 首先，在异常值处理的应用场景下，对传统的模式挖掘相关概念做一下回顾。 异常值处理的研究对象，数据集D是由有限组对象构成的。其中的每个对象o用 〈 oid ， M 〉 对来表示，其中oid为对象标识符(以自然数表示)，M为项集。而其中的每个项集M又是由项item构成的集合，项为(属性，值)对，表示为 ( A ， v ) ，A为属性，是属性集 A 中的元素，v是A中有限类别值域 dom ( A ) 中的已知值之一。项集中至多包含 A 中某属性值域中的一个元素。若项集I中的项 ( A ， v ) ∈ M ，将对象 o = 〈 oid ， M 〉 在属性A中的值定义为v，记为 v = o [ A ] ，否则令 o [ A ] 未定义。并且，将 I 定义为属性-值对 ( A ， v ) 的集合。 接下来，介绍一些模式挖掘中的基础概念和本文中所用的符号： 支持：若 N ⊆ M ，即N包含于M，则称对象 o = 〈 oid ， M 〉 支持项集N。 包含集：N在D中的包含集，为数据集D中支持N的对象所对应的oid集合，表示为 cov ( N ， D ) 。也就是说，符合某一规则的样本称为对该规则的包含。 cov ( N ， D ) = { i : 1 ≤ i ≤ | D | ∧ N ∈ D i } ，并且，包含集的基数为支持度计数 SupCnt ( N ， D ) = | cov ( N ， D ) | 。 支持度：项集N在数据集 D 中的支持度是包含集中元素个数(即oid)与数据集D中对象个数之比， sup ( N ， D ) = | cov ( N ， D ) | / | D | 。 提升度：基于概率论，提升度的定义源于这样的事实：若 P ( A ∪ B ) = P ( A ) P ( B ) ，则项A的出现完全独立于项B的出现，它们之间没有相关性，此时 lift ( A ， B ) = 1 ；若 P ( A ∪ B ) ≠ P ( A ) P ( B ) ，则项A和项B是依赖的和相关的。A与B间的提升度由下式得出： lift ( A ， B ) = P ( A ， B ) P ( A ) P ( B ) = P ( B | A ) P ( B ) = conf ( A ⇒ B ) sup ( B ) (6) 其中， sup ( B ) 为项B的支持度， conf ( A ⇒ B ) 为置信度， conf ( A ⇒ B ) = P ( A | B ) 。除了 lift ( A ， B ) = 1 的情形外，若 lift ( A ， B ) > 1 ，则项A与项B间是正相关的，意味着其中任一个的出现都蕴含着另一个的出现；若 lift ( A ， B ) < 1 ，则项A与项B间是负相关的，意味着一个的出现可能导致另一个不出现。 垂直数据格式：数据集 D 可表示为垂直数据布局 D v e r t 。 D v e r t = { ( i ， cov ( { i } ， D ) ) | i ∈ I ， cov ( { i } ， D ) ≠ Φ } 。 基于上述理论，得出关于加权项集挖掘的一些概念，如下所述： 定义2：给定项集 M = { m 1 ， m 2 ， ⋯ ， m n } ，项集M的加权支持度计数为 wSupCnt ( M ， D ) = ω M | cov ( M ， D ) | ，其中 | cov ( M ， D ) | 为项集M的支持度计数，项集M的加权支持度为 wSup ( M ， D ) = wSupCnt ( M ， D ) | D | 。 在模式挖掘的算法中，尽管支持度是一种常用的关联度指标，可是并不适合于挖掘反常项集。除了频繁项集之外，数据集中的大多数项集的出现频度都远低于最小支持度阈值，使用过低的最小支持度阈值去挖掘长模式时，往往不能取得预期的效果。在本文中，采用相关分析方法，利用提升度来挖掘反常项集。 给定一组项单独发生的频率，提升度揭示了它们同时出现的可能性。前件和后件之间具有高提升度的规则被认为是最有趣的，提升度不仅仅用于关联规则的挖掘，还可用于约束发现中。继而，在所有单个项之间都具有“完全”的独立性的前提下，可将提升度从规则直接扩展到项集。也就是说，当 wSup ( M ， D ) 远小于 wSup ( { m 1 } ， D ) ∗ ⋯ ∗ wSup ( { m n } ， D ) 时(其中 m 1 ， m 2 ， ⋯ ， m n 为M中的项)，M即被视为不可能出现，将此项集M视为异常。但是，在许多情况下，具有轻微负相关的项目，与具有强烈负相关的项目相比，其提升度可能更低。这样，较大的项集，由于其在数据集中出现的频率相对较低，有被误判为异常的可能。 为了解决上述问题，采用分块独立来代替完全独立的概念。并引入调和提升度，调和提升度不受事务总个数的影响。而且，调和提升度的本质是支持度和提升度的几何平均数，这使得能够兼顾支持度与提升度的优点。在本文中，由于需要挖掘的是低提升度的反常项集，利用调和提升度可以避免较低支持度的项集被当作反常项集，从而提高所发现约束规则的质量。 定义3：给定数据集D，项集M，N为M的非空子集。项集M的加权调和提升度 wHlift ( M ， D ) ，定义为： wHlift ( M ， D ) = max Φ ⊂ N ⊂ M { wsup ( M ， D ) wsup ( N ， D ) ∗ wsup ( M \ N ， D ) } = wSupCnt ( M ， D ) min Φ ⊂ N ⊂ M { wSupCnt ( N ， D ) ∗ wSupCnt ( M \ N ， D ) } (7) 其中， M \ N 为集合减运算，目的是求出N在M中的差集，即所有属于M但不属于N的元素构成的集合。公式(7)的分母为项集M的所有分区方式中加权支持度计数中几何平均数 wSupCnt ( N ， D ) ∗ wSupCnt ( M \ N ， D ) 中的最小值。本文在不引起混淆的情况下，将其简称为提升度。 定义4：加权调和提升度 wHlift ( I ， D ) ≤ λ 的项集称为反常项集。使用提升度做反常项集挖掘时， λ 通常很小，如数据质量较高，可取 λ = 0.01 。 3.3. 加权调和提升度的性质 在提出反常项集挖掘算法之前，先介绍一下加权调和提升度的一些性质。这些性质将用于算法1的优化和对深度优先搜索树的剪枝。 在模式挖掘算法的剪枝策略中，单调性和反单调性经常被加以利用。单调性是指：如果一个项集满足某个规则约束，则这个项集的所有超集也满足该规则约束。而反单调性是指：如果一个项集不满足某个规则约束，则它的所有超集也不能满足该规则约束。在模式挖掘的过程中，如果基于当前模式，某数据项不满足数据反单调性约束，则可以将其剪枝掉。 虽然加权调和提升度既不是单调的，也不是反单调的，它仍然有一些可用于在搜索树中进行大范围剪枝的性质：因为低提升度项集比其子集出现的频率低得多，可利用反常项集的支持度与其子集的支持度之间的关系来进行剪枝操作。 定义5：给定项集M，用 SupCnt M max 表示M及其所有超集L中项 { i } 的最高加权支持度计数，也就是说， SupCnt M max 是深度优先搜索树中分枝M上的最高加权支持度计数，即 wSupCnt M max = max { wSupCnt ( { i } ， D ) } ， ( i ∈ L ， M ⊆ L ) 在定义5的基础上，可将文献 [ 14 ] 中的提升度性质推广到加权项集上： 推论1：给定两项集M和L，若M是L的子集 M ⊂ L ，且L是支持度上限为 λ 的反常项集，则 wSupCnt ( M ， D ) ≥ wSupCnt ( L ， D ) ( wSupCnt M max ∗ λ ) 2 。 当L为反常项集时，可以用 wSupCnt M max 来确定L的子集加权支持度计数的下界。由于反常项集是在数据集中真实存在的，任意一个反常项集的加权支持度计数都符合 wSupCnt ( L ， D ) ≥ 1 。对于反常项集L 的所有子集M，( M ⊂ L )，都有 wSupCnt ( M ， D ) ≥ 1 ( wSupCnt M max ∗ λ ) 2 。这意味着在深度优先搜索过程中，如项集M的支持度计数满足 wSupCnt ( M ， D ) ≥ 1 ( wSupCnt M max ∗ λ ) 2 ，则项集M是可扩展的。此外，推论1还表明反常项集与其子集之间的支持度差距是极小的。 推论2：对于3个项集L、M和N，满足 L ⊇ M ⊃ N ，如果L是反常项集，其加权调和提升度阈值为 ，则 wSupCnt ( N ， D ) − wSupCnt ( M ， D ) ≥ 1 λ − wSupCnt N max > 0 。 特别地，如M为反常项集，则对它的所有子集，推论2中的不等式依然成立。在深度优先搜索过程中，由项集N扩展到项集M时，如果不满足该式，则M和它的所有超集L都应被剪枝掉。此外，推论2还意味着反常项集具有生成元的性质，即为，如果M为反常项集，则对于任何 N ⊂ M ， wSupCnt ( N ， D ) > wSupCnt ( M ， D ) 。由于生成元的所有子集都是生成元，这意味着如果在深度优先搜索过程中遇到非生成元，则可以剪枝掉整个子树。 推论3：给定项集N和M，若N为M的子集(即 N ⊂ M )，则： wHlift ( M ， D ) ≥ wSupCnt ( M ， D ) min Φ ⊂ P ⊂ M { wSupCnt ( P ， D ) ∗ wSupCnt ( N \ P ， D ) } 由于 wSupCnt ( M ， D ) ≥ 1 ，项集M的加权调和提升度与其子集加权支持度计数间的关系为 wHlift ( M ， D ) ≥ 1 wSupCnt ( P ， D ) ∗ wSupCnt ( N \ P ， D ) 。随着项集向更高维度的扩展，项集的基数随之增大，分母 min Φ ⊂ P ⊂ M { wSupCnt ( P ， D ) ∗ wSupCnt ( N \ P ， D ) } 也相应地单调增大。 推论4：如果N是反常项集，则其加权支持度 wsup ( N ， D ) ≤ λ 2 − λ 。