概述
本文是对R中arules包的随包文档“Introduction to arules – A computational environment for mining association rules and frequent item sets”的意译。源文档采用R Markdown撰写,并按如下流程生成本页面:
重要词语英汉对照表:
英文 | 汉译 |
---|---|
support | 支持度 |
confidence | 置信度 |
lift | 提升度 |
interestingness | 兴趣度 |
transaction | 事务 |
item | 项 |
superset | 超集 |
subset | 子集 |
itemset/item set | 项集 |
association | 关联信息 |
association rule | 关联规则 |
frequent itemset | 频繁项集 |
maximal frequent itemset | 最大频繁项集 |
frequent closed itemset | 频繁闭项集 |
sample with replacement | 放回抽样 |
基础知识
基本定义
- ={ i1,i2,…,in} : n 个二值属性项(item)构成的集合。
={t1,t2,…,tm} : m 个事务构成的集合,称为数据库(database),每个事务拥有唯一的ID并包含 的一个子集。- X→Y :表示规则(rule),其中 X,Y⊆I 并且 X∩Y=∅ ,项集(itemset) X 和
Y 分别称为规则的前提(antecedent)和结论(consequent),或者分别称为左手边(LHS,left-hand-side)和右手边(RHS,right-hand-side)。- supp(X) :项集 X 的支持度,
conf(X→Y) :规则 X→Y 的置信度1。
频繁项集与关联规则的挖掘是一种流行的并经过深入研究的方法,用于发现大规模数据库中变量之间的有趣关系。本文展示了R的arules包,它提供了一种基本工具,用于创建和处理输入数据集,分析输出数据集和输出规则。该包还提供了调用两种快速挖掘算法的接口,它们是Apriori和Eclat算法的流行的C语言版本,由Christian Borgelt实现。这些算法可用于挖掘频繁项集、最大频繁项集、闭频繁项集以及关联规则。
Piatetsky-Shapiro利用不同兴趣度度量,分析和表示从数据库发现的强规则。Agrawal等在强规则的基础上,提出了从事务数据中挖掘关联规则的问题。以超市为例,交易数据集中的规则 { milk,bread}→{ butter} 表示:若顾客购买了 milk 和 bread ,也会购买 butter 。
为了从包含所有可能规则的集合中抽取出感兴趣的规则,可以利用基于各种显著性和兴趣度的度量作为约束条件。最著名约束条件就是支持度和置信度的最小阈值。
发现频繁项集(frequent itemset)可视为非监督学习问题的一种简化形式,称之为模型发现(mode finding)或块搜索(bump hunting)。在这些问题中,每个项视为一个变量。它们的目标是找到模型值(prototype value),使得概率密度估值在取这些值时足够大。然而,对于变量众多的实际应用,概率估计不一定可靠,且计算太复杂。这就是在实际应用中用频繁项集代替概率估计的原因。置信度可解释为概率 P(Y∥X) 的一种估计,它表示事务包含规则的LHS时,从事务中找到规则的RHS的概率。
关联规则(association rule)需要同时满足最小支持度和最小置信度的约束。在支持度的中间值到最低值范围内,通常可从数据库找出大量的频繁项集。支持度的定义保证了频繁项集的所有子集也必是频繁的。因此,只挖掘所有的最大频繁项集(maximal frequent itemset)就够了,这些频繁项集不是其它任何频繁项集的子集。另一种减少挖掘项集数目的方法是只挖掘频繁闭项集(frequent closed itemset)2。若包含项集的所有事务都不包含与该项集相适的超集,则称该项集是闭的。频繁闭项集是最大频繁项集的一个超集(superset)。最大频繁项集的优势不仅在于它可生成所有的频繁项集,而且它们还包含了所有频繁项集的支持度信息,这些信息在数据挖掘过程完成后,对计算额外的兴趣度量(interest measure)起着至关重要的作用(例如,计算所得项集生成的规则的置信度、全置信度)。
当挖掘到过多满足支持度和置信度约束的关联规则时,解决该问题切实可行的方法是利用额外的兴趣度量,进一步过滤或排列这些规则。基于此的一个流行度量是提升度(lift)。规则的提升度定义为