关联规则的基本思想
1. 相关定义
在学习关联规则之前,首先要知道一大堆的定义。
Num | 鸡蛋 | 牛奶 | 啤酒 | 尿布 | 饮料 |
---|---|---|---|---|---|
T1 | 0 | 1 | 1 | 0 | 0 |
T2 | 1 | 1 | 0 | 0 | 1 |
T3 | 0 | 1 | 0 | 1 | 0 |
每一行是购买记录,每一列是对应物品。
1. 定义1.1 项和事务,事务宽度
每一列看作一个项,每一行看作一个事务。一个事务有几个项,事务的宽度就是多少。T1的宽度是2,T2的宽度是3 ,T3的宽度是2。
2. 定义1.2 项集
数学定义是一大串公式,我们跳过。但是理解很简单,项集简称项,用来描述事务。例如T1有两个元素,事务T1就是2项集,T2是3项集,T3是2项集。当然,项集可以是空的。
3. 定义1.3 支持度,支持数
简单理解,支持数就是计数,支持度就是所占百分比。例如,表格中鸡蛋出现的次数为1,那么它的支持数就是1。而事务总数为3,因此鸡蛋的支持度是1/3。同理,牛奶的支持数为3,支持度为3/3=1。支持度定义如下:
支持度 :support(X)=count/|T|
这里说的是单维度,如果是多维度,X就是并集。例如:
support(鸡蛋∩饮料)=count/|T|=1/3
support(鸡蛋∩啤酒)=count/|T|=0
4. 定义1.4 置信度
两个项集X,Y之间的概率关系。大家学过概率论应该知道条件概率,置信度就是一种条件概率。一般表达式如下:
Conf(X ⇒ Y)=0.6
意为在X发生的条件下,Y发生出现的概率式60%。在这个例子中,
Conf(牛奶⇒ 鸡蛋)=1/3
Conf(鸡蛋⇒ 牛奶)=1
Conf(鸡蛋⇒ 啤酒)=0
多维情况下 同支持度
5. 定义1.5 关联规则
关联规则,关联和规则,定义为形如X ⇒ Y的蕴涵式,其中X,Y均为项集。在使用的过程中,它只是蕴含式的形式。至于到底有什么规则,需要我们的挖掘。
6. 定义1.6 频繁项集
重点来了,项集前面说了,就是列。频繁项集就是列中的项集大于某个概率,这个概率我们一般定义为最小支持度。设定最小支持度为50%,则只有牛奶这项是频繁的,频繁项集为{‘牛奶’}。若最小支持度为20%,则所有项均是频繁的,频繁项集为{‘鸡蛋’,‘牛奶’,‘啤酒’,‘尿布’,‘饮料’}。因为是5项,所以称之为频繁5-项集。
7. 定义1.7 强关联规则
项集X,Y同时满足最小支持度和最小置信度,就是强关联,反之弱关联。同时满足这两种情况,说明两者的相关性非常高。
2.原理
1.先验概率
学过概率论大家都知道,概率有先验概率,也有后验概率。关联规则所用的概率就是先验概率,重要的两个公理:
- 如果一个非空项集是频繁的,则它的所有子集一定也是频繁的;
- 如果项集是非频繁的,则它的所有超集也一定是非频繁的。
2.剪枝和连接
上面两条的公理有什么用呢?挖掘频繁项集的时候使用。Apriori算法的第一步就是剪枝,剪枝就是删除概率不满足的项,这里的剪枝和深度学习的剪枝类似,但是不相同。算法的过程是频繁1-项集,2-项集,…n-项集。剪枝一次后需要连接,然后剪枝第二次,然后再连接,再剪枝,再连接…直到最后挖掘出所有的频繁项集。具体的过程会在后面的算法种详细介绍。