《数据科学:R语言实战》一1.3 关联规则

1.3 关联规则

关联规则说明了两个数据集之间的关联。此规则常用于购物篮分析。一组事务中的每个事务(购物袋)可能包含多个不同项目,那么如何能够让产品销售有关联呢?常见关联如下所示。

  • 支持度:这是事务同时包含A和B的百分比。
  • 置信度:这是事物已经包含A的情况下包含B的百分比(规则正确)。
  • 提升度:这是置信度与包含B情况下百分比的比率。请注意:若提升度为

1,则A和B是独立的。
关联的挖掘
在关联规则中,R中广泛使用的工具是apriori。

1.用法
可调用apriori规则的程序库,如下所示:

apriori(data, parameter = NULL, appearance = NULL, control = NULL)

下表对apriori程序库的不同参数进行了说明。

2.示例
需要加载apriori规则的程序库,如下所示:

> install.packages("arules")
> library(arules)

加载购物篮数据:

> data <- read.csv("http://www.salemmarafi.com/wp-content/
uploads/2014/03/groceries.csv")

然后,我们可以从数据中生成规则:

> rules <- apriori(data)

parameter specification:
confidenceminvalsmaxaremavaloriginalSupport support minlenmaxlen
target
        0.8     0.1     1 none FALSE        TRUE       0.1     1
10  rules
    ext
  FALSE

algorithmic control:
  filter tree heap memopt load sort verbose
     0.1 TRUE TRUE  FALSE TRUE  2   TRUE

apriori - find association rules with the apriori algorithm
version 4.21 (2004.05.09)    (c) 1996-2004      Christian Borgelt
set item appearances ...[0 item(s)] done [0.00s].
set transactions ...[655 item(s), 15295 transaction(s)] done [0.00s].
sorting and recoding items ... [3 item(s)] done [0.00s].
creating transaction tree ... done [0.00s].
checking subsets of size 1 2 3 done [0.00s].
writing ... [5 rule(s)] done [0.00s].
creating S4 object ...  done [0.00s].

在结果中有若干个突出的点:

正如从显示中所见,我们使用默认设置(置信度为0.8等)。
我们发现三个项目中有15295个事务(从655个全部可用项目中选取)。
我们生成了五个规则。
我们可以对已生成的规则进行检查,如下所示:

> rules

set of 5 rules
> inspect(rules)

lhsrhs              support confidence              lift
1 {semi.finished.bread=}    => {margarine=}         0.2278522 1
2.501226
2 {semi.finished.bread=}    => {ready.soups=}       0.2278522 1
1.861385
3 {margarine=}              => {ready.soups=}       0.3998039 1
1.861385
4 {semi.finished.bread=,
   margarine=}              => {ready.soups=}       0.2278522 1
1.861385
5 {semi.finished.bread=,
   ready.soups=}            => {margarine=}         0.2278522 1
2.501226

为了方便阅读,对代码的格式做了微调整。

仔细观察这些规则,发现在市场上购买面包、汤及人造黄油之间确实存在关系,至少在市场收集数据的时候是这样。

如果我们改变了计算中使用的参数(阈值),就会得到一组不同的规则。例如,核实下列代码:

> rules <- apriori(data, parameter = list(supp = 0.001, conf = 0.8))

此代码生成了500多个规则,但是这些规则的含义值得质疑,原因在于,目前规则的置信度为0.001。

时间: 2024-10-14 10:50:17

《数据科学:R语言实战》一1.3 关联规则的相关文章

《数据科学R语言实践:面向计算推理与问题求解的案例研究法》一一2.3 数据清洗和变量格式化

2.3 数据清洗和变量格式化 本节我们考虑如何将特征矩阵列表menResMat转换为合适的格式以便于数据分析.目前,这些数据值都是字符型,这对于诸如找到参赛者年龄的中位数这样的数据分析是无益的.但是,我们可以利用as.numeric()函数很容易地将年龄转换为数值型.我们需要将整个矩阵都转换为数值型矩阵吗?事实并非如此,比如将参赛者的名字转换为数值型就毫无意义.为此,我们需要创建一个可以允许拥有不同类型变量的数据框.现在我们有6个变量:参赛者姓名.居住地.年龄以及3种类型的时间.正如刚才所说,我

《数据科学:R语言实战》一第2章 序列的数据挖掘2.1 模式

第2章 序列的数据挖掘 数据科学:R语言实战 数据挖掘技术一般用于检测数据中的序列或模式.本章中,我们将试图使数据遵循一种模式,在此模式中,一个或一系列事件可以通过一致的方式预测另一个数据点. 本章描述了在数据集中查找模式的不同方法: 查找模式 在数据中查找模式 约束条件 我们可以在很多较大的数据集中查找模式.这涵盖了很多区域,比如混合人口的变化.使用手机的频率.高速公路质量衰退.年龄因素造成的事故等.不过我们能明确地感受到,有很多模式和序列正等待我们去发现. 我们可以通过使用R编程中的一些工具

《数据科学:R语言实战》一导读

前 言 数据科学:R语言实战R是为数据操作及统计计算提供语言及环境的软件包,同样也能够用图表表示产生的统计数据. R具有以下特性: 语法简洁,可对数据执行操作: 附带的工具可通过本地和互联网以多种格式加载和存储数据: 语言一致,可对内存中的数据集进行操作: 具有用于数据分析的内置和开源工具: 采用生成实时图形和将图示存储到磁盘的方法. 目 录 第1章 模式的数据挖掘1.1 聚类分析1.2 异常检测1.3 关联规则1.4 问题1.5 总结第2章 序列的数据挖掘2.1 模式2.2 问题2.3 总结第

2013年数据分析、数据挖掘、数据科学使用语言排行榜

 最受欢迎的语言仍然是R( KDnuggets 读者中有61%用户在用),python(39%),SQL(37%).SAS仍然稳定在20%之间.增长最快是:Pig/Hive/Hadoop为基础的语言.R.SQL,同时perl, C/C++, 与Unix 在下降.同时我们发现,R与python用户存在一定的重叠. 之前的KDnuggets的调查主要是关注:统计与分析软件,但有时候一个全面与强大的编程语言是需要的.这也是最近一次的KDnuggets调查关注的重点,我们咨询: 在2013年中,什么样的

手把手 | 教你爬下100部电影数据:R语言网页爬取入门指南

前言 网页上的数据和信息正在呈指数级增长.如今我们都使用谷歌作为知识的首要来源--无论是寻找对某地的评论还是了解新的术语.所有这些信息都已经可以从网上轻而易举地获得. 网络中可用数据的增多为数据科学家开辟了可能性的新天地.我非常相信网页爬取是任何一个数据科学家的必备技能.在如今的世界里,我们所需的数据都在互联网上,使用它们唯一受限的是我们对数据的获取能力.有了本文的帮助,您定会克服这个困难. 网上大多数的可用数据并不容易获取.它们以非结构化的形式(HTML格式)表示,并且不能下载.因此,这便需要

R语言数据挖掘2.1 关联规则和关联模式概述

2.1 关联规则和关联模式概述 数据挖掘的一个最受欢迎的任务就是发现源数据集之间的关系,它从不同的数据源(如购物篮数据.图数据或流数据)中发现频繁模式. 为了充分理解关联规则分析的目的,本章中所有算法均用R语言编写,这些代码使用算法的标准R添加包(如arules添加包)进行说明.

《数据科学:R语言实战》一1.2 异常检测

1.2 异常检测 我们可以使用R编程来检测数据集中的异常.异常检测可用于入侵检测.欺诈检测.系统健康状态等不同领域.在R编程中,这些被称为异常值.R编程允许用多种方法对异常值进行检测: 统计测试: 基于深度的方法: 基于偏差的方法: 基于距离的方法: 基于密度的方法: 高维方法. 1.2.1 显示异常值 R编程存在可以显示异常值的函数:identify (in boxplot). boxplot函数生成了一个盒须图(请看下图).boxplot函数有若干图形选项,比如此示例,我们无需进行任何设置.

《数据科学:R语言实战》一1.5 总结

1.5 总结 本章探讨了聚类分析.异常检测及关联规则."聚类分析"部分使用了K-means聚类.K-medoids聚类.分层聚类.期望最大化及密度估计."异常检测"部分通过使用内置R函数发现了异常值,并开发出自己的专用R函数."关联规则"部分使用了apriori功能包,用以确定数据集中的关联. 下一章我们会涉及序列的数据挖掘.

《数据科学:R语言实战》一2.3 总结

2.3 总结 本章,我们探讨了确定数据序列的不同模式.通过使用eclat函数查找数据集模式,以便寻找人口中的相似模式.使用TraMineR查找购物篮中的项目频集.使用apriori规则确定购物篮中的项目关联.使用TraMineR确定成年人职业转换期的序列,并通过序列数据可用的大量图形特征将其可视化.最后,用seqdist检查序列之间的相似点和不同点. 下一章我们将探讨文本挖掘或基于文本的数据集,而非数值形式或分类属性.