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

简介:

本节书摘来自异步社区《数据科学:R语言实战》一书中的第1章,第1.3节,作者 【美】Dan Toomey(丹·图米),更多章节内容可以访问云栖社区“异步社区”公众号查看

1.3 关联规则

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

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

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

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

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

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


b76ed91170d7b794a746ed951fe1af28fe861239

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。

相关文章
|
5月前
|
机器学习/深度学习 数据采集 算法
r语言机器学习逻辑回归代码实战 结果分析和折线图
r语言机器学习逻辑回归代码实战 结果分析和折线图
51 1
R语言实战——Cox 比例风险回归模型
COX比例风险模型(cox proportional-hazards model)是英国统计学家D.R.COX于1972年提出的一种半参数回归模型,它可同时研究多个风险因素和事件结局发生情况、发生时间的关系,从而克服了简单生存分析中单因素限制的不足。
R语言实战——Cox 比例风险回归模型
|
Java 程序员 云栖大会
9月20日云栖精选夜读 | 如何轻松搞定数据科学面试:Python&R语言篇
对于数据科学家来说,工作的一大部分都需要在交互式编程环境中对数据进行处理、分析和可视化。 在过去几年,R语言和Python成了进行数据科学中最炙手可热的两种语言。这两种语言各有优缺点,掌握这两种语言大有益处,但是针对面试者而言,最好的方式是学习其中一种并熟练掌握。
3088 0
|
数据挖掘 数据库 Python
【R数据科学读书笔记】R语言的数据结构原来可以这样理解
R语言的数据结构原来可以这样理解 这是R数据科学的读书笔记之一,《R数据科学》是一本教你如何用R语言进行数据分析的书。即便我使用R语言快2年多了,但是读这本书还是受益颇多。
1029 0
|
自然语言处理 数据挖掘 Unix
【R数据科学读书笔记】R语言中的管道操作
R语言中的管道操作 这是R数据科学的读书笔记之一,《R数据科学》是一本教你如何用R语言进行数据分析的书。即便我使用R语言快2年多了,但是读这本书还是受益颇多。
1187 0
|
机器学习/深度学习 Python
Python赶超R语言,成为数据科学、机器学习平台中最热门的语言?
近日,kdnuggets做了一个关于数据科学、机器学习语言使用情况的问卷调查,他们分析了954个回答,得出结论——Python已经打败R语言,成为分析、数据科学和机器学习平台中使用频率最高的语言。
1181 0
|
机器学习/深度学习 大数据 物联网

热门文章

最新文章