基本概念和算法
一般应用于购物篮事务( market basket transaction),表中每一行对应一个事务,包含一个唯一标识TID和给定顾客购买的商品的集合。
TID | 项集 |
1 | {面包,牛奶} |
2 | {面包,尿布,啤酒,鸡蛋} |
3 | {牛奶,尿布,啤酒,可乐} |
4 | {面包,牛奶,尿布,啤酒} |
5 | {面包,牛奶,尿布,可乐} |
关联分析用于发现隐藏在大型数据集中的有意义的联系,例如上表可以提取如下规则:{尿布}→{啤酒}
二元表示:购物篮数据可以转换成二元形式,其中每行对应一个事务,而每列对应一个项。项可以用二元变量表示,如果项在事务中出现,则它的值为1,否则为0。因为通常认为项在事务中出现比不出现重要,从而项是非对称二元变量。
TID | 面包 | 牛奶 | 尿布 | 啤酒 | 鸡蛋 | 可乐 |
1 | 1 | 1 | 0 | 0 | 0 | 0 |
2 | 1 | 0 | 1 | 1 | 1 | 0 |
项集和支持度计数:令是购物篮数据中所有项的集合,而
是所有事务集合。每个事务
包含的项集都是
的子集。如果一个项集包含
个项,那么称它为
项集。
项集的支持度计数
表示为:
关联规则:关联规则是形如的蕴含表达式,其中
和
是不相交的项集,即
。关联规则的强度可以用它的支持度和置信度度量。
支持度(s):
置信度(c):
频繁项集:满足最小支持度阈值的所有项集,这些项集称为频繁项集
规则产生:从频繁项集中集中提取所有高置信度的规则,这些规则称为强规则
频繁项集产生
1、枚举法:确定每个候选项集的支持度计数
需要将每个候选项集和每个事务进行比较,如果项集出现在事务中,那么候选项集的支持度计数增加。缺点是这种方法的开销特别大。
2、先验原理:如果一个项集是频繁的,则它的所有子集也一定是频繁的
3、Apriori算法的频繁项集产生:第一个关联规则的挖掘算法,初始时每个项都被看做是候选1-项集,对他们的支持度计数后仅用频繁1-项集产生候选2-项集,然后得到频繁2-项集。不断利用k-频繁项集产生候选k+1候选相机再得到频繁k+1项集
该方法有两个重要的特点:第一,它是逐层算法,从频繁1-项集到最长的频繁项集,它每次遍历项集格中的一层;第二,它使用产生-测试策略来发现频繁项集【设计算法常用的思想】
3、候选的产生和剪枝
(1)蛮力方法:把所有的k-项集都看做可能的候选,然后使用候选剪枝除去不必要的候选
(2)方法:利用频繁(k-1)项集和频繁1-项集产生频繁k-项集
(3)方法:当且仅当两个频繁(k-1)-项集的前k-2项都相同,则合并为一个频繁k-项集
4、Apriori算法的计算复杂度:
(1)支持度阈值:降低支持度阈值通常会导致更多的频繁项集
(2)项数(维度):项数增加需要更多的空间来存储项的支持度计数
(3)事务数
(4)事务的平均宽度
规则产生
介绍如何从产生的频繁项集中产生提取关联规则。关联规则的取法是:将项集划分为两个非空子集
和
,使得
满足置信度阈值(因为这样的规则是由频繁项集产生的,从而必然满足支持度阈值)
关联模式的评估
关联分析算法具有产生大量模式的潜在能力。由于真正的商业数据库的数据量和维度都非常大,从而能够产生数以百计的模式,而其中很大一部分可能是我们并不感兴趣的。因为“一个人的垃圾可能是另一个人的财富”,从而建立一组广泛接受的评价关联模式的标准是非常重要的。
0、思考的维度:
一方面可以通过统计论据建立。涉及相互独立的项或者覆盖少量事务的模式被认为是不令人感兴趣的,因为它们可能反映数据中的伪联系。这些模式可以使用客观兴趣度度量来排除。客观兴趣度度量的例子包括支持度、置信度和相关性。
另一方面可以通过主观论据建立。即模式被主观认为是无趣的,除非能够揭示意想不到的信息或者提供导致有益的行动的有用信息。
1、兴趣度的客观度量
之前评价一个关联规则的方式是支持度-置信度框架。现有的关联规则的挖掘算法需要使用知乎瓷都和置信度来除去没有意义的模式。支持度的缺点在于许多潜在的有意义的模式包括支持度小的项而被删除。而置信度因为忽略了规则后件中项集的支持度而可能存在误导。从而我们引入兴趣因子。
提升度(Lift):。它计算规则置信度和规则后件中项集的支持度之间的比率。对于二元变量,提升度等价于另一种,称为兴趣因子的客观度量,定义如下:
兴趣因子等于1则A和B是独立的,大于1则正相关,小于1则负相关。
兴趣因子的局限性:兴趣因子不一定准确,需要通过相依表辅助判断。