第六章,FrequentPattern,挖掘频繁模式
(1)主要问题是,寻找经常在一起出现的itemset。有多经常?使用约束指标:支持度(support),置信度(confidence)。一些有意思的特性:如果一个itemset是frequent的,那么它的subset也是frequent的。由于subset实在太多了,我们引入closedfrequentitemset概念。
(2)算法Frequentpatternmining的算法:Apriori算法:先算size为1的频繁itemsetL1,然后由L1构建L2,再逐次往上构建。其中,构建Lk只需要L(k-1)就可以了。源于这么一个性质:如果一个集合不能通过测试(足够frequent),则它的所有超集也不能通过测试。这属于一种反单调性(antimonotone)。这个算法看起来还是很直接很暴力的,但是它work而且makesense。原始的算法效率低,可以通过诸多方法优化。一个性能更好的算法FrequentPatternGrowth(FPGrowth)。构建频繁模式树,使用最不频繁的项作后缀,降低搜索开销。
Apriori和FPGrowth都是使用水平数据集操作的,{Transaction_ID:itemset}。数据可以用另一种方向来表示:{item:Transaction_ID_Set},右边是所有包含这个item的transactions,称为垂直数据格式,verticaldataformat。使用垂直数据格式也可以进行frequentpatternmining,其中主要是进行集合取交的运算,为了提高效率,可使用差集的表示技术。
(3)模式评估只使用support和condifence会有误导性。书中提出了更多的相关性度量:卡方,提升度,全置信度,最大置信度,Kluc,余弦。我们需要注意零事务(null-transaction),是不包含任何考察项的事务。有的度量指标受零事务影响很大,不是null-invariant零不变量,全置信度,最大置信度,Kluc,余弦是null-invariant,卡方和提升度则不是。书中还引入了不平衡比。总之,由于大型数据集常有大量的null-transaction,所以我们要考虑零不变性,以上各种度量中,推荐Kluc和不平衡比配合使用。
