第九章 频繁模式分类

1、频繁模式

        频繁模式显示了频繁地出现在给定数据集上的属性——值对之间的有趣联系。

        例如,我们可能发现属性——值对age=youth和credit=OK出现在20%的购买计算机的AllRlectronics顾客元组中。

        我们可以把每个属性——值对看作一个,因此搜索这种频繁模式称作频繁模式挖掘频繁项集挖掘

2、支持度、置信度

        下面是从数据集D中挖掘的一个关联规则,显示了它的置信度和支持度:


        其中,“^”表示逻辑“AND“。意味着,D中20%的顾客是青年、信誉为Ok,并且属于类buys_computer=yes ;D中身为青年人并且信誉度为OK的顾客中,93%属于类buys_computer=yes

       设D是元组的数据集合。D中每个元组用n个属性A1,A2,…,An和一个类标号属性Aclass描述。所有的连续属性都被离散化并按分类(或标称)属性处理。项p是一个形如(Ai,v)的属性——值对,其中Ai是属性,取值v。

        数据元组X=(x1,x2,…,xn)满足项p=(Ai,v),当且仅当xi=v,其中xi是X的第i个属性(Ai)的值。

       在挖掘用于分类的关联规则时,我们只对形如p1^p2^…pl=>Aclass=C的关联规则感兴趣,其中规则的前件是项的合取,与一个类标号C相关联。

       置信度:对于一个给定的规则R,D中满足该规则前件也具有类标号C的元组所占的百分比称作R的置信度。从分类角度看,这类似于规则的准确率。

       支持度:D中满足规则前件并具有类标号C的元组所占的百分比称作规则R的支持度。

3、关联规则分类的步骤

        一般而言,关联规则分类包括以下步骤

      (1)挖掘数据,得到频繁项集,即找出数据中经常出现的属性——值对。

      (2)分析频繁项集,产生每个类的关联规则,它们满足置信度和支持度标准。

      (3)组织规则,形成基于规则的分类器。

4、关联规则分类算法

        关联规则分类方法的不同:挖掘频繁项集所用的方法、如何将被分析的规则导出并用于分类。

4.1  CBA算法

        最早最简单的关联分类算法时基于分类的关联(Classification Based on Association,CBA)。

        CBA使用迭代方法挖掘频繁项集,类似于Apriori算法。找出满足最小置信度和支持度阈值的规则的完全集后,然后分析,找出包含在分类器中的规则。

        CBA使用一种启发式方法构造分类器,其中规则按照它们的置信度和支持度递减优先级排序。(1)如果一组规则具有相同的前件,则选取具有最高置信度的规则代表该集合。(2)在对新元组分类时,使用满足该元组的第一个规则对它进行分类。(3)分类器还包含一个默认规则,具有最低优先级,用来为不能被分类器中其他规则满足的新元组指定默认类。

        这样,构成分类器的规则的集合形成一个决策表。

        一般而言,实验表明CBA在大量数据集上比C4.5更准确。

4.2  CMAR算法

        基于多关联规则的分类(Classificationbased on Multiple Association Rules,CMAR)在频繁项集挖掘和分类器构造方面都不同于CBA。

        CMAR采用FP—Growth算法的变形来发现满足最小支持度和最小置信度阈值的规则的完全集。CAMR使用一种加强的FP-树,记录满足每个频繁项集的元组的类标号分布。这样,它可以把规则产生与频繁项集挖掘合并成一步。

        CMAR还使用另一种树结构来有效地存储和提取规则,并根据置信度、相关度和数据库覆盖率对规则剪枝。当规则插入该树时就触发规则剪枝策略。例如,给定两个规则R1和R2,如果R1的前件比R2更一般,并且conf(R1)>=conf(R2),则剪去R2。其基本原理是:如果规则存在具有更高置信度的更泛化的版本,则可以剪去具有低置信度的更特殊化的规则。

         “如果多个规则可用,我们使用哪一个?”作为分类法

        假设多个规则满足或匹配X,这些规则形成一个集合S。使用哪个规则确定X的类标号?CMAR在做出它的类预测时考虑多个规则。它根据类标号将规则分组。在一个组中的所有规则都具有相同的类标号,而在不同组中的规则具有不同的类标号。CMAR使用加权的卡方度量,根据组中规则的统计相关性找出“最强的”规则组。然后把X的类标号指派为最强的组的类标号。这样,在预测新元组的类标号时,它考虑多个规则,而不只是一个具有最高置信度的规则。

        实验表明,CMAR比CBA的平均准确率稍高。它的运行时间、可伸缩性和内存使用都更有效。

4.3  CPAR算法

        CPAR(Classificationbased on Predictive Association Rules,基于预测关联规则的分类)采用了不同方法产生规则,基于一种称作FOIL的分类规则产生算法。

        FOIL构造规则来区别正元组(如类buys_computer=yes的元组)和负元组(如类buys_computer=no的元组)。对于多类问题,将FOIL用于每一个类。也就是说,对于类C,类C的所有元组都看做正元组,而其余的都看做负元组。产生规则以区分C类和其他类的元组。每当产生一个规则时,就删除它满足(或覆盖)的正样本,直到数据集合中所有的正元组都被覆盖。这样,产生的规则更少,CPAR放宽了这一步,允许被覆盖的元组留下并被考虑,但是降低它们的权重。对每个类重复该过程。结果规则被合并在一起,形成分类器的规则集。

        在分类时,CPAR采用多少有些不同于CMAR的多规则策略。如果多个规则满足新元组X,则类似于CMAR,这些规则将按类分组。然而,CPAR根据期望准确率,使用每组中的最好的k个规则预测X的类标号。通过考虑组中最好的k个规则而不是所有的规则,这避免了较低秩规则的影响。

        在大量数据集上,CPAR的准确率与CMAR接近。然而,由于CPAR产生的规则比CMAR少得多,对于大型训练数据集,CMAR有效得多。

你可能感兴趣的:(数据挖掘)