关联规则可视化python语⾔_关联规则可视化-猪猪daxia的个
⼈空间-OSCHINA-。。。
关联规则挖掘是⼀种流⾏的数据挖掘⽅法,在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 rules t of 5668 rules
结果共找出了5668条规则。按照Lift降序排,最⼤的三条规则如下:
> inspect(head(sort(rules, by = "lift"), 3)) lhs rhs support confidence lift 1 {Instant food products, soda} => {hamburger meat}
红烧鸡腿怎么烧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
如果我们想个性化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
> l
图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
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、⼩节