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

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

1、简介

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

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包里面。

> library("arulesViz")
> data("Groceries")
> summary(Groceries)

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

> rules <- apriori(Groceries, parameter = list(support = 0.001, confidence = 0.5))
> rules
set of 5668 rules

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

> 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画出散点图

> plot(rules)

图1

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

> 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

> plot(rules, measure = c("support", "lift"), shading = "confidence")

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

图3

> plot(rules, shading = "order", control = list(main = "Two-key plot"))

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

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

图4

> 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从左上角到右下角逐渐减少。

> plot(rules, method = "grouped")

图5

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

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

5、基于图的可视化

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

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

> subrules2 <- head(sort(rules, by = "lift"), 10)

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

图6

> plot(subrules2, method = "graph")

图7

> 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

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2015-11-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT派

用python怎样识别验证码?(含源码)

验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的 防火墙功能,但是随时OCR技术的发展,验证码暴露出来的安全问题也越来越严峻。本文介绍了一套...

1260
来自专栏落影的专栏

iOS音频能力提升——PCM基础

前言 音频是移动端很重要的能力,像直播类、在线教育类、唱歌类、短视频类等APP,都离不开音频功能。 具备音频相关知识与能力,对未来的职业发展有很大优势。 本...

3965
来自专栏思影科技

NATURE NEUROSCIENCE:大脑动态隐性状态是行为导向的工作记忆的基础

来自牛津大学的学者Michael J Wolff等人在Nature Neuroscience期刊上发文,提出了一种功能扰动的方法来探测大脑的隐性状态,...

2656
来自专栏python开发者

字符型图片验证码识别完整过程及Python实现

字符型图片验证码识别完整过程及Python实现 1   摘要 验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的 防火墙 功能,但是随时OCR...

1.2K8
来自专栏社区的朋友们

3D 图形学基础 (上)

本文主要针对一些对3D有兴趣的同学,普及图形学知识,不涉及深入的技术探讨和样例介绍。对于不是从事相关开发的同学也能了解相关的知识。

7272
来自专栏ITCloud的专栏

热力图 : 位置大数据服务的可视化窗口

热力图(Heat Map),是一种简单但非常直观的信息展示方式,TStack 平台里的一个重要的应用服务。最早是在1991年由软件设计师 Cormac Kinn...

1.8K0
来自专栏Ryan Miao

手机端web学习基础--from慕课网

web知识零零散散的知道一些,但总感觉不够系统,遇到问题不知道如何解决,因此特此来系统的学习一下web前端的知识。从慕课网的web基础看起。下面学习http:/...

3295
来自专栏程序员的知识天地

5个方法对于重量级网站的图片优化

图像是每个网站的关键组成部分。 根据 HTTP Archive ,图像占网页上需要加载总数据的比例达60%以上。 几乎成为所有网站上重要的组成部分,无论是电子商...

1022
来自专栏何俊林

Android Multimedia框架总结(十七)音频开发基础知识

近年来,唱吧,全民K歌,QQ音乐,等成为音频软件的主流力量,音频开发一直是多媒体开发中不可或缺的部分,如为什么这个声音这么不清楚,为什么耳机里有电流声,为什么录...

2475
来自专栏机器人网

谷歌输入法背后的机器智能

很多人每天花费大量时间使用移动设备键盘:撰写电子邮件,发短信,参与社交媒体等。 然而,移动键盘仍然在处理速度方面处于劣势。 用户平均在移动设备上的打字速度比在物...

3317

扫码关注云+社区