谈改进的Apriori关联挖掘算法的实践应用(2)
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:
或QQ:
处理(尽可能给您提供完整文档),感谢您的支持与谅解。

Apriori-gen过程
Apriori-gen过程由L
k-1产生第K次迭代时的候选项集C
k,该过程描述如下:
For each itemset I
1∈L
k-1 For each itemset I
2∈L
k-1 If (I
1[1]=I
2[1])∧(I
1[2]=I
2[2]∧…∧(I
1[K-2]=I
2[K-2])∧(I
1[K-1 ]=I
2 [K-2])∧(I
1[K-I]=I
2[K-1])
Then {c=I[1],I
1[2],…I
1[K-I],I
2[K-1]);
C
k=C
k U c;
For(c的每个包含k-1个项目的子集s){
If(s不属于F
k-1)
从C
k中删除C;
}
Return(C
k);
改进的Apriori算法在图书馆的具体实现
以安徽省图书馆某年度读者借阅事务库为例,可从图书馆借阅记录中挖掘出形如“读者-图书”强关联规则。首先要进行数据清洗,只保留属性概念中分层最低层的属性项,将同一个读者的所有借阅记录合并为一条记录。
(一)算法思想
在读者借阅记录关联规则挖掘过程中有一些特殊的性质,因为每一个读者借阅记录的长度是固定的,即含有五个单项,前四个是属性值,最后一个是图书分类号,并且要挖掘的规则最后一项必须是图书分类号,且不能出现冲突的属性值或图书分类号。基于这些特殊性质,在数据挖掘中对Apriori改进算法如下:
1)把压缩过的事务集读入内存;
2)扫描事务集,找到每一类频繁单项:即频繁的年龄段、频繁的学历、频繁的职称、频繁的职业、频繁的图书分类。
3) 把各类频繁的属性单项和频繁的图书分类单项连接成 2 - 候选频繁项集, k = 2。即生成年龄-图书类,学历-图书类,职业-图书类,职称-图书类,分别生成频繁2项集。
4) 检查k-候选频繁项集,记录其支持度和前件的支持度。频繁项集的连接条件是前n项是为读者属性项,且读者的属性项内容各不相同,最后一项为相同的图书分类项。
5) 输出置信度和支持度达到要求的频繁 k - 频繁项集。置信度为支持度除以前件的支持度。
6) 用得到k - 频繁项集互相连接得到k+1 - 候选频繁项集。通过剪枝,可减少连接的频繁项集的个数,提高程序运行的效率。下面的是剪枝连接的规则:
a) 如果频繁项集A 和 B 最后一项不同的时候不能连接。
b) 含有属于同一属性类别的不同单项,则不能连接。
c) 频繁项集也不能和自身连接。 d) 如果用conf代表前件支持度,那么当min ( A.conf, B.conf)/最小支持度<最小置信度时,不能连接 A,B。
e) 其它情况可以连接。
7) k ++, 如果生成的候选频繁项集数目不为0,转4),否则结束。
本算法主要改进是步骤6, 这是经典的Apriori算法没有的。其他的连接过程可以参阅Apriori的连接。本文通过设置最小置信度阈值以找出强关联规则,令图书类型为每条规则后件,读者属性为每条规则前件,最后得到关联规则。
(二)程序实现
// apriori算法的程序
void Apriori::Do()
{
vector
candidates;
vector patterns;
generate2candidates(candidates); // 生成候选2项集
while(!candidates.empty()) // 当候选项集为空时中止
{ verify_candidate(candidates, patterns);// 过滤候选k-1项集, 返回用于连接生成候选k项集的列表,同时输出满足所有条件的规则
generate_k_candidates(patterns,candidates); // 连接生成候选k项集, 准备下一次循环
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说计算机谈改进的Apriori关联挖掘算法的实践应用(2)在线全文阅读。
谈改进的Apriori关联挖掘算法的实践应用(2).doc
将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
下载失败或者文档不完整,请联系客服人员解决!