首页 > 代码库 > 关联规则1

关联规则1

关联规则

?

  1. 项与项集

数据库中不可分割的最小单位信息称为项(或项目),用符号技术分享表示,项的集合称为项集。设集合技术分享是项集,技术分享中项目的个数为技术分享,则集合技术分享称为技术分享-项集。例如,集合{啤酒,尿布,奶粉}是一个3-项集。

  1. 事务

技术分享是由数据库中所有项目构成的集合,事务数据库技术分享是由一系列具有唯一标识的事务组成的。每一个事务技术分享包含的项集都是技术分享的子集。例如,顾客在商场里同一次购买多种商品,这些购物信息在数据库中有一个唯一标识,用以表示这些商品是同一顾客同一次购买的,称该用户的本次购物活动对应一个数据库事务。

  1. 项集的频数(支持度计数)

包括项集的事务数称为项集的频数(支持度计数)。

  1. 关联规则

关联规则是形如技术分享的蕴含式,其中技术分享分别是技术分享的真子集,并且技术分享技术分享称为规则的前提,技术分享称为规则的结果。关联规则反映技术分享中的项目出现时,技术分享中的项目也跟着出现的规律。

  1. 关联规则的支持度(support)

关联规则的支持度是交易集中同时包含技术分享技术分享的交易数与所有交易数之比,它反映了技术分享技术分享中所含的项在事务集中同时出现的频率,记为support 技术分享,即

????support技术分享support技术分享????????????

(1)

?

  1. 关联规则的置信度(confidence)

关联规则的置信度是交易集中包含技术分享技术分享的交易数与所有交易数中包含技术分享的交易数之比,记为技术分享,置信度反映了包含技术分享的事务中出现技术分享的条件概率。即

????????????技术分享????????????

(2)

?

3

?

  1. 最小支持度与最小置信度

通常用户为了达到一定的要求,需要指定规则必须满足的支持度和置信度阈值,此两个值称为最小支持度阈值(min_sup)和最小置信度阈值(min_conf)。其中,min_sup描述了关联规则的最低重要程度,min_conf规定了关联规则必须满足的最低可靠性。

  1. 强关联规则

技术分享技术分享,称关联规则技术分享为强关联规则,否则称技术分享为弱关联规则。通常所说的关联规则一般是指强关连规则。

  1. 频繁项集

对项目集技术分享,在事务数据库技术分享中所有满足用户指定的最小支持度的项目集,即不小于技术分享技术分享的非空子集,称为频繁项目集或大项目集。

  1. 项目集空间理论

Agrawal等人建立了用于事务数据库挖掘的项目集空间理论。理论的核心为:频繁项目集的子集仍是频繁项目集;非频繁项目集的超集是非频繁项目集。

?

Apriori算法原理

  1. Apriori算法的基本思想

Apiori算法的基本思想是通过对数据库的多次扫描来计算项集的支持度,发现所有的频繁项集从而生成关联规则。Apriori算法对数据集进行多次扫描。第一次扫描得到频繁1-项集的集合技术分享,第技术分享次扫描首先利用第技术分享次扫描的结果技术分享来产生候选技术分享-项集的集合技术分享,然后在扫描的过程中确定技术分享中元素的支持度,最后在每一次扫描结束时计算频繁技术分享-项集的集合技术分享,算法在当候选技术分享-项集的集合技术分享为空时结束。

  1. Apriori算法产生频繁项集的过程

产生频繁项集的过程主要分为连接和剪枝两步:

  1. 连接步。

为找到技术分享,通过技术分享与自身作连接产生候选技术分享-项集的集合技术分享

技术分享技术分享技术分享中的项集。记技术分享表示技术分享的第技术分享个项。Aprior算法假定事务或项集中的项按字典次序排序;对于技术分享项集技术分享,对应的项排序为技术分享。如果技术分享的元素技术分享技术分享的前技术分享个对应项相等,则技术分享技术分享可连接。即如果技术分享时,技术分享技术分享可连接。条件技术分享可以保证不产生重复,而按照技术分享技术分享次序寻找频繁项集可以避免对事务数据库中不可能发生的项集所进行的搜索和统计工作。连接技术分享技术分享产生的结果项集为技术分享

  1. 剪枝步。

由Apriori算法的性质可知,频繁技术分享-项集的任何子集必须是频繁项集。由连接生成的集合技术分享需要进行验证,去除不满足支持度的非频繁技术分享-项集。

  1. Apriori算法的主要步骤
    1. 扫描全部数据,产生候选1-项集的集合技术分享
    2. 根据最小支持度,由候选1-项集的集合技术分享产生频繁1-项集的集合技术分享
    3. 技术分享,重复执行步骤(4)、(5)、(6)。
    4. 技术分享执行连接和剪枝操作,产生候选技术分享-项集的集合技术分享
    5. 根据最小支持度,由候选技术分享-项集的集合技术分享,产生频繁技术分享-项集的集合技术分享
    6. 技术分享,则技术分享,否则跳往步骤(4);否则,跳往步骤(7)。
    7. 根据最小置信度,由频繁项集产生强关联规则,结束。
  2. Apriori算法描述

输入:数据库技术分享,最小支持度阈值技术分享

输出:技术分享中的频繁集技术分享

  1. Begin
  2. 技术分享=1-频繁项集;
  3. 技术分享do begin
  4. 技术分享{调用函数技术分享通过频繁技术分享-项集产生候选技术分享-项集}
  5. for所有数据库技术分享 do begin {扫描技术分享用于计数}
  6. 技术分享{用subset找出该事务中候选的所有子集}
  7. for所有候选集技术分享 do
  8. 技术分享
  9. end;
  10. 技术分享
  11. end
  12. end
  13. Return 技术分享 {形成频繁项集的集合}

?

Apriori算法实例分析

?

表1 数据库的事务列表

事务

商品ID的列表

事务

商品ID的列表

T100

技术分享

T600

技术分享

T200

技术分享

T700

技术分享

T300

技术分享

T800

技术分享

T400

技术分享

T900

技术分享

T500

技术分享

??

?

设最小支持度计数为2,即min_sup=2,利用Apriori算法产生候选项集及频繁项集的过程如下所示。

  1. 第一次扫描

扫描数据库技术分享获得每个候选项的计数:

技术分享 ????????????????????????????????????????????技术分享

项集

支持度计数

技术分享

6

技术分享

7

技术分享

技术分享6

技术分享

2

技术分享

2

项集

支持度计数

技术分享

6

技术分享

7

技术分享

6

技术分享

2

技术分享

2

?

?

技术分享

?

?

?

?

?

?

?

?

?

?

由于最小事务支持数为2,没有删除任何项目。可以确定频繁1-项集的集合技术分享,它由具有最小支持度的候选1-项集组成。

  1. 第二次扫描

为发现频繁2-项集的集合技术分享,算法使用技术分享产生候选2-项集的集合技术分享。在剪枝步没有候选从技术分享中删除,因为这些候选的每个子集也是频繁的。

?

  1. 第三次扫描
  2. 第四次扫描

关联规则1