Apriori算法相关基础知识学习过程

3月31日
六、关联分析:基本概念和算法
(一)、概念:
1、二元表示:用0表示存在,用1表示不存在。也称二元0/1表示。
2、项集:包含0个或者多个项的集合称为项集。一个项集包含K个项,称为K-项集。
3、事务:包含同类数据的项集的集合(按特定性质的分类)。事务的宽度定义为事务中出现项的个数。
4、支持度系数:包含特定项集的事务个数。σ(X)表示。
5、关联规则:关联规则是形如X→Y的蕴含表达式,其中X,Y是不相交的项集,即X∩Y=∅。
6、支持度和置信度:用来表示关联规则的强度。
(1)支持度的形式定义:
s(X→Y):σ(X∪Y)/N;(N为事务的总个数)
(2)置信度的形式定义:
c(X→Y):σ(X∪Y)/σ(X);
(3)支持度和置信度的意义:
支持度是此类关联规则在总事务中出现的频率,通常用来删去那些无意义的规则(支持度低的关联规则)。
置信度是Y中包含X的事务的,即X与Y的关联程度。
7、定义:关联规则发现
给定事务集合T,关联规则发现是指找出支持度大于等于minsup并且置信度大于等于minconf的所有规则,其中minsup和minconf是对应的支持度和置信度阈值。
8、由于计算每个可能规则的支持度和置信度的代价很高,总数为R=3ⁿ-2*2ⁿ+1,其中有很多规则有相同的支持度,若其中一个小于minsup,则其他的一定也小于,他们的置信度也没有必要再计算一遍。
例如:
{A,B}→{C},{A,C}→{B},{B,C}→{A},{A}→{B,C},{B}→{A,C},{C}→{A,B}。
所以,引入一种策略,即,将关联规则挖掘任务分解为频繁项集产生和规则产生两部分。
(二)频繁项集产生
1、定义:发现满足小于minsup的所有项集,这些项称作频繁项集。
2、格结构:格结构就是关联网,常常被用来枚举所走可能的项集。
3、候选项集:没有被剪枝的项集。
4、发现频繁项集的一种原始方法是确定格结构中每个候选集项的支持度计数,也是目前能够做到的唯一方法。
这个方法就是对候选项集和每个事务进行遍历的计算,算出支持度。其中,参数为事务的个数N,候选项集的个数M,事务的宽度w,而N,w是不能改变的,所以,优化这个方法的最好办法就是(1)减少候选项集(2)减少候选项集与事务的比较次数。
5、定理:先验定理:如果一个项集是频繁的,则他的所有子集也一定是频繁的。相反,如果一项集是非频繁的,则他的超集也一定是非频繁的。(由于支持度度量是具有反单调性。当然,任何具有反单调性的度量都能够直接结合到挖掘算法中,对候选项集进行有效的剪枝。)
6、频繁项集产生的方法:Apriori算法
(1)算法的大致内容为通过遍历项目格的各个层,一层层的进行剪枝,被剪掉的项集的超集不会出现在后续的项集格的层中,最终得到所需项数的频繁项集。
(2)算法步骤:
首先,通过单遍扫描数据集,确定每个项的支持度,得到所有的频繁1-项集的集合。
接下来,使用上一次迭代下来的频繁k-1项集,产生新的候选k-项集。(使用apriori-gen函数实现)
然后,对候选项集的支持度计数。(使用子集函数来确定)
最后,通过比较每一候选项集的支持度计数,删去支持度计数小于minsup的所有候选项集。
当没有新的频繁项产生时,算法结束。
(3)特点:第一,逐层。第二,产生-测试策略来发现频繁项集。
7、apriori-gen函数如下两个操作产生候选项集
(1)候选项集的产生

(2)候选项集的剪枝

(三)规则产生
1、定义:从上一步发现的频繁项集中提取所有高置信度的规则,这些规则成为强规则。
见4月2日

4月1日
Hash函数与Hash表的学习:
在一堆无序的数据中,通过一一对比,找到所需数据的方法开销太大,而Hash查找就如同访问数组下标进行查找一样,进行直接查找。
一、Hash函数
建立一种映射f,使得f(关键字)→存储地址,而f即为Hash函数。
好的Hash函数应该满足一下两点要求:(1)计算简单(2)冲突少
二、Hash函数的构造
1、直接哈希函数
通过线性函数:H(x)=ax+b,直接获得地址,进行储存。但局限性很大。
2、数字分析法
由于关键字长度很长,但是有相当多的一部分是相同的,比如学号:181110***,虽然有9位,但是前6位基本相同,所以可以截取后三位作为地址,进行储存。
3、平方去中法
由于用关键字进行存储,大大浪费了存储空间,而截取其中的一部分,重复度又比较大,所以,采用平方取中法进行再次编码,再次截取其中的有效性高的位置的数字,进行地址编码。
4、折叠法
关键字的位数较长,进行不仅增大了空间的开销,对于其他的乘除运算也造成了不便。所以,对其进行“等长截取”,再对截取出的数字进行(1)移位叠加。或者(2)边界叠加两种操作,进行地址的选取
5、除留取余法
找一个比n小的最大的质素作为分母,对关键字进行取余,得到地址,若此处地址已经有数(冲突)了,进行如下操作:
(1)在此基础上+1,在+1的基础上-1,再在基础上+2²,-2²……(别忘了取模)
(2)+1,+1,+1,+1……(别忘了取模)
(3)使用链表,在同一处地址存放多个数,后续进行链式查找。
(4)再哈希法
(5)公共溢出法:如果有冲突,再创建一个表,将所有的冲突的数全部放入那个表中。
6、随机数法
创建一个伪随机数,H(key)=random(key);

4月2日
规则产生
接着频繁项集的产生,我们得到了有意义,可能关联规则有因果关系的项集。接下来,需要我们找到其中满足置信度阈值的关联规则。
1、关联规则的提取:
将项集Y划分成两个非空子集X和Y-X,使得X→Y-X满足置信度阈值。(支持度阈值一定满足)
2、置信度剪枝:
定理:如果规则X→Y-X不满足置信度阈值,则形如X’→Y-X’的规则一定也不满足置信度的阈值,其中X’是X的子集。
3、Apriori算法中的规则的产生
(1)建立每个候选项的格结构。
(2)初始,提取后件中只含一个项的所有高置信度规则,用这些规则产生新的(判断置信度的)候选项。
(3)生成子图:合并前两个高置信度的后件,形成新的后件。(同时也得到前件)
(4)若任一节点具有低置信度,则可以删减掉该节点生成的整个子图。
4、置信度计算
由于置信度等于σ(X)/σ(Y-X),由于,Y是高支持度的候选项,所以,σ(X),σ(Y-X)在之前的支持度计算中已经获得,所以,直接找到后使用即可,不要再去一一计算。

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值