一、Apriori算法性质

性质一:
  1. 候选的k元组集合Ck中,任意k-1个项组成的集合都来自于Lk.
性质二:
  1. k维数据项目集X={i1,i2,…,ik}中至少存在一个jX,使得|L(k-1)(j)|<k-1,则X不是频繁项集。即若Lk-1中有一个元素C包含一个项目i,使得|L(k-1)(j)|<k-1,则所有Lk-1C中元素连接生成的候选k维数据项集不可能是频繁项目集。
  • eg.购物篮中的任意一个项,如果它没有出现在至少本篮中两个项组成的至少两个频繁项对中,那么它不会是本篮中频繁三元组中的一部分;
  • ??????宝宝觉得这里有问题:“……所有Lk-1与C中元素连接生成的……”,本宝宝觉得这里应该是“与i连接”而不是“与C中元素连接”。
  • 举个例子理解一下。
性质三:
  1. 候选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. (转载)HTML、CSS、JavaScript、PHP、MySQL 的学习顺序是什么?

    文章转载自 鸟巢 - 技术分享的社区 http://t.runoob.com/question/13 1.HTML.CSS.JavaScript 前端学习三部曲,照着这个顺序依次学习 HTML教程.C ...

  2. linux 自动备份脚本

    首先我在/root/backup 目录下建立一个文件夹, #mkdir /root/backup/mysqlbackup 以后在每天五点钟,就会有一个文件保存在这里. 接着新建文件 #vim /roo ...

  3. plupload 异步上传插件使用心得

    plupload 可以不依赖jquery,并且提供了 html5,flash,silverlight,html4 多种上传模式,使用起来比较简单,上一篇博客中介绍了其主要参数哈函数 一.简化用法 &l ...

  4. 简述Android系统内存不足时候,内存回收机制

    当Android系统的内存不足时,会根据以下的内存回收规则来回收内存: 1.先回收与其他Activity或Service/Intent Receiver无关的进程(即优先回收独立的Activity) ...

  5. App Store Review Guideline(带翻译)

    1. Terms and conditions(法律与条款) 1.1  As a developer of applications for the App Store you are bound b ...

  6. Linux笔记(六) - 压缩解压命令

    (1)压缩文件( gz):gzip-d 解压只能压缩文件,不保留原文件例:gzip a.txt(2)解压文件( gz):gunzip 例:gunzip a.txt.gz(3)打包目录(tar):tar ...

  7. 我的Linux系统的VIMRC

    " llvm CODING GUIDELines conformance for VIM" $Revision$"" Maintainer: The LLVM ...

  8. SQL SERVER分区具体例子详解

    在日常工作中,我们会遇到以下的情况,一个表每日数万级的增长,而查询的数据通常是在本月或今年,以前的数据偶尔会用到,但查询和插入的效率越来越慢,用数据库分区会有助于解决这个问题.关于分区的理论知识网上很 ...

  9. 消息队列NetMQ 原理分析2-IO线程和完成端口

    消息队列NetMQ 原理分析2-IO线程和完成端口 前言 介绍 目的 IO线程 初始化IO线程 Proactor 启动Procator线程轮询 处理socket 获取超时时间 从完成端口获取处理完的状 ...

  10. 使用SpringMvc调用POI jar导出excel的源码

    @RequestMapping(value = "/result/export") public String export(ResultIn in,HttpServletRequ ...