1、关联规则分析是数据挖掘中最活跃的研究方法之一
2、是揭示数据内在结构特征的重要手段(找出各项之间的关联关系,这种关系并没有在数据中直接表示出来)
3、分为:简单关联关系或序列关联关系
4、核心体现形式:关联规则(简单关联规则或序列关联规则)
二、简单关联关系1、事务(简单关联关系的分析对象):由事务标识(TID)和项目集合X组成。
| TID | 项集X |
| 1 | ACD |
| 2 | BCE |
| 3 | ABCD |
| 4 | BE |
(1)事务标识是确定事务的唯一标识
(2)项集是一组项目的集合,如上表为4项集
(3)项集的出现频率是所有包含项集的事务计数,又称作绝对支持度或支持度计数
2、简单关联规则: X→Y(S=s%,C=c%)
X成为规则的前项,Y成为规则的后项,S=s%表示规则支持度为s%, C=c%表示规则置信度为c%
(1)含义:由c%的把握程度相信有前项则有后项,该关联规则的使用性为s%,规则支持度和置信度是对关联规则的评价测度
(2)例:面包→牛奶(S=85%,C=90%)
性别(女) ∩ 收入(>5000)→品牌(A)(S=80%,C=85%)
(3)有效性评价:
①规则置信度:反应X出现条件下Y出现的可能性
②规则支持度:项目X与Y同时出现的概率
③前项支持度、后项支持度
④最小支持度、最小置信度
a.同时满足最小支持度和最小置信度阈值的规则称作有效规则(或强规则)
b.一个有效的简单关联规则应具有较高的置信度和较高的支持度
c.规则置信度、规则支持度、前项支持度、后项支持度与统计度中的列联表密切相关
(4)实用性评价:
①简单关联规则应具有实际意义和指导意义
a.规则的提升度:规则置信度与后项支持度之比,反应了项目X的出现对项目Y出现的影响程度。
b.有实用价值的简单关联规则应是规则提升度大于1,意味X的出现对Y 的出现有促进作用,规则提升度越大越好。
三、常用算法以超市销售数据为例,提取关联规则的最大困难在于当前存在很多商品时,可能的商品组合数目会达到令人望而却步的程度,因而各种关联规则分析的算法从不同方面入手减小可能的搜索空间的大小以及减小扫描数据的次数。
| 算法名称 | 算法描述 |
| Apriori | 关联规则最常用也是最经典的挖掘频繁项集的算法,其核心思想是通过 连接产生候选项及其支持度然后通过剪枝生成频繁项集。 |
| FP-Tree | 针对Apriori算法的固有的多次扫面事务数据集的缺陷,提出的不产生候选频繁项集的 方法。Apriori和FP-Tree都是寻找频繁项集的算法。 |
| Eclat算法 | Eclat算法是一种深度优先算法,采用垂直数据表示形式,在概念格理论的基础上利用 基于前缀的等价关系将搜索空间划分为较小的子空间。 |
| 灰色关联法 | 分析和确定各因素之间的影响程度或是若干个子因素(子序列)对主因素(母序列) 的贡献度而进行的一种分析方法。 |
Ⅰ.找出存在于事务数据集中的最大频繁项集
Ⅱ.再利用得到的最大频繁项集与预先设定的最小置信度阈值生成强关联规则
1、搜索频繁项集
①频繁项集:对包含项目A的项集C,其支持度大于等于用户指定的最小支持度,称C(A)为频繁项集。
②频繁项集的所有非空子集也必须是频繁项集
③向不是频繁项集 I 的项集中添加事务A,新的项集一定也不是频繁项集
④采用迭代方式逐层找到上层的超级,并在超级中发现频繁项集。如此反复,直到最顶层得到最大频繁项集为止
迭代的两个步骤:
a.产生候选集Ck
b.修剪候选集Ck
在这个过程中连接步和剪枝步互相融合,最终得到最大频繁项集 。 连接步:连接步的目的是找到K项集 剪枝步:剪枝步紧接着连接步,在产生候选项Ck的过程中起到减小搜索空间的目的2、生成强关联规则
3、Apriori算法的R语言实现
①建立事务数据集对象:事实表和事务表
transactions类对象
read.transactions(file="文本文件名", format="组织形式",cols="数值或字符向量",sep="分割符")
②搜索频繁项集,生成有效的简单关联规则
apriori(data=transactions类对象名, parameter=NULL, appearance=NULL ) size(x=关联规则类对象名) sort(x=关联规则类对象名, decreasing=TRUE/FALSE, by=排序依据)
③筛选关联规则
subset(x= 关联规则类对象名,subset=条件)
④可视化频繁项集
plot(x=频繁项集类对象名,method="graph",control=list(main=图形主标题))
⑤可视化简单关联规则
plot(x=关联规则类对象名,method=图类型名,control=控制参数)



