数据关联——FP-Growth算法
2017-01-04 15:18
211 查看
1 数据关联的基本概念:
数据关联规则挖掘的一个典型例子是购物篮分析。关联规则研究有助于发现交易数据库中不同商品(项)之间的联系,找出顾客购买行为模式,如购买了某一商品对购买其他商品的影响,分析结果可以应用于商品货架布局、货存安排以及根据购买模式对用户进行分类。关联规则的相关术语如下:
(1.1)项与项集
这是一个集合的概念,在一个购物清单中的一个商品就是一个项,清单中所有商品的集合就是项集。这个项集可以是多元的。比如(Item1,Item2,Item3)就是一个三元的项集。
(1.2)关联规则
关联的规则和强度主要有以下三个概念:
(1.2.1)支持度(Support)
支持度是指在所有的项集中(即用于统计的所有购物清单)某一项或者某一项集出现的可能性。如(Item1,Item2)出现的概率。
这是作为关联规则的第一个门槛。体现的是某一项(Item1)或某一项集(Item1,Item2)的频繁度。用过设置最小支持度(minsup)来剔除出现次数较少的无意义的项和项集。
比如设定minsup为10%,购物清单的总数为1000,其中购买啤酒的为10个。那么啤酒的支持度为10/1000=1%。小于最小支持度。所以剔除该项。
(1.2.2)置信度(Confidence)
置信度表示的是在Item1项发生的先决条件下,Item2发生的概率。体现的是项与项之间的关联关系。同样可以设置最小置信度进行过滤筛选。
比如,购买啤酒的用户为1000个,这一千个客户中同时购买面包的为100个。那么(啤酒,面包)的置信度为10%。
(1.2.3)提升度(Lift)
提升度与置信度同样是反应规则的可靠性,可看作是置信度的一种补偿规则。
提升度的公式为:Confidence(Item1=>item2)/Support(Item2)或Support(Item1,item2)/(Support(Item1) * Support(Item2))。
引进这个概念的意义在于衡量项集之间的独立性。比如,一般超市购物清单的关联性认为,lift < 1表示两个项是相斥的,即搭配销售反而会影响客户的购物欲望。lift = 1表示两者之间没有关系。一般认为lift > 3才认为数据挖掘的规则是有价值的。
不过不同的场景最小支持度,置信度,提升度的确定未必完全相同~~
2 FP-Growth算法:
FP-Growth(频繁模式增长)算法是韩家炜老师在2000年提出的关联分析算法,采取如下分析策略:(2.1)构造FP-Tree
(2.1.1)扫描数据库一次。收集频繁项的集合和它们的支持度,按支持度降序排列。结果为频繁表
(2.1.2)创建FP-Tree的根节点。递归调用将数据库中的数据压入到FP-Tree中。这个文字描述不清楚。参照如下算法演示。
3 FP-Growth算法演示:
3.1 原始数据如下:I2,I1,I5
I2,I4
I2,I3
I2,I1,I4
I1,I3
I2,I3
I1,I3
I2,I1,I3,I5
I2,I1,I3
3.2 扫描数据库得到频繁项
I1, 6
I2, 7
I3, 6
I4, 2
I5, 2
3.3 定义最小支持度为2,重新排列频繁表
I2, 7
I1, 6
I3, 6
I4, 2
I5, 2
3.4 重新整理后的数据为:
I2,I1,I5
I2,I4
I2,I3
I2,I1,I4
I3,I1
I2,I3
I3,I1
I2,I3,I1,I5
I2,I3,I1
3.5 创建根节点和频繁项目表
并依次插入数据
4 java实现FP-Growth算法:
以下是java实现fpgrowth的代码及解析直接复制代码就可以调试点击打开链接
相关文章推荐
- 数据挖掘进阶之关联规则挖掘FP-Growth算法
- 数据挖掘进阶之关联规则挖掘FP-Growth算法
- Hibernate一对一数据关联(一)
- PB中相关联下拉数据窗口的实现
- 数据表外键关联知识
- genexus 中combox 如何关联数据(从数据库读取数据)
- 实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除 (转)
- Hibernate一对多数据关联
- 定义数据表之间的关联 (DataSet.Relations.Add)
- 使用Rational Robot测试含有数据关联的Web应用
- 地图数据与属性数据的关联——MapX核心技术剖析(八)
- 请教:怎么实现DBGRID与数据相关联啊?
- Scott Mitchell 的ASP.NET 2.0数据教程之十七:: 研究插入、更新和删除的关联事件
- FleaPHP 开发指南 - 7. 数据表关联
- Scott Mitchell 的ASP.NET 2.0数据教程之十七:: 研究插入、更新和删除的关联事件
- 外键关联的表怎么删除数据
- 『原创』使用ASP与JAVASCRIPT配合实现多个复选框数据关联显示
- 《深入浅出Hibernate》(2)实体层次分析,数据关联等
- [导入]实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除
- 实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除