论文总结(negFIN: An efficient algorithm for fast mining frequent itemsets)
一、论文整体思路:
作者提出了一种基于前缀树的数据结构,NegNodeset,其实是对之前前缀树的一种改进,主要区别在于采用了位图编码,通过这种数据结构产生的算法称为negFIN。
negFIN算法高效有三个原因
二、问题定义
I= {i1,i2,…, init} 表示事务数据库所有项的集合,T表示每个事务,T⊆I ,DB = {T1,T2,…, Tnt} 是所有事务的集合
P称为k-项集,如果P⊆T ,那么事务T包含了项集P,support(P)是DB中包含P的百分比,如果support(P)大于min-support
我们就称P为频繁项集,频繁项集是2的nit 次方,nit = |I| 。
三、之前贡献
主要对前缀树的研究,结构1)Node-list,2)N-list,3)Nodeset,4)DisffNodeset (***先理解下前缀树和哈希树)
1) Node-list和N-list是通过对节点进行先序和后序排列,这两种数据结构产生的算法分别是PPV和PrePost频繁项集挖掘算法,
这两个算法的缺点消耗了大量内存;
2)对于这种情况,数据结构Nodeset将其进行改进,k-项集的获得通过取k-1项集的交集,算法为FIN,确定是对于一些数据集Nodeset基数太大;
3)为了将其进行改进,DiffNodest数据结构提出,k-项集的获得两个不同的k-1项集获得,算法为dFIN,算法的更快了。
4)文中提出了NegNodeset为了实现计算两个不同的DiffNodesets花费时间较长,主要利用的是位图,提出的算法negFIN;
四、相关工作
频繁项集挖掘算法
1)通过产生候选项集
比如Apriori算法,以及一些其他的算法,这种方法的主要缺点是需要多次扫描数据库。
2)模式增长方法
这种方式不会产生候选项集,也避免了多次扫描数据库,包括FP-tree和FP-growth算法,缺点:对于稀疏的数据集效率低,数据结构复杂。
3)前缀树方法
五、基本术语
F1频繁项集的集合,例如F1 = {e, b, a, c, d} ,
L1是根据支持度进行非降序排列的频繁项集L1 = [e, d, c, b, a] ,L1 = [i0,i1,…, inf - 1] ,nf=|F1|
k-项集P,Pk = ik…i2i1 ,ik>...>i2>i1
例如P = {e, b, d} ,P3 = bde ,对Pk进行位图编码BMC(Pk) = bnf - 1…b1b0 ,这里需要注意的是
BMC(node-path)分为两部分,主要部分和无关部分
论文总结(negFIN: An efficient algorithm for fast mining frequent itemsets)的更多相关文章
- 【HEVC帧间预测论文】P1.7 Content Based Hierarchical Fast Coding Unit Decision Algorithm
Content Based Hierarchical Fast Coding Unit Decision Algorithm For HEVC <HEVC标准介绍.HEVC帧间预测论文笔记> ...
- 论文阅读笔记二十六:Fast R-CNN (ICCV2015)
论文源址:https://arxiv.org/abs/1504.08083 参考博客:https://blog.csdn.net/shenxiaolu1984/article/details/5103 ...
- 【论文翻译】MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 论文链接:https://arxi ...
- 论文翻译:2020_TinyLSTMs: Efficient Neural Speech Enhancement for Hearing Aids
论文地址:TinyLSTMs:助听器的高效神经语音增强 音频地址:https://github.com/Bose/efficient-neural-speech-enhancement 引用格式:Fe ...
- algorithm@ Matrix fast power
一. 什么是快速幂: 快速幂顾名思义,就是快速算某个数的多少次幂.其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高.一般一个矩阵的n次方,我们会通过连乘n-1次来得到它的n次 ...
- 【论文阅读】A practical algorithm for distributed clustering and outlier detection
文章提出了一种分布式聚类的算法,这是第一个有理论保障的考虑离群点的分布式聚类算法(文章里自己说的).与之前的算法对比有以下四个优点: 1.耗时短O(max{k,logn}*n), 2.传递信息规模小: ...
- 第八周论文学习03 An Efficient Tree-based Power Saving Scheme for Wireless Sensor Networks with Mobile Sink
来源:IEEE Sensors Journal Year: 2016, Volume: 16, Issue: 20 Pages: 7545 - 7557, DOI: 10.1109/JSEN.2016 ...
- 论文总结(Frequent Itemsets Mining With Differential Privacy Over Large-Scale Data)
一.论文目标:将差分隐私和频繁项集挖掘结合,主要针对大规模数据. 二.论文的整体思路: 1)预处理阶段: 对于大的数据集,进行采样得到采样数据集并计算频繁项集,估计样本数据集最大长度限制,然后再缩小源 ...
- Apriori algorithm
本文是个人对spmf中example1. mining frequent itemsets by using the apriori algorithm的学习. What is Apriori? A ...
随机推荐
- python设计模式第二十三天【状态模式】
1.应用场景 (1)通过改变对象的内部状态从而改变对象的行为,一般表现为状态的顺序执行 2.代码实现 #!/usr/bin/env python #!_*_ coding:UTF-8 _*_ from ...
- mpi4python
转载:https://zhuanlan.zhihu.com/p/25332041 前言 在高性能计算的项目中我们通常都会使用效率更高的编译型的语言例如C.C++.Fortran等,但是由于Python ...
- Android组件化、模块化、插件化
组件:指的是单一的功能组件,如地图组件(MapSDK).扫码组件(QRCode).支付组件(AnjukePay).路由组件(Router)等等: 模块:指的是独立的业务模块,如新房模块(NewHous ...
- BZOJ4317Atm的树&BZOJ2051A Problem For Fun&BZOJ2117[2010国家集训队]Crash的旅游计划——二分答案+动态点分治(点分树套线段树/点分树+vector)
题目描述 Atm有一段时间在虐qtree的题目,于是,他满脑子都是tree,tree,tree…… 于是,一天晚上他梦到自己被关在了一个有根树中,每条路径都有边权,一个神秘的声音告诉他,每个点到其他的 ...
- 查询SQLSERVER中系统所有表
SQL 查询所有表名: SELECT NAME FROM SYSOBJECTS WHERE TYPE='U' SELECT * FROM INFORMATION_SCHEMA.TABLES 查询表的所 ...
- Number Sequence POJ - 1019 递推 数学
题意 1 12 123 1234 12345 ....这样的序列 问第n位数字是几 是数字! 1-9! 思路:递推关系 主要是位数的计算 用a[i]=a[i-1]+(int)log10((do ...
- 洛谷P1373小a和uim大逃离题解
题目 这个题好坑啊,首先是他会卡空间,然后我们就只能把一种比较好理解的状态给舍弃,因为空间开不下,然而采用一种难理解的状态就是\(dp[i][j][l][0/1]\)表示\(i\),\(j\)位置,两 ...
- MT【289】含参绝对值的最大值之三
已知$a>0$,函数$f(x)=e^x+3ax^2-2e x-a+1$,(1)若$f(x)$在$[0,1]$上单调递减,求$a$的取值范围.(2)$|f(x)|\le1$对任意$x\in[0,1 ...
- Codeforces Round #489 (Div. 2) E. Nastya and King-Shamans(线段树)
题意 给出一个长度为 \(n\) 的序列 \(\{a_i\}\) , 现在会进行 \(m\) 次操作 , 每次操作会修改某个 \(a_i\) 的值 , 在每次操作完后你需要判断是否存在一个位置 \(i ...
- 763. Partition Labels
我一开始看数据范围很小,没怎么想就直接暴力了. 暴力的思路是: 对于每一段S的前缀,这个前缀中的每一个字母都不应该在前缀的补集中出现,所以直接循环i:0 to S.length然后对于每一次循环,再循 ...