挖掘数据集:贩物篮数据
 频繁模式:频繁地出现在数据集中的模式,例如项集,子结构,子序列等
 挖掘目标:频繁模式,频繁项集,关联规则等
 关联规则:牛奶=>鸡蛋【支持度=2%,置信度=60%】
 支持度:分析中的全部事务的2%同时贩买了牛奶和鸡蛋
 置信度:贩买了牛奶的筒子有60%也贩买了鸡蛋
 最小支持度阈值和最小置信度阈值:由挖掘者戒领域专家设定

项集:项(商品)的集合
 k-项集:k个项组成的项集
 频繁项集:满足最小支持度的项集,频繁k-项集一般记为L k
 强关联规则:满足最小支持度阈值和最小置信度阈值的规则

apriori算法:

两步过程:找出所有频繁项集;由频繁项集产生强关联规则

具体挖掘步骤:

1.依据支持度找出所有频繁项集(频度)

2.依据置信度产生关联规则(强度)

原理:如果一个项集是频繁项集,那么它的所有子集也是频繁项集;按照这个原理的逆否命题——如果一个集合有不是频繁项集的子集,那么该集合一定不是频繁项集

算法工作流程(假设min_sup=2):

候选k项集剪枝生成频繁k项集,频繁k项集自连接生成候选(k+1)项集,注意:频繁k项集自连接的前提是前(k-1)项相同,否则过滤掉该项集,不予连接,例如上图中L2*L2时,没有生成{I1,I3,I5}的原因就是{I1,I3,I5}的一个2项子集{I3,I5}没有出现在频繁2项集列表中,没有出现{I2,I3,I4}{I2,I3,I5}的原因也在这里,连接这步是算法优化的重点,另外一个技巧是增大min_sup,过滤掉相当一部分项集,否则自连接生成的项集会撑爆内存。具体步骤说明如下:

步骤说明
 扫描D,对每个候选项计数,生成候选1-项集C1
 定义最小支持度阈值为2,从C1生成频繁1-项集L1
 通过L1xL1生成候选2-项集C2
 扫描D,对C2里每个项计数,生成频繁2-项集L2
 计算L3xL3,利用apriori性质:频繁项集的子集必然是频繁的,我们可以删去一部分项
,从而得到C3,由C3再经过支持度计数生成L3
 可见Apriori算法可以分成 连接,剪枝(1.扫描事务,去掉小于min_sup的项;2.去掉其子集不是频繁项集的项集) 两个步骤不断循环重复

由频繁项集提取关联规则:

例如:计算出的频繁项集{I1,I2,I5},提取规则步骤如下:

Apriori算法的瓶颈:

1.通过笛卡尔积自连接产生的组合项过多(只能人为提高min_sup减少频繁项集数目,这是以牺牲精度为代价的);

2.每次剪枝都需要去扫描事务数据库,而事务数据库包含难以计数之多的购物篮信息

总之:海量数据下,Apriori算法的时空复杂度都不容忽视。

空间复杂度:如果数量达到的量级,那么中的候选项将达到的量级。

时间复杂度:每计算一次就需要扫描一遍数据库。

apriori关联规则的更多相关文章

  1. Python --深入浅出Apriori关联分析算法(二) Apriori关联规则实战

    上一篇我们讲了关联分析的几个概念,支持度,置信度,提升度.以及如何利用Apriori算法高效地根据物品的支持度找出所有物品的频繁项集. Python --深入浅出Apriori关联分析算法(一) 这次 ...

  2. R语言中的Apriori关联规则的使用

    1.下载Matrix和arules包 install.packages(c("Matrix","arules")) 2.载入引入Matrix和arules包 # ...

  3. apriori && fpgrowth:频繁模式与关联规则挖掘

    已迁移到我新博客,阅读体验更佳apriori && fpgrowth:频繁模式与关联规则挖掘 详细代码我放在github上:click me 一.实验说明 1.1 任务描述 1.2 数 ...

  4. 数据挖掘:关联规则的apriori算法在weka的源码分析

    相对于机器学习,关联规则的apriori算法更偏向于数据挖掘. 1) 测试文档中调用weka的关联规则apriori算法,如下 try { File file = new File("F:\ ...

  5. 顶尖数据挖掘辅助教学套件(TipDM-T6)产品白皮书

          顶尖数据挖掘辅助教学套件 (TipDM-T6)           产  品  说  明  书 广州泰迪智能科技有限公司 版权所有 地址: 广州市经济技术开发区科学城232号 网址: ht ...

  6. 顶尖大数据挖掘实战平台(TipDM-H8)产品白皮书

        顶尖大数据挖掘实战平台 (TipDM-H8)           产  品  说  明  书 广州泰迪智能科技有限公司 版权所有 地址: 广州市经济技术开发区科学城232号 网址: http: ...

  7. 机器学习系统设计(Building Machine Learning Systems with Python)- Willi Richert Luis Pedro Coelho

    机器学习系统设计(Building Machine Learning Systems with Python)- Willi Richert Luis Pedro Coelho 总述 本书是 2014 ...

  8. R中常用数据挖掘算法包

    数据挖掘主要分为4类,即预测.分类.聚类和关联,根据不同的挖掘目的选择相应的算法.下面对R语言中常用的数据挖掘包做一个汇总: 连续因变量的预测: stats包 lm函数,实现多元线性回归 stats包 ...

  9. 【机器学习】k近邻算法(kNN)

    一.写在前面 本系列是对之前机器学习笔记的一个总结,这里只针对最基础的经典机器学习算法,对其本身的要点进行笔记总结,具体到算法的详细过程可以参见其他参考资料和书籍,这里顺便推荐一下Machine Le ...

随机推荐

  1. The Karting 2017ccpc网络赛 1008

    The Karting championship will be held on a straight road. There are N keypoints on the road. The pat ...

  2. 关于request、response转发与重定向的简述

    在做页面的请求与响应的时候我们多用request与response进行操作,而我们大家也知道,request是表示用户发向服务器的请求,而response是对用户请求的一个响应. 关于转发和重定向,通 ...

  3. [2015-11-10]iis远程发布配置

    近期工作总结备忘,下次重新部署时再总结更新. 基本流程 一台初始化的win2012: 安装服务器角色,启用IIS,启用IIS管理服务,启用.Net相关框架等: 安装webdeploy工具(选择完整安装 ...

  4. [2013-06-05]bat脚本设置DNS

    有时候需要切换本机dns,将网络环境转至测试环境 @echo off netsh interface ip set dns name="本地连接" source=static ad ...

  5. Keepalive之nginx调度架构

    author:JevonWei 版权声明:原创作品 单主模式Keepalive之Nginx调度 实验目的:实现Nginx调度的高可用,当一台Nginx调度器故障时,启用备用的Nginx调度,在架构中, ...

  6. 搭建LAMP及wordpress

    author:JevonWei 版权声明:原创作品 安装软件包 [root@danran ~]# yum -y install httpd mariadb-server mariadb php php ...

  7. tomcat配置不用访问工程名

    <Host name="localhost" appBase="/server/webapps" unpackWARs="true" ...

  8. C# 索引器简介

    索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,是程序看起来更为直观,更容易编写. 1.索引器的定义 C#中的类成员可以是任意类型,包括数组和集合.当一个类包含了数组和集合成员时,索引器 ...

  9. 自制ACL+DHCP实验(初版)

    (实验用gns模拟器) ACL 实验拓扑: 实验要求: 1.1.1.1→3.3.3.3 不通 11.11.11.11→3.3.3.3 通 2.2.2.2→3.3.3.3 通 实验步骤: 步骤一:基本配 ...

  10. 集美大学网络1413第十一次作业成绩(团队七) -- Alpha冲刺之事后诸葛亮

    题目 团队作业7--Alpha冲刺之事后诸葛亮 团队作业7成绩  团队/分值 设想和目标 计划 资源 变更管理 设计/实现 测试/发布 团队角色. 管理.合作 总结 讨论照片 团队成员 角色.贡献 总 ...