文章目录
前言
关联分析:基于已有数据,找到事物间的简单关联关系或序列关联关系。
关联分析成果(即关联关系)的核心体现形式是关联规则,包括简单关联规则或序列关联规则。
一提到关联规则,就会想到Apriori算法,又会想到啤酒尿布的故事。但我们老师说这个故事是用来吸引人用的,确实这两个事物放在一起,挺有趣的。
今天先介绍一下有关简单关联规则的基本概念,这次参考的主要是 薛薇. (2014). R语言数据挖掘 (3rd ed.). 中国人民大学. ,收获颇多,也把好东西整理好分享给大家。之后再尝试用R语言练习一些简单的问题。
一、概念
1.事务和项集
名称 | 解释 |
---|---|
事务 | 简单关联分析的分析对象。(行为) |
事务标识 | 确定一个事务的唯一标识。 |
项目集合(简称项集) | 一组项目的集合 |
项目 | 例:商品、网页链接、险种 |
事务=事务标识(TID)+项目集合X
I是项目全体,包含K个项目,记为
I
=
{
I
1
,
I
2
,
⋯
,
I
k
}
I=\left\{ I_1,I_2,\cdots ,I_k \right\}
I={I1,I2,⋯,Ik}
则项集
X
⊆
I
X\subseteq I
X⊆I
若项集X中包含k个项目,则称项集X为k-项集
下表是4名顾客某一天的购买数据,TID是事务标识,A,B,C,D,E分别为商品代码。
TID | 项集X |
---|---|
1 | {B,E} |
2 | {A,C,D} |
3 | {A,B,C,E} |
4 | {B,D} |
这里包含4个事务,I包含5个项目(k=5)。对于3号顾客(第3个事务),一次性购买了4中商品,其项集X是个4-项集。本例包含2个2-项集、1个3-项集、1个4-项集。
2.表示形式
一般表示形式:
X
→
Y
(
S
=
s
%
,
C
=
c
%
)
X\rightarrow Y\left( S=s\%,C=c\% \right)
X→Y(S=s%,C=c%)
其中:
X:规则的前项(项目、项集、包含项目以及逻辑操作符的逻辑表达式)
Y:规则的后项(一个项目,表示某种结论或事实)
S:支持度
C:置信度
含义:有c%的把握程度相信有前项则会有后项,该关联规则的适用性为s%。
例:
{
性别
(
男
)
⋂
收入
(
>
5000
)
}
→
{
品牌
(
A
)
}
(
S
=
80
%
,
C
=
85
%
)
\left\{ \text{性别}\left( \text{男} \right) \bigcap{\text{收入}\left( >5000 \right)} \right\} \rightarrow \left\{ \text{品牌}\left( A \right) \right\} \left( S=80\%,C=85\% \right)
{性别(男)⋂收入(>5000)}→{品牌(A)}(S=80%,C=85%)
含义:有85%的把握程度相信收入高于5000元的男性倾向于购买A品牌,该规则适用性为80%。
这里的X为包含项目以及逻辑操作符的逻辑表达式。
二、有效性和实用性
1.有效性的测度
(1)规则置信度(confidence)
含义:简单关联规则可行度或把握程度的测量。包含项目X的事务中同时也包含项目Y的概率。
C
∣
X
∣
→
∣
Y
∣
=
∣
T
(
X
⋂
Y
)
∣
∣
T
(
X
)
∣
C_{\left| X \right|\rightarrow \left| Y \right|}=\frac{\left| T\left( X\bigcap{Y} \right) \right|}{\left| T\left( X \right) \right|}
C∣X∣→∣Y∣=∣T(X)∣∣T(X⋂Y)∣
其中
|T(X)|:包含项目X的事务数。
|T(X与Y)|:同时包含项目X和项目Y的事务数。
(2)规则支持度(support)
含义:测度了简单关联规则应用的普适性。项目X和项目Y同时出现的概率。
S
∣
X
∣
→
∣
Y
∣
=
∣
T
(
X
⋂
Y
)
∣
∣
T
∣
S_{\left| X \right|\rightarrow \left| Y \right|}=\frac{\left| T\left( X\bigcap{Y} \right) \right|}{\left| T \right|}
S∣X∣→∣Y∣=∣T∣∣T(X⋂Y)∣
|T|:总事务数。
若规则的支持度太低,则说明规则不具有一般性。
此外还有
前项支持度:
S
∣
X
∣
=
∣
T
(
X
)
∣
∣
T
∣
S_{\left| X \right|}=\frac{\left| T\left( X \right) \right|}{\left| T \right|}
S∣X∣=∣T∣∣T(X)∣
后项支持度:
S
∣
Y
∣
=
∣
T
(
Y
)
∣
∣
T
∣
S_{\left| Y \right|}=\frac{\left| T\left( Y \right) \right|}{\left| T \right|}
S∣Y∣=∣T∣∣T(Y)∣
一个有效的简单关联规则应有较高的置信度和较高的支持度。因此需要给定一个合理(太大:无法找到如此高可信度和代表性规则,太小:可信度不高和失去一般性)的最小置信度Cmin和最小支持度Smin的阈值。
即满足
(
S
∣
X
∣
→
∣
Y
∣
⩾
S
min
)
⋂
(
C
∣
X
∣
→
∣
Y
∣
⩾
C
min
)
\left( S_{\left| X \right|\rightarrow \left| Y \right|}\geqslant S_{\min} \right) \bigcap{\left( C_{\left| X \right|\rightarrow \left| Y \right|}\geqslant C_{\min} \right)}
(S∣X∣→∣Y∣⩾Smin)⋂(C∣X∣→∣Y∣⩾Cmin)规则才是有效的。
2.实用性的测度
(1)提升度(lift)
在以下两种情况下,即使置信度和支持度大于给定的最小置信度和最小支持度,简单关联规则也可能没有实际指导意义。
1.简单关联规则揭示的简单关联关系可能仅仅是一种随机关联关系
男 | 女 | 合计 | |
---|---|---|---|
购买 | 400 | 600 | 1000 |
未购买 | 0 | 0 | 0 |
合计 | 400 | 600 | 1000 |
如上表,反映关于某超市购买牛奶与否和性别关系的调查。得到下面这条简单关联规则:
{
牛奶
}
→
{
性别
(
男
)
}
(
S
=
40
%
,
C
=
40
%
)
\left\{ \text{牛奶} \right\} \rightarrow \left\{ \text{性别}\left( \text{男} \right) \right\} \left( S=40\%,C=40\% \right)
{牛奶}→{性别(男)}(S=40%,C=40%)在最小置信度和支持度为20%时,该规则是一条有效规则。
但顾客中男性的比例(后项支持度)也是40%,即购买牛奶的顾客的男性比例等于所有顾客中男性的比例。大白话讲就是,来这超市的男顾客都会买牛奶,那我们怎么去探究购买牛奶与否和性别关系。如果这条简单关联规则有效,却会认为,有40%的把握程度相信购买牛奶的是男顾客,该规则适用性为40%。
2.简单关联规则揭示的简单关联关系可能是反向关联关系
吃 | 不吃 | 合计 | |
---|---|---|---|
优异 | 60 | 40 | 100 |
不优异 | 66 | 14 | 80 |
合计 | 126 | 54 | 180 |
如上表,反映某教育研究机构关于中学生的成绩优异与否和吃早餐关系的调查。得到下面这条简单关联规则:
{
成绩
(
优异
)
}
→
{
早餐
(
吃
)
}
(
S
=
33.3
%
,
C
=
60
%
)
\left\{ \text{成绩}\left( \text{优异} \right) \right\} \rightarrow \left\{ \text{早餐}\left( \text{吃} \right) \right\} \left( S=33.3\%\text{,}C=60\% \right)
{成绩(优异)}→{早餐(吃)}(S=33.3%,C=60%)在最小置信度和支持度为20%时,该规则是一条有效规则。
但调查者是吃早餐(后项支持度)是70%,即成绩优异的学生中吃早餐的比例低于总体比例。大白话讲就是,成绩优异与吃早餐的关联是反向的。
因此需要引入一个新的测度方法
提升度(lift)
含义:项目X的出现对项目Y(研究项)出现的影响程度。
L
∣
X
∣
→
∣
Y
∣
=
C
∣
X
∣
→
∣
Y
∣
S
∣
Y
∣
=
S
∣
X
∣
→
∣
Y
∣
S
∣
X
∣
S
∣
Y
∣
L_{\left| X \right|\rightarrow \left| Y \right|}=\frac{C_{\left| X \right|\rightarrow \left| Y \right|}}{S_{\left| Y \right|}}=\frac{S_{\left| X \right|\rightarrow \left| Y \right|}}{S_{\left| X \right|}S_{\left| Y \right|}}
L∣X∣→∣Y∣=S∣Y∣C∣X∣→∣Y∣=S∣X∣S∣Y∣S∣X∣→∣Y∣
如果项目X对项目Y没有影响,项目X独立于项目Y,则
S
∣
X
∣
→
∣
Y
∣
=
S
∣
X
∣
S
∣
Y
∣
S_{\left| X \right|\rightarrow \left| Y \right|}=S_{\left| X \right|}S_{\left| Y \right|}
S∣X∣→∣Y∣=S∣X∣S∣Y∣此时规则的提升度等于1.
所以,有实用价值的简单关联规则应是规则提升度大于1的规则,即X的出现对Y有促进作用。规则提升度越大越好。
超市那部分的提升度为40%/40%=1,教育机构那部分的提升度为60%/70%<1,因此,尽管它们都是有效的,但没有实用性。
总结
明天开始练习关联规则R语言代码相关的东西。今天时间序列分析课做的AR,MA,ARMA小组任务,也要找个时间开个坑,自学一下。