前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言关联规则可视化:扩展包arulesViz的介绍

R语言关联规则可视化:扩展包arulesViz的介绍

作者头像
机器学习AI算法工程
发布2018-03-13 11:12:52
4.3K0
发布2018-03-13 11:12:52
举报

关联规则挖掘是一种流行的数据挖掘方法,在R语言中为扩展包arules。然而,挖掘关联规则往往导致非常多的规则,使分析师需要通过查询所有的规则才能发现有趣的规则。通过手动筛选大量的规则集是费时费力。在本文中,我们基于探索关联规则的R扩展包arulesViz,提出几个已知的和新颖的可视化技术。

1、简介

算法步骤这里不做详细介绍,下面是几个重要的变量的定义:

代码语言:javascript
复制
Supp(X=>Y) = P(X)
Conf(X=>Y) = P(Y|X)
Lift(X=>Y) = CONF(X=>Y)/SUPP(Y) = P(X and Y)/(P(X)P(Y))

(Lift)是避免了一些不平衡数据标签的偏差性, Lift越大,则数据质量较好;Lift越小,则数据越不平衡。

2、数据准备和arulesViz的统一接口

使用扩展包arulesViz之前,我们首先需要加载它。这个包会自动加载其他所需要的数据包,如arules。如下面的数据集Groceries包含在arules包里面。

代码语言:javascript
复制
> library("arulesViz")
> data("Groceries")
> summary(Groceries)

设置支持度为0.001,置信度为0.5,R语句入下:

代码语言:javascript
复制
> rules <- apriori(Groceries, parameter = list(support = 0.001, confidence = 0.5))
> rules
set of 5668 rules

结果共找出了5668条规则。按照Lift降序排,最大的三条规则如下:

代码语言:javascript
复制
> inspect(head(sort(rules, by = "lift"), 3))
 lhs rhs support confidence lift
1 {Instant food products, 
 soda} => {hamburger meat} 0.001220132 0.6315789 18.99565
2 {soda, 
 popcorn} => {salty snack} 0.001220132 0.6315789 16.69779
3 {flour, 
 baking powder} => {sugar} 0.001016777 0.5555556 16.40807

3、散点图

直接用plot画出散点图

代码语言:javascript
复制
> plot(rules)

图1

从图1可以看到高lift对应低supp。另外一些科学家认为最有意思的规则在supp/conf的边沿上,如t图1所示。

代码语言:javascript
复制
> head(quality(rules))
 support confidence lift
1 0.001118454 0.7333333 2.870009
2 0.001220132 0.5217391 2.836542
3 0.001321810 0.5909091 2.312611
4 0.001321810 0.5652174 2.212062
5 0.001321810 0.5200000 2.035097
6 0.003660397 0.6428571 2.515917

如果我们想个性化plot图中的坐标的特征,将颜色表示conf,lift为纵标轴,如下所示。

图2

代码语言:javascript
复制
> plot(rules, measure = c("support", "lift"), shading = "confidence")

图2中的y轴是lift,这里可以比较清晰地看出很多的规则都有高lift。

图3

代码语言:javascript
复制
> plot(rules, shading = "order", control = list(main = "Two-key plot"))

图3中,supp为x轴,conf为y轴,颜色的深浅表示“order”,例如规则里频繁项的个数。从图中可以看出,order和supp有着很强的负相关性。这在关联规则中也是熟知的。

散点图方法提供了互动功能的选择和缩放,可以使用interactive=TRUE来实现。

图4

代码语言:javascript
复制
> sel <- plot(rules, measure = c("support", "lift"), shading = "confidence",
+ interactive = TRUE)

图4中选择了lift较高的几个点,并且使用inspect按钮,在终端的界面上便显示了这些规则。

4、基于分组矩阵的可视化

基于矩阵的可视化中只能有效处理规则数较少的可视化,因为大的规则集通常也有大量LHS/RHS(左边的集合/右边的集合)的限制。在这里,我们引入一个新的可视化技术,通过使用聚类方法将规则分组,可提高基于矩阵的可视化。

一个直接的方法来聚类频繁项集,便是定义两个项集(Xi和Xj )之间的距离。一个比较好的选择是使用Jaccard distance。

有几种方法,以聚类关联规则和频繁项集解决高维和数据稀疏问题。有的建议要观察包含在频繁项集中的项的交易的个数。然而,他对从相同频繁项集产生的聚类规则有着很强的偏向。由频繁项集的定义,一个频繁项集的两个子集都将适用于许多常见的交易。这种偏见会导致大多只是从集合关联规则重新发现已知的频繁项集的结构。

为了使分组速度加快并且有效地分为K类,这里使用了K-means聚类方法。这个思路是LHS和RHS统计上是相似的则被归为一类。相对于频繁项集的其他聚类结果,这种方法得出含有替代品的分组(如“黄油”和“人造黄油”),这些通常是很少一起购买的,但因为他们有着相似的RHS。相同的分组方法也作用于后项。然而,由于挖掘的规则只得出一个RHS的项集,因此这里没有组合爆炸的问题,但这样的分组通常也是不需要的。

在可视化图中,LHS是列,RHS是行,lift是圈的颜色深浅,圈的大小事聚合后的支持度。LHS的个数和分组中最重要(频繁)项集显示在列的标签里。lift从左上角到右下角逐渐减少。

代码语言:javascript
复制
> plot(rules, method = "grouped")

图5

lift从左上角到右下角的颜色逐渐变小。这里有3条规则包含“Instant food products ”,RHS超过2个其他项集的是“hamburger meat”。

组的个数默认是20个,我们也可以通过添加control = list(k = 50)来改变组的个数。

5、基于图的可视化

基于图形的可视化技术,利用顶点代表项或者项目集,和边表示规则中关系的关联规则。强度通常使用颜色或者边的宽度来表示。

基于图形的可视化提供了一个规则非常明确的展示,但他们规则越过则往往容易变得混乱,因此是比较可行的是使用非常小的规则集。对于下面的图,我们选择了10条具有高lift的规则。

代码语言:javascript
复制
> subrules2 <- head(sort(rules, by = "lift"), 10)

arulesViz包含了一些基于图形的可视化展示,使用Rgraphviz扩展包的一些接口。默认的版本点代表项目集,表代表规则项集之间的有向边 。

图6

代码语言:javascript
复制
> plot(subrules2, method = "graph")

图7

代码语言:javascript
复制
> plot(subrules2, method = "graph", control = list(type = "items"))

图7着重于规则是如何由个别项目组成的,并显示哪些规则共享的项目。arulesViz的内置基于徒刑的可视化只对规则数较少时有效。探索大量规则的可视化,需要先进的图形放大,过滤,分组和着色节点的交互功能。

7、平行坐标图(Parallel coordinates plot )

平行坐标图将多维数据共享,使得每个维度上分别显示在x轴和y轴。每个数据点是由连接的值对于每个维度中的线表示。每个数据点由连接每个维度的线表示。

8、小节

参考文件:《Visualizing Association Rules-Introduction to the R-extension Package arulesViz

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-11-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据挖掘DT数据分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、简介
  • 2、数据准备和arulesViz的统一接口
  • 3、散点图
  • 4、基于分组矩阵的可视化
  • 5、基于图的可视化
  • 7、平行坐标图(Parallel coordinates plot )
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档