标题图片出处:Rule Generation
“文章原创,转载请注明出处”
一、简介
在统计学中,变量与变量之间的关系是统计结构的重要参数,统计的核心问题也就是研究变量与变量之间的关系。如果变量与变量之间不独立,那么这两个变量之间肯定存在一定的关联性,那么如何处理度量这个关联性,在统计中就称为关联分析。
列联表是传统统计学中度量两个分类变量之间关系强弱的方法,但是这个方法是对于两个固定的变量进行的一种测量。在机器学习中,常常会遇到大规模的变量,这时候更倾向于从众多的变量中最快地找到关联性最强的两组或多组变量。那么使用列联表就显得不太合适了,此时应该使用什么方法呢?
二、关联规则
首先介绍2个定义:
- k项集:设 I={i1,i2,…,im} 是 m 个待研究的项构成的有限项集,对于给定的事物数据表 T={T1,T2,…,Tn} ,其中任意的 Ti 是 I 中的 k 项组成的集合,称之为k项集。
- 关联规则:形如 X→Y 的形式,其中 X⊆I , Y⊆I ,且有 X⋂Y=∅ 。
度量方式
对于一个项集,我们正常用支持度来度量它的频繁程度,其实就是其在数据集中出现的比例,这个很容易理解,就不多说了。
那么下面要讨论的就是:如何度量一个关联规则。一般使用下面两个概念:
- 支持度S:定义为X和Y同时出现在一个事务中得可能性,即: S(X⇒Y)=∣T(X∨Y)∣/∣T∣ 其中, ∣T(X∨Y)∣ 表示同时包含X和Y的事务数, ∣T∣ 表示总事务数。
- 支持度C:定义为出现在关联规则前项中得事务中出现关联规则后项的比例,即: C(X⇒Y)=∣T(X∨Y)∣/∣T(X)∣ 其中, ∣T(X)∣ 表示包含X的事务数。
例子
这边举个简单地例子,方便理解上面的概念。比如设计一个购物数据:
id | items |
---|---|
1 | AB |
2 | AC |
3 | C |
4 | ABC |
5 | BC |
上面数据的意思,比如第一行就表示,id为1的人购买了A和B两个物品,其他的意思类似。那么这个AB就是一个2项集,因为存在ABC三种物品,这边就有6种关联规则: A⇒B , A⇒C , B⇒C , B⇒A , C⇒A , C⇒B 。
那么如何计算一个关联规则的支持度与可信度呢?
试试关联规则 A⇒B :
是不是很简单呢。试试计算一下其他的关联规则,多算几次就能够很了解其中的含义了。
关联规则的作用
-
关联规则的目的在于,找到变量之间支持度和可信度都比较高的那些关联规则。
-
关联规则的支持度,用于度量关联规则在数据库中得普适程度,是对关联规则重要性(适用性)的一种度量。
-
关联规则的可信度,这是一个相对指标,是对关联规则准确度的一个度量。值越高,代表这个关联规则的后项依赖前项的可能性比较高。
小节
这篇简单介绍了一下关联分析的一些概念问题,以及如何度量一个关联规则。但是,试想一想,要是 I 中包含的项很多,事物数据表 T 也很大,那么要计算所有关联规则的支持度和可信度,难度可想而知!这时候就需要使用一些算法去解决这个问题,现在比较流行的算法就是:处理静态关联规则的Apriori算法和处理动态关联规则的Carma算法。
转自:http://jackycode.github.io/blog/2014/05/04/associationg-ananlysis/