博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《数据科学:R语言实战》一1.3 关联规则
阅读量:6458 次
发布时间:2019-06-23

本文共 2226 字,大约阅读时间需要 7 分钟。

本节书摘来自异步社区《数据科学: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 minlenmaxlentarget        0.8     0.1     1 none FALSE        TRUE       0.1     110  rules    ext  FALSEalgorithmic control:  filter tree heap memopt load sort verbose     0.1 TRUE TRUE  FALSE TRUE  2   TRUEapriori - find association rules with the apriori algorithmversion 4.21 (2004.05.09)    (c) 1996-2004      Christian Borgeltset 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个全部可用项目中选取)。
我们生成了五个规则。
我们可以对已生成的规则进行检查,如下所示:

> rulesset of 5 rules> inspect(rules)lhsrhs              support confidence              lift1 {semi.finished.bread=}    => {margarine=}         0.2278522 12.5012262 {semi.finished.bread=}    => {ready.soups=}       0.2278522 11.8613853 {margarine=}              => {ready.soups=}       0.3998039 11.8613854 {semi.finished.bread=,   margarine=}              => {ready.soups=}       0.2278522 11.8613855 {semi.finished.bread=,   ready.soups=}            => {margarine=}         0.2278522 12.501226

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

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

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

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

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

转载地址:http://pnszo.baihongyu.com/

你可能感兴趣的文章
UML进行Linux内核调试
查看>>
通过url链接登录其他系统
查看>>
补全aaz288 可能有问题的过程 P_COMPL_AAZ288
查看>>
ASP.NET 使用Ajax
查看>>
又拍云引领云CDN加速 或成互联网刚性需求
查看>>
为什么要选择Apache Pulsar(二)
查看>>
alembic生成数据库升级脚本
查看>>
苹果Q1财报出炉:手机收入下滑15%,服务收入增长19%
查看>>
京东Vue组件库NutUI 2.0发布:将支持跨平台!
查看>>
AWS re:Invent大会回顾
查看>>
tensorflow两种padding方式
查看>>
滴滴自研分布式NoSQL数据库Fusion的演进之路
查看>>
爱奇艺开播助手Flutter跨平台Hybrid实践\n
查看>>
Hoshin Kanri在丰田的应用
查看>>
ThoughtWorks技术雷达发布四大技术趋势
查看>>
eBay把平台更新为Kubernetes、Envoy和Kafka:计划开源硬件和软件
查看>>
Uber开源基于web的自主可视化系统,可共享数据
查看>>
es的query及filter
查看>>
JSON
查看>>
Java 9进入第一轮问题修复阶段
查看>>