基于Hadoop的改进Apriori算法
一、Apriori算法性质
性质一:
候选的k元组集合Ck中,任意k-1个项组成的集合都来自于Lk.
性质二:
若k维数据项目集X={i1,i2,…,ik}中至少存在一个j∈X,使得|L(k-1)(j)|<k-1,则X不是频繁项集。即若Lk-1中有一个元素C包含一个项目i,使得|L(k-1)(j)|<k-1,则所有Lk-1与C中元素连接生成的候选k维数据项集不可能是频繁项目集。
- eg.购物篮中的任意一个项,如果它没有出现在至少本篮中两个项组成的至少两个频繁项对中,那么它不会是本篮中频繁三元组中的一部分;
- ??????宝宝觉得这里有问题:“……所有Lk-1与C中元素连接生成的……”,本宝宝觉得这里应该是“与i连接”而不是“与C中元素连接”。
- 举个例子理解一下。
性质三:
候选k项集都是由两个频繁(k-1)项集进行连接产生的,并且这两个频繁k-1项集中的k-2个项目都是相同的。->候选k项集是由前k-2个项目相同的两个频繁k-1项集连接产生的。
- 可以理解为候选频繁k项集是由频繁k-1项集再加上一个频繁项组成,而这个频繁项可以根据上述的性质二来缩小范围。
二、Apriori算法在hadoop下的改进
1、缺陷分析
- 候选项集的支持度统计效率低
- 候选项目集键值对产生数量大
2、算法改进步骤:
a、单词计数统计方法本身是用来统计未知的单词,能充分发挥优势和性能,可以用来计算候选1项集的支持度,从而生成频繁1项集:
- 用MapReduce编程模型,将一个事物在数据模型中的行位置座位Map函数的键,以该事物的内容作为Map函数的输出;
- 然后再以该事物所包含的候选项集作为键,以布尔值1作为输出;
- 对每个键的所有1值进行累加操作,计算出各个候选1项集的支持度。
- 根据设定的最小支持度生成频繁1项集。
b、将数据分割思想应用到计算候选项集的支持度计算中:
由上述性质三可以建立MapReduce模型,将频繁k-1项集中相同的k-1个项目(即k-2项)作为Map函数的键,将不同的项目作为值,根据性质二缩小范围,Reduce函数对键值进行规约,相同键就会被规约到同一个Reduce中,从而对两个频繁k-1项集进行连接产生候选k项集。
基于Hadoop的改进Apriori算法的更多相关文章
- 基于spark实现并行化Apriori算法
详细代码我已上传到github:click me 一. 实验要求 在 Spark2.3 平台上实现 Apriori 频繁项集挖掘的并行化算法.要求程序利用 Spark 进行并行计算. ...
- mahout demo——本质上是基于Hadoop的分步式算法实现,比如多节点的数据合并,数据排序,网路通信的效率,节点宕机重算,数据分步式存储
摘自:http://blog.fens.me/mahout-recommendation-api/ 测试程序:RecommenderTest.java 测试数据集:item.csv 1,101,5.0 ...
- 使用hadoop平台运行Apriori算法
https://blog.csdn.net/laotumingke/article/details/66973260 https://blog.csdn.net/qq_24369113/article ...
- Apriori算法详解
一.Apriori 算法概述Apriori 算法是一种最有影响力的挖掘布尔关联规则的频繁项集的 算法,它是由Rakesh Agrawal 和RamakrishnanSkrikant 提出的.它使用一种 ...
- 海量数据挖掘MMDS week2: 频繁项集挖掘 Apriori算法的改进:基于hash的方法
http://blog.csdn.net/pipisorry/article/details/48901217 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...
- 海量数据挖掘MMDS week2: 频繁项集挖掘 Apriori算法的改进:非hash方法
http://blog.csdn.net/pipisorry/article/details/48914067 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...
- #研发解决方案#基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案
郑昀 基于杨海波的设计文档 创建于2015/8/13 最后更新于2015/8/25 关键词:异常流量.rate limiting.Nginx.Apriori.频繁项集.先验算法.Lua.ELK 本文档 ...
- 基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案 郑昀 基于杨海波的设计文档(转)
郑昀 基于杨海波的设计文档 创建于2015/8/13 最后更新于2015/8/25 关键词:异常流量.rate limiting.Nginx.Apriori.频繁项集.先验算法.Lua.ELK 本文档 ...
- 推荐系统第4周--- 基于频繁模式的推荐系统和关联规则挖掘Apriori算法
数据挖掘:关联规则挖掘
随机推荐
- Struts2标签遍历List<Map<String,String>>
<s:if test="resultList != null && resultList.size() > 0"> <s:iterator ...
- 在新浪sae上部署WeRoBot
花了整整一个下午,终于在新浪sae部署完成WeRoBot,现在将其中的曲折记录下来. 首先下载WeRoBot-SAE-demo,按照README.md中的要求,执行下述命令: git clone gi ...
- localStorage eval script
var globalEval =function(data) { (window.execScript || function(data){ window.eval.call(window,data) ...
- setTimeout,setInterval 最短触发时间
<!DOCTYPE html> <html> <head> <title></title> </head> <body&g ...
- Quartz2D 之 绘制文本
1. 基础概念 1.1. 字体(Font) 同一大小.同一样式的字形的集合. 1.2. 字符(Character) 字符表示信息本身,一般指某种编码,如Unicode编码. 1.3. 字形(Glyph ...
- cf734 E. Anton and Tree
这个题的题意还是很劲的.搞了好久才知道是怎么变得. (假设已经缩好了点,每次边中间颜色不同的,然后和就和他外面的相同,继续再变这个大的,依次类推,最多就是树的直径D/2) (还是英语水平太弱了(吐槽+ ...
- thinkPHP 模板中变量的使用
一.变量输出 1.标量输出(普通) 2.数组输出 {$name[1]} {$name['k2'] ...
- QT移植
QT下载地址:http://download.qt.io/archive/qt/1.编译tslib(touch screen lib) 准备工作:确保以下工具安装完成 sudo apt-get ins ...
- 利用Navicat实现MySQL数据库结构对比和同步
在生产环境中,我们总会因为这样或那样的原因导致主从不同步,亦或者是测试环境要和生产环境进行同步,利用Navicat结构同步工具,不但能找出库结构差异,还可以针对create.modify.drop等进 ...
- xhtmlrenderer渲染pdf,中文换行
在实际开发中,发现在table中显示中文,渲染出来的pdf,中文内容不自动换行.经过搜索发现了一种解决方案,如下: 重写Breaker,修改right计算方式 /* * Breaker.java * ...