【摘要】:如果后件“C”只有类别值,自然可以想到使用此规则进行分类。典型的关联规则分类算法有CBA、CMAR和CPAR[99]。CBA是由Liu B等人提出的,是最早的也是最简单的关联规则分类算法[99]。在一些典型的分类数据集的测试中,CBA算法的实验精度高于C 4.5。但与CMAR不同的是,CPAR只选择每组中的“最好的”K个规则进行分类计算。可见,关联规则分类算法是一类基于规则的算法,其基础是频繁项目的与运算。
关联规则是形如“A→C”的规则,有两个指标:属性集的支持度Support和规则的置信度Confidence。如果后件“C”只有类别值,自然可以想到使用此规则进行分类。典型的关联规则分类算法有CBA、CMAR和CPAR[99]。
CBA是由Liu B等人提出的,是最早的也是最简单的关联规则分类算法[99]。首先,根据指定的支持度阈值和置信度阈值,在训练集中找出所有形如“A→C”的关联规则,这类规则被称为“类关联规则”(Class Association Rules,CARs),其特点是后件只包含类标号,这样产生的CARs作为初始的规则集。CBA算法中这部分采用的方法类似于Apriori。之后进行如下的一系列的操作,以得到最终的规则集。
(1)初始规则集中的规则按置信度、支持度和产生顺序排序,形成一层次结构。
(2)使用类似序列覆盖的方法,将层次规则集作用于训练集,使最终规则覆盖训练集。对于排序在后的规则,如果其没有提高测试精度或者出错率增高了,则剪枝。
(3)在经过剪枝的规则集中加入训练集中的多数类作为默认的类别。
最终规则集就是一张决策表。测试时一个记录被判定为属于在列表中第一次遇到的满足其前件的规则的类别,当此记录不满足所有规则的前件时,判定其为默认类别。在一些典型的分类数据集的测试中,CBA算法的实验精度高于C 4.5。
W Li等人进一步提出了CBA的改进算法CMAR[114],其与CBA的有3点不同之处:
1)在挖掘CARs时采用的是FP-growth算法。
2)从初始规则集构造最终分类规则集时的策略不同。CMAR将规则按置信度、相关性和覆盖率进行排序,形成层次结构。每一记录在将插入此结构时,均进行剪枝计算。特殊性更强、置信度更低的规则将被删除。例如,对于规则R 1和R 2,如果R 1的前件比R 2的前件更通用,并且R 1的置信度更大,则R 2将被剪除。CMAR还以X2验证测试一规则的前件与后件,当它们不是正相关时,此规则被剪除。
3)分类时,当一记录X满足若干规则的前件,CBA将用置信度最高的规则来判定X。CMAR则将这些规则按后件的类别分组,计算各组规则的X2关联强度,用关联最强的组来判定X。
CMAR实验精度略高于CBA,其时间效率、可扩展性和内存利用率均比CBA高。
CBA和CMAR均采用频繁项挖掘的方法来产生初始的规则集,根据给定的支持度和置信度,这样产生的规则数据大,在后面要进行大量剪枝工作,从而损失了效率。CPAR基于FOIL算法(一种基于精度的算法)产生规则[115]。对每一类在训练集中找出其正类和反类(其余的类),计算各规则FOIL的值,找出得值高的规则加入规则集。同时,覆盖的记录不直接删除,而是降低其权重,以便为其他类的FOIL计算提供基数。进行分类时,当一记录满足若干规则的前件,CPAR将这些规则按后件的类别分组。但与CMAR不同的是,CPAR只选择每组中的“最好的”K个规则进行分类计算。CPAR与CMAR分类精度相当,但CPAR效率高于CMAR,特别是在大数据集的分类过程中。
可见,关联规则分类算法是一类基于规则的算法,其基础是频繁项目的与运算。
相关推荐