数据挖掘之关联规则

1. 关联规则概述

反映一个事物与其他事物之间的相互依存性和关联性。如果两个或者多个事物之间存在一定的关联关系,那么其中一个事物就能够通过其他事物预测得到。

2.  基本概念

(1)项

对一个数据表而言,表的每个字段都具有一个或多个不同的值。字段的每种取值都是一个项Item。

(2)项集

项的集合称为项集itemset。包含k个项的项集被称为k-项集,k表示项集中项的数目。由所有的项所构成的集合是最大的项集,一般用符号I表示。

(3)事务

事务是项的集合。本质上,一个事务就是事实表中的一条记录。事务是项集I的子集。事务的集合称为事务集。一般用符号D表示事务集/事务数据库。

(4)关联规则

给定一个事务集D,挖掘关联规则的问题就变成如何产生支持度和可信度分别大于用户给定的最小支持度和最小可信度的关联规则的问题。(标准)

(5)支持度(同时,交;元组总数)

若D中的事务包含A∪B的百分比为s,则称关联规则A→B的支持度为s。即:

                    support(A→B )= P(A∪B ) = 包含A和B的元组数/元组总数

(6)可信度(同时,交;条件概率)

若D中包含A的事务同时也包含B的的百分比为c,则称关联规则 A→B 的置信度/可信度为c,即:

                    confidence(A→B )=P(B|A) = 包含A和包含B的元组数/包含A的元组数 = support(A∪B )/support(A)

(7)频繁项集

项集的出现频率是包含项集的事务数,简称项集的频率;

项集满足最小支持度阈值minsup,如果项集的出现频率大于或等于minsup与D中事务总数的乘积;

满足最小支持阈值的项集就称为频繁项集(大项集)。频繁k项集的集合记为Lk;

3. 关联规则挖掘分类

根据不同的标准,关联规则可以分为若干类型:

(1)根据规则所处理的值的类型,关联规则可以分为布尔的和量化的

如果规则考虑的关联是项的在于不在,则它是布尔关联规则;

如果规则描述的是量化的项或属性之间的关联,则她是量化关联规则。量化关联规则中考虑的是项的量是多少。在这种规则中,项或属性的量化值分为区间。

(2)根据规则中数据涉及的维,关联规则可以分为单维的和多维的

如果关联规则中的项或属性每个只涉及一个维,则是单维关联规则;单维关联规则展示的是属性内联系,即同一个属性或维内的关联;

如果规则涉及两个或多个维,则是多维关联规则;多维关联规则展示的是属性间联系,即属性或维之间的关联;

(3)根据规则涉及的抽象层,关联规则可以分为单层的和多层的

有些挖掘关联规则的方法可以在不同抽象层发现关联规则。单层关联规则中的项涉及一个抽象层,多层关联规则中的项涉及多个抽象层

单层单维布尔关联规则是最基本的关联规则。

4. 关联规则的算法

4.1 如何由大型数据库挖掘关联规则?

挖掘关联规则问题可以分解为以下两个问题:

找出存在于事务数据库D中的所有频繁项集。频繁项集的支持度support不小于用户或领域专家给定的最小支持度阈值minsup

利用频繁项集生成强关联规则。这些规则必须满足最小支持度minsup和最小可信度minconf。

经典的关联挖掘算法:

(1)Apriori算法

(2)抽样算法

(3)DIC算法

4.2 发现频繁项集直接的方法?

产生所有可能的项集,并计算它们的支持度;

定理(Apriori)

频繁项集的所有非空子集都必须也是频繁的;

任何非频繁项集的超集一定也是非频繁的:

        非频繁项集的超集可以不用进行测试;

        许多项之间的组合可以去掉(不满足频繁条件)

4.2 Apriori 算法—挖掘单维布尔关联规则

Apriori算法是根据有关频繁项集性质的先验知识而命名的。该算法使用一种逐层搜索的迭代方法,利用k-项集探索(k+1)项集;

具体做法:

对于所研究的事务数据库D,首先找出频繁1-项集的集合,记为L1;再利用L1找频繁2-项集的集合L2;再利用L2找L3。。。如此下去,直到不能找到频繁k-项集为止。找每个Lk需要一次数据库扫描。

如何将Apriori性质用于算法?

如何实现Lk-1找Lk?

连接步:为找Lk,通过Lk-1与Lk-1连接产生候选k-项集的集合。该候选集的集合记做Ck,执行Lk-1与Lk-1的连接:如果他们前(k-2)个项相同,则可连接;

剪枝步:任何非频繁的(k-1)项集都不可能是频繁K-项集的子集。因此,剪枝。

算法:

《数据挖掘之关联规则》 Apriori(a片日哦日)算法

《数据挖掘之关联规则》

《数据挖掘之关联规则》

5. 关联规则的生成

得到所有的频繁项集以后,可以按照下面的步骤生成关联规则:

(1)对于每个频繁项目集I,生成其所有的非空子集;

(2)对于I的每一个非空子集x,计算conference(x),如果confidence(x)> minconfidence,那么,“x→ (I-x)”成立;

(3)由于规则由频繁项集产生,每个规则都自动满足最小支持度。

频繁项集的挖掘是算法的瓶颈

        Apriori算法有两个致命的性能瓶颈:

            A. 多次扫描事务数据库,需要很大的I/O负载

            B.可能产生庞大的候选集

瓶颈产生的原因:候选集的产生和判断过程

能不能避免产生候选项集?

频繁模式增长(frequent-pattern growth)

频繁模式增长,简称FP-增长

策略:

将提供频繁项集的数据库压缩到一颗频繁模式树(FP树),但仍然保留项集关联信息;

将这种压缩后的数据库(FP树)分成一组条件数据库(若干子树),每个关联一个频繁项,并分别挖掘每个条件数据库(子树),从而获得频繁项。

优点:

(1)完备

保存了用来挖掘频繁项集的全部信息;

任何事物包含的长模式不会被截断;

(2)压缩

减少了不相关信息—非频繁项已经被过滤

项以出现次数降序排列:越频繁的项月容易被共享

FP树中包含的结点数目不会比数据库中包含的项的数据多

    原文作者:七八音
    原文地址: https://www.jianshu.com/p/b960b8c6a0b4#comments
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞