[发明专利]一种基于Top-K频繁项集的挖掘算法在审
申请号: | 201910564994.2 | 申请日: | 2019-06-27 |
公开(公告)号: | CN110287240A | 公开(公告)日: | 2019-09-27 |
发明(设计)人: | 朱波;邹建军;杨培强 | 申请(专利权)人: | 浪潮软件集团有限公司 |
主分类号: | G06F16/2458 | 分类号: | G06F16/2458;G06F16/28 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 姜明 |
地址: | 250100 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 频繁项集 挖掘算法 支持度 遍历 测试数据集 数组 数据库操作 最小支持度 策略生成 数量变量 系统支持 循环遍历 表形式 初始化 数据项 求解 链表 双链 存储 抛弃 干预 分析 | ||
1.一种基于Top-K频繁项集的挖掘算法,其特征在于:包括以下步骤:
(1)建立测试数据集T,项集I和最频繁项集数量变量N;
(2)扫描数据集T,求解测试数据集T中每个数据项Ti的支持度TID集和支持度,求解时采用循环遍历;
(3)初始化itemsList数组和当前的边界支持度border_sup;
(4)利用链表的后向指针next循环遍历构造数组itemsList;
(5)通过对数组itemsList的后续遍历,将支持度TID集进行遍历赋值,并对边界度值进行判定;
(6)如果初始化边界值与支持度TID集不存在包含关系,则输出提示信息,并跳出遍历循环,进程结束;否则,则将支持度TID的绝对值与系统支持的边界值进行对比;
(7)如果支持度TID的绝对值不大于系统支持的边界值,则跳出遍历循环,进程结束;否则,则利用AddItems函数实现在数组itemsList中执行连接操作后得到的项集L,利用函数InsertList实现将下标为t的元素插入到数组itemsList中合适的位置,数组itemsList[N]以静态双链表形式存储当前N个最频繁项集,实现频繁项集的分析,进程结束。
2.根据权利要求1所述的基于Top-K频繁项集的挖掘算法,其特征在于:所述步骤(3)中,设置初始化参数静态双链表的头指针head=0,静态双链表的尾指针rear=0,当前的边界支持度border_sup=0,测试数据集T中的数据项Ti,i=0。
3.根据权利要求1所述的基于Top-K频繁项集的挖掘算法,其特征在于:所述步骤(4)中,循环遍历时设置循环次数即数组长度,测试数据集设置数组长度为12。
4.根据权利要求1所述的基于Top-K频繁项集的挖掘算法,其特征在于:所述步骤(7)中,将当前已求得的Top-K项集按照支持度降序存储到静态双链表中,在尚未连接的Top-K项集中选择支持度最高的两个频繁项集进行连接操作;在执行连接操作后,如果结果项集的支持度大于边界支持度,并且结果项集的长度大于2,则查找该结果项集是否存在;由于查找只须在等长项集中进行,设集合数组itemsSet[K]存储所有的等长频繁项集,其中K是潜在频繁项集的最大长度,itemsSet[i]表示所有长度为i的频繁项集的集合。
5.根据权利要求1或4所述的基于Top-K频繁项集的挖掘算法,其特征在于:所述步骤(7)中,数组itemsList[N]以静态双链表形式存储当前N个最频繁项集;为了便于查找支持度较高的两个项集进行连接,数组itemsList[N]中将N个最频繁项集降序排列;为了便于将连接后的结果项集插入到当前N个最频繁项集,同时删除当前N个最频繁项集中支持度最小的项集。
6.根据权利要求5所述的基于Top-K频繁项集的挖掘算法,其特征在于:所述数组itemsList[N]的结点结构包括item,count,TIDs,next和prior,其中items存储频繁项集,count存储该项集的支持度,TIDs存储该项集对应的事务ID列表,next为链表的后向指针,prior为链表的前向指针。
7.根据权利要求1所述的基于Top-K频繁项集的挖掘算法,其特征在于:所述步骤(7)中,AddItems函数通过itemsList[i].items、itemsList[i].count和itemsList[i].TIDs进行遍历赋值添加,循环遍历时依据数组边界进行边界控制。;AddItems函数在数组itemsList未填满时,只须将新项集追加到数组itemsList已有元素的末端;当数组itemsList已添满时,只须将新项集填入itemsList[N]的表尾元素并摘链。
8.根据权利要求1所述的基于Top-K频繁项集的挖掘算法,其特征在于:所述步骤(7)中,函数InsertList运算时,首先获取数据itemsList的链表的后向指针next节点值,若满足循环条件(s!=-1&&itemsList[s].count>itemsList[t].count),则循环进行数值插入操作;函数InsertList在查找到合适的位置后,插入操作只是修改静态双链表的相应指针。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮软件集团有限公司,未经浪潮软件集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910564994.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种跟踪对账方法
- 下一篇:一种生成告警数据报表的方法及装置