FP-Growth关联分析算法在网络监控领域的应用
关联分析算法在网络监控领域的应用:
在现今网络规模大,涉及专业多,告警总数大的现在,迫切需要提高对海量告警的分析能力,实现对告警数据的挖掘,提高对有价值告警的提取,简化监控人员的工作,提高排障效率。常用的算法主要为Apriori和FP-growth。
Apriori算法的缺点
- 使用Apriori需要生成候选项目集。如果数据库中的项目集很大,则这些项目集的数量可能很大。
- Apriori需要对数据库进行多次扫描,以检查所生成的每个项目集的支持,这会导致较高的成本。
使用FP增长算法可以克服这些缺点。
频繁模式增长算法
该算法是对Apriori方法的改进。无需候选者生成即可生成频繁模式。FP增长算法以称为频繁模式树或FP树的树的形式表示数据库。
该树结构将保持项目集之间的关联。数据库使用一个频繁项分散。该片段化的部分称为“图案片段”。分析了这些碎片模式的项目集。因此,使用这种方法,相对减少了对频繁项目集的搜索。
FP树
频繁模式树是由数据库的初始项目集构成的树状结构。FP树的目的是挖掘最频繁的模式。FP树的每个节点代表项目集的一个项目。
根节点表示空,而下层节点表示项目集。在形成树时,将保持节点与作为项目集的较低节点与其他项目集的关联。
频繁模式算法步骤
频繁模式增长方法使我们无需候选者即可找到频繁模式。
让我们看看使用频繁模式增长算法挖掘频繁模式的步骤:
#1)第一步是扫描数据库以查找数据库中项目集的出现。此步骤与Apriori的第一步相同。数据库中1个项目集的计数称为支持计数或1个项目集的频率。
#2)第二步是构造FP树。为此,创建树的根。根由null表示。
#3)下一步是再次扫描数据库并检查事务。检查第一个事务并找出其中的项目集。具有最大计数的项目集位于顶部,具有较低计数的下一个项目集,依此类推。这意味着树的分支由事务项集按计数降序构造。
#4)检查数据库中的下一个事务。项目集按计数的降序排列。如果此事务的任何项目集已经存在于另一个分支中(例如,在第一个事务中),则该事务分支将为根共享一个公共前缀。
这意味着公共项目集在此事务中链接到另一个项目集的新节点。
#5)此外,项目集的计数会随着交易中的发生而增加。在根据交易创建和链接公共节点和新节点时,它们的数量都会增加1。
#6)下一步是挖掘创建的FP树。为此,首先检查最低节点以及最低节点的链接。最低的节点代表频率模式长度1。由此,遍历FP树中的路径。此路径称为条件模式库。
条件模式库是一个子数据库,由FP树中带有最低节点(后缀)的前缀路径组成。
#7)构造条件FP树,该树由路径中的一组项集形成。在条件FP树中考虑满足阈值支持的项目集。
#8)从条件FP树生成频繁模式。
FP-增长算法示例
支持度阈值= 50%,置信度= 60%
表格1
交易 | 项目清单 |
---|---|
T1 | I1,I2,I3 |
T2 | I2,I3,I4 |
T3 | I4,I5 |
T4 | I1,I2,I4 |
T5 | I1,I2,I3,I5 |
T6 | I1,I2,I3,I4 |
解:
支持阈值= 50%=> 0.5 * 6 = 3 => min_sup = 3
1.每个项目的计数
表2
项目 | 计数 |
---|---|
I1 | 4 |
I2 | 5 |
I3 | 4 |
I4 | 4 |
I5 | 2 |
2.按降序对项目集进行排序。
表3
项目 | 计数 |
---|---|
I2 | 5 |
I1 | 4 |
I3 | 4 |
I4 | 4 |
3.建立FP树
- 考虑到根节点为空。
- 事务T1的第一次扫描:I1,I2,I3包含三个项{I1:1},{I2:1},{I3:1},其中I2作为子级链接到根,I1链接到I2和I3链接到I1。
- T2:I2,I3,I4包含I2,I3和I4,其中I2链接到根,I3链接到I2,I4链接到I3。但是此分支将共享I2节点,因为它已在T1中使用。
- 将I2的计数加1,并且I3作为子级链接到I2,I4作为子级链接到I3。计数为{I2:2},{I3:1},{I4:1}。
- T3:I4,I5 同样,在创建子级时,将具有I5的新分支链接到I4。
- T4:I1,I2,I4。顺序为I2,I1和I4。I2已链接到根节点,因此将增加1。类似地,由于I1已与T1中的I2链接,因此I1将增加1,因此{I2:3},{I1:2},{I4: 1}。
- T5:I1,I2,I3,I5。顺序为I2,I1,I3和I5。因此,{I2:4},{I1:3},{I3:2},{I5:1}。
- T6:I1,I2,I3,I4。顺序为I2,I1,I3和I4。因此,{I2:5},{I1:4},{I3:3},{I4 1}。
4. FP树的挖掘总结如下:
- 由于最低节点项I5没有最小支持计数,因此不被考虑,因此将其删除。
- 下一个较低的节点是I4。I4出现在2个分支中,{I2,I1,I3:,I41},{I2,I3,I4:1}。因此,以I4作为后缀,前缀路径将为{I2,I1,I3:1},{I2,I3:1}。这形成了条件模式基础。
- 条件模式库被视为事务数据库,并构造了FP树。其中将包含{I2:2,I3:2},不考虑I1,因为它不满足最小支持计数。
- 此路径将生成所有频繁模式的组合:{I2,I4:2},{I3,I4:2},{I2,I3,I4:2}
- 对于I3,前缀路径为:{I2,I1:3},{I2:1},这将生成2节点FP树:{I2:4,I1:3}并生成频繁模式:{I2 ,I3:4},{I1:I3:3},{I2,I1,I3:3}。
- 对于I1,前缀路径为:{I2:4},这将生成一个单节点FP树:{I2:4},并生成频繁模式:{I2,I1:4}。
项目 | 条件模式库 | 条件FP树 | 生成频繁模式 |
---|---|---|---|
I4 | {I2,I1,I3:1},{I2,I3:1} | {I2:2,I3:2} | {I2,I4:2},{I3,I4:2},{I2,I3,I4:2} |
I3 | {I2,I1:3},{I2:1} | {I2:4,I1:3} | {I2,I3:4},{I1:I3:3},{I2,I1,I3:3} |
I1 | {I2:4} | {I2:4} | {I2,I1:4} |
下面给出的图描述了与条件节点I3相关的条件FP树。
FP增长算法的优势
- 与Apriori相比,该算法只需要扫描数据库两次,而Apriori则为每次迭代扫描事务。
- 项目配对没有在此算法中完成,因此速度更快。
- 数据库以紧凑版本存储在内存中。
- 它对于挖掘长期和短期频繁模式都是有效且可扩展的。
FP-增长算法的缺点
- FP Tree比Apriori更为繁琐且难以构建。
- 可能很贵。
- 当数据库很大时,该算法可能不适合共享内存。
FP成长与Apriori
FP成长 | 阿普里里 |
---|---|
模式生成 | |
FP增长通过构造FP树来生成模式 | Apriori通过将项目配对为单例,对和三胞胎来生成模式。 |
候选代 | |
没有候选人产生 | Apriori使用候选人生成 |
处理 | |
与Apriori相比,此过程更快。进程的运行时间随项目集数量的增加而线性增加。 | 该过程比FP Growth相对慢,运行时间随项目集数量的增加呈指数增长 |
内存使用情况 | |
数据库的压缩版本已保存 | 候选组合保存在内存中 |
拉加
上面的Apriori和FP增长方法使用水平数据格式挖掘频繁项集。ECLAT是一种使用垂直数据格式挖掘频繁项集的方法。它将水平数据格式的数据转换为垂直格式。
例如, Apriori和FP增长使用:
交易 | 项目清单 |
---|---|
T1 | I1,I2,I3 |
T2 | I2,I3,I4 |
T3 | I4,I5 |
T4 | I1,I2,I4 |
T5 | I1,I2,I3,I5 |
T6 | I1,I2,I3,I4 |
ECLAT的表格格式为:
项目 | 交易集 |
---|---|
I1 | {T1,T4,T5,T6} |
I2 | {T1,T2,T4,T5,T6} |
I3 | {T1,T2,T5,T6} |
I4 | {T2,T3,T4,T5} |
I5 | {T3,T5} |
此方法将以垂直数据格式形成2个项目集,3个项目集,k个项目集。用k将此过程增加1,直到找不到候选项目集。一些优化技术(例如diffset)与Apriori一起使用。
与Apriori相比,此方法有一个优点,因为它不需要扫描数据库即可找到k + 1个项目集的支持。这是因为“交易”集将携带交易(支持)中每个项目的出现次数。当有许多事务占用大量内存和计算时间来与集合相交时,就会出现瓶颈。
结论
Apriori算法用于挖掘关联规则。它的工作原理是“频繁项目集的非空子集也必须是频繁的”。它从(k-1)个项目集形成k个项目集候选者,并扫描数据库以查找频繁的项目集。
频繁模式增长算法是查找没有候选者生成的频繁模式的方法。它构造FP树,而不使用Apriori的生成和测试策略。FP增长算法的重点是将物品的路径分段和挖掘频繁模式。
FP-Growth关联分析算法在网络监控领域的应用相关推荐
- Python --深入浅出Apriori关联分析算法(二) Apriori关联规则实战
上一篇我们讲了关联分析的几个概念,支持度,置信度,提升度.以及如何利用Apriori算法高效地根据物品的支持度找出所有物品的频繁项集. Python --深入浅出Apriori关联分析算法(一) 这次 ...
- 基于R的FP树fp growth 关联数据挖掘技术在煤矿隐患管理
研究煤矿隐患数据的挖掘以实现海量隐患数据的有效利用,在分析矿山数据挖掘枝术和煤矿隐患数据特点的基础上,提出煤矿隐患数据挖掘是矿山数字化的重要组成部分,给出煤矿隐患数据挖掘的概念,设计了煤矿隐患数据挖掘 ...
- pythonapriori算法特点_Python --深入浅出Apriori关联分析算法(一)
在美国有这样一家奇怪的超市, 它将啤酒与尿布这样两个奇怪的东西放在一起进行销售,并且最终让啤酒与尿布这两个看起来没有关联的东西的销量双双增加 .这家超市的名字叫做沃尔玛. 你会不会觉得有些不可思议?虽 ...
- 一个实例带你搞懂Apriori关联分析算法
关联分析 Apriori算法 优点:易编码实现. 缺点:在大数据集上可能较慢. 适用数据类型:数值型或者标称型数据. 关联分析是一种在大规模数据集中寻找有趣关系的任务.这些关系可以有两种形式:频繁项集 ...
- 关联分析算法(二)——FP-growth算法与python用法
FP-growth算法思想与Apriori类似,这里使用FP-tree (frequent pattern tree) 数据结构来存储频繁项集,在样本量多的情况下比Apriori算法更加快速高效. 案 ...
- python 关联分析算法的包_Python 极简关联分析(购物篮分析)
关联分析,也称购物篮分析,本文目的: 基于订单表,用最少的python代码完成数据整合及关联分析 文中所用数据下载地址: 使用Python Anaconda集成数据分析环境,下载mlxtend机器学习 ...
- Apriori关联分析算法 -尿布与啤酒的故事
✴关联分析概述 选择物品间的关联规则也就是要寻找物品之间的潜在关系.要寻找这种关系,有两步,以超市为例 找出频繁一起出现的物品集的集合,我们称之为频繁项集.比如一个超市的频繁项集可能有{{啤酒,尿布} ...
- python --深入浅出Apriori关联分析算法Apriori关联...
一.基础知识 上次我们介绍了几个关联分析的概念,支持度,置信度,提升度.这次我们重点回顾一下置信度和提升度: 置信度(Confidence):置信度是指如果购买物品A,有较大可能购买物品B.计算方式 ...
- python关联规则apriori算法_Python --深入浅出Apriori关联分析算法(二) Apriori关联规则实战...
上一篇我们讲了关联分析的几个概念,支持度,置信度,提升度.以及如何利用Apriori算法高效地根据物品的支持度找出所有物品的频繁项集. 这次呢,我们会在上次的基础上,讲讲如何分析物品的关联规则得出关联 ...
最新文章
- Markdown通用的常用语法说明
- pjsip php,VoIP应用在Ubuntu 14.04下编译FFmpeg libX264及PJSIP
- android记事本添加图片功能,安卓手机上有什么便签app既可以写日记又可以添加照片?...
- leetcode 461. 汉明距离(位运算)
- 国科大prml13-概率图(CRF,HMM)
- 运用多种设计模式的综合案例_SpreadJS 纯前端表格控件应用案例:表格数据管理平台...
- Labyrinth(HDU-4826)
- 有关OPenCV的几个库函数的使用
- Android 匿名共享内存Java接口分析
- docker安装redis并挂载配置文件
- java getselectedrow_Java JTable.getSelectedRow方法代碼示例
- 思科模拟器Cisco Packet Tracer的下载
- 半导体存储器(RAM和ROM)
- python入门书籍推荐,看这篇文章就够,请!
- 南通大学java期末_南通大学生学Java,掌握这20%知识点至关重要!
- 【BlockingQueue】BlockingQueue接口方法说明和区别
- 单片机的智能垃圾桶设计
- 电脑重装系统怎么清理c盘空间
- 52.一文带你理解ARM程序的编译及执行过程
- Hololens黑科技101
热门文章
- Mantis基本功能介绍
- 在本地计算机无法启动错误1068,为什么本地计算机“无法启动Print Spooler服务,错误1068,依存服务或组无法启动”?...
- Unity中实现四舍五入
- 美国top10计算机phd申请案例,申请美国计算机PHD全奖应该怎么做
- 著作权法_信息网络传播权保护条例_最高人民法院关于审理侵害信息网络传播权民事纠纷案件适用法律若干问题的规定
- 贪心(Greedy Algorithm)
- halcon中面到面的距离_halcon学习网
- matlab 定时器开始无法停止,计时器程序无法停止计时
- 前端学习day38day39day40:09-JS基础之各类型常用api
- 对着网页进行右键操作------审查元素(快速查看标签代码)