一、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算法的更多相关文章

  1. 基于spark实现并行化Apriori算法

    详细代码我已上传到github:click me 一. 实验要求         在 Spark2.3 平台上实现 Apriori 频繁项集挖掘的并行化算法.要求程序利用 Spark 进行并行计算. ...

  2. mahout demo——本质上是基于Hadoop的分步式算法实现,比如多节点的数据合并,数据排序,网路通信的效率,节点宕机重算,数据分步式存储

    摘自:http://blog.fens.me/mahout-recommendation-api/ 测试程序:RecommenderTest.java 测试数据集:item.csv 1,101,5.0 ...

  3. 使用hadoop平台运行Apriori算法

    https://blog.csdn.net/laotumingke/article/details/66973260 https://blog.csdn.net/qq_24369113/article ...

  4. Apriori算法详解

    一.Apriori 算法概述Apriori 算法是一种最有影响力的挖掘布尔关联规则的频繁项集的 算法,它是由Rakesh Agrawal 和RamakrishnanSkrikant 提出的.它使用一种 ...

  5. 海量数据挖掘MMDS week2: 频繁项集挖掘 Apriori算法的改进:基于hash的方法

    http://blog.csdn.net/pipisorry/article/details/48901217 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...

  6. 海量数据挖掘MMDS week2: 频繁项集挖掘 Apriori算法的改进:非hash方法

    http://blog.csdn.net/pipisorry/article/details/48914067 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...

  7. #研发解决方案#基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案

    郑昀 基于杨海波的设计文档 创建于2015/8/13 最后更新于2015/8/25 关键词:异常流量.rate limiting.Nginx.Apriori.频繁项集.先验算法.Lua.ELK 本文档 ...

  8. 基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案 郑昀 基于杨海波的设计文档(转)

    郑昀 基于杨海波的设计文档 创建于2015/8/13 最后更新于2015/8/25 关键词:异常流量.rate limiting.Nginx.Apriori.频繁项集.先验算法.Lua.ELK 本文档 ...

  9. 推荐系统第4周--- 基于频繁模式的推荐系统和关联规则挖掘Apriori算法

    数据挖掘:关联规则挖掘

随机推荐

  1. MongoDB升级教程

    1.排序 sort()方法:其中 1 为升序排列,而-1是用于降序排列. db.col.find({},{"title":1,_id:0}).sort({"likes&q ...

  2. iOS 之 手势

    手势操作,有一个总的抽象类UIGestureRecognizer,用于检测设备的所有手势.其下有多个子类: 拍击UITapGestureRecognizer (任意次数的拍击) 向里或向外捏UIPin ...

  3. Objective-C中的Hello World

    Objective-C在C语言的基础之上,加入了自己的一些独特的特性,而且在Objective-C中兼容C语言原有的用法.在Objective-C中,实现Hello World和C语言有一定的区别,如 ...

  4. ReactiveCocoa学习笔记--用法

    1.监测UI变量的变化 return 后把值传递下去. 1.1.输出 [self.usernameTextField.rac_textSignal subscribeNext:^(id x){ NSL ...

  5. --@angularJS--路由、模块、依赖注入

    以下是演示angular路由切换的demo. 主页:index.html <!doctype html><html ng-app="bookStoreApp"&g ...

  6. jQuery按键事件响应的Demo

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  7. 分享一个基于thrift的java-rpc框架

    简单介绍 这是一个简单小巧的Java RPC框架,适用于Java平台内.为系统之间的交互提供了.高性能.低延迟的方案.适合在集群数量偏少的情况下使用(50台以下集群环境).当然.它也可以在大型集群环境 ...

  8. 一篇完整的FlexBox布局指南

    一篇完整的FlexBox布局指南 转载请标注本文链接并附带以下信息: 译:Cydiacen 作者:CHRIS COYIER 原文:A Complete Guide to Flexbox 原文更新于 2 ...

  9. Java程序打开指定地址网页

    1.今天遇到了需要手动输入http地址打开指定网页的需求,试着做一个用程序打开指定网页的功能,搜了一下,还真有一个现成的例子,稍加改造,实现自己的需求: 2.代码不多,两个文件:如下: package ...

  10. 从新手到高手c++全方位学习 pdf + 视频教程 共18章

    淘宝已经和谐了这个网站,原网址:https://item.taobao.com/item.htm?spm=a1z09.8149145.0.0.mb00D0&id=17350311256& ...