前言
一个本地零售商有一个数据库,存储了去年夏天的10000条交易。分析数据后,数据科学家团队已经识别出了以下统计:
{battery}在6000笔交易中出现
{sunscreen}在5000笔交易中出现
{sandals}在4000笔交易中出现
{bowls}在2000笔交易中出现
{battery, sunscreen}在1500笔交易中出现
{battery, sandals}在1000笔交易中出现
{battery, bowls}在250笔交易中出现
{battery, sunscreen, sandals}在600笔交易中出现
- 上面项集的支持度是多少?
- 假设最小支持度为0.05,哪些项集可以被认为是频繁的呢?
- {battery}→{sunscreen}和{battery, sunscreen}→{sandals}的置信度分别是多少?哪条规则是更有趣的呢?
- 列出从统计中可以生成的所有候选规则。在最小置信度是0.25时,哪些规则是有趣的?在这些有趣的规则中,哪些规则是最有用的(最不巧合)呢?
按照题目顺序来撰写
这是整理好的
1.项集的支持度
{battery},{sunscreen},{sandals},{bowls}为1-项集。
{battery, sunscreen},{battery, sandals},{battery, bowls}为2-项集。
{battery, sunscreen, sandals}为3-项集。
该题求每个单独项集的支持度,先不管前项支持度还是后项支持度,公式为:
S
=
∣
T
(
X
)
∣
∣
T
∣
S=\frac{\left| T\left( X \right) \right|}{\left| T \right|}
S=∣T∣∣T(X)∣
项集 | 支持度 |
---|---|
{battery} | 60% |
{sunscreen} | 50% |
{sandals} | 40% |
{bowls} | 20% |
{battery, sunscreen} | 15% |
{battery, sandals} | 10% |
{battery, bowls} | 2.5% |
{battery, sunscreen, sandals} | 6% |
2.频繁项集
频繁项集:支持度大于或等于Smin最小支持度的项集。
题目给定最小支持度为5%,所以{battery},{sunscreen},{sandals},{bowls},{battery, sunscreen},{battery, sandals},{battery, sunscreen, sandals}为频繁项集。
3.置信度,有趣,杠杆率
如下为{battery} -> {sunscreen}的列联表。
sunscreen | not sunscreen | SUM | |
---|---|---|---|
battery | 1500 | 3500 | 5000 |
not battery | 4500 | 500 | 5000 |
SUM | 6000 | 4000 | 10000 |
可见,{battery}→{sunscreen}的置信度为1500/5000=0.3。
如下为{battery, sunscreen}→{sandals}的列联表。
sandals | not sandals | SUM | |
---|---|---|---|
battery,sunscreen | 600 | 900 | 1500 |
not battery,sunscreen | 3400 | 5100 | 8500 |
SUM | 4000 | 6000 | 10000 |
可见,{battery, sunscreen}→{sandals}的置信度为600/1500=0.4。
什么是有趣,这里补充一段老师给的一段注释:
在收集输出规则之后,可能有必要使用一种或多种方法,以在业务环境中验证样本数据集的结果。第一种方法可以通过置信度、提升度和杠杆率之类的统计度量来建立。如果规则涉及互相独立的项目或涵盖极少数交易,则被认为无趣的,因为它们捕捉到的可能是虚假的关系。置信度可以测量X和Y一起出现的概率与X出现的概率的相关性(即x和Y一起出现的概率与X出现的概率,这两者的比值)。置信度可用于识别规则的有趣度。提升度和杠杆率都可以将X和Y的支持度与它们各自的支持度进行比较。
在使用关联规则挖掘数据时,一些规则的生成可能是纯属巧合。类似提升度和杠杆率之类的度量可以确保识别有趣的规则,而非巧合的规则。 可以通过主观参数来建立另一组标准。即使有较高的置信度,可以从主观上认为一条规则是无趣的,除非它揭示了任何非预期的盈利行为。例如,像{paper}→{pencil}这样的规则在主观上可能是无趣或者没有意义的,尽管它的支持度和置信度很高。与此相反,像{diaper}→{beer}这样的规则满足了最小支持度和最小置信度,就可以在主观上认为是有趣的,因为这条规则是非预期的,可能会给零售商提供一个交叉销售的机会。将主观意识掺入到规则评价中是一项艰难的任务,它需要与领域专家合作。
总结一下,有趣
即客观上满足最小置信度和最小支持度,并考虑提升度和杠杆率,主观上揭示了任何非预期的盈利行为。补充一下什么是杠杆率和提升度,都与支持度有关,因此两个指标的作用应该相似,我们只选择提升度来计算。
杠杆率
一个特定项目集合实际出现的频率与期望出现频率之间的差异,这里的期望频率是在项目彼此独立的情况下预期会出现的频率。公式为
L
e
v
e
r
a
g
e
{
X
}
→
{
Y
}
=
S
{
X
}
→
{
Y
}
−
S
{
X
}
⋅
S
{
Y
}
Leverage_{\left\{ X \right\} \rightarrow \left\{ Y \right\}}=S_{\left\{ X \right\} \rightarrow \left\{ Y \right\}}-S_{\left\{ X \right\}}\cdot S_{\left\{ Y \right\}}
Leverage{X}→{Y}=S{X}→{Y}−S{X}⋅S{Y}
提升度
评估两个项目(或项目集)之间的相关性。它帮助我们理解一个项目的出现对另一个项目出现的影响程度,尤其是在考虑它们是否相互独立时。公式为
L
i
f
t
{
X
}
→
{
Y
}
=
S
{
X
}
→
{
Y
}
S
{
X
}
⋅
S
{
Y
}
Lift_{\left\{ X \right\} \rightarrow \left\{ Y \right\}}=\frac{S_{\left\{ X \right\} \rightarrow \left\{ Y \right\}}}{S_{\left\{ X \right\}}\cdot S_{\left\{ Y \right\}}}
Lift{X}→{Y}=S{X}⋅S{Y}S{X}→{Y}
有实用价值的关联规则应是规则提升度大于1的规则,提升度越大越好。
算一下Lift {battery}→{sunscreen},小于1。
L
i
f
t
{
b
a
t
t
e
r
y
}
→
{
s
u
n
s
c
r
e
e
n
}
=
S
{
b
a
t
t
e
r
y
}
→
{
s
u
n
s
c
r
e
e
n
}
S
{
b
a
t
t
e
r
y
}
⋅
S
{
s
u
n
s
c
r
e
e
n
}
=
0.15
0.6
⋅
0.5
=
0.5
Lift_{\left\{ battery \right\} \rightarrow \left\{ sunscreen \right\}}=\frac{S_{\left\{ battery \right\} \rightarrow \left\{ sunscreen \right\}}}{S_{\left\{ battery \right\}}\cdot S_{\left\{ sunscreen \right\}}}=\frac{0.15}{0.6\cdot 0.5}=0.5
Lift{battery}→{sunscreen}=S{battery}⋅S{sunscreen}S{battery}→{sunscreen}=0.6⋅0.50.15=0.5
算一下Lift {battery,sunscreen}→{sandals},等于1。
L
i
f
t
{
b
a
t
t
e
r
y
,
s
u
n
s
c
r
e
e
n
}
→
{
s
a
n
d
a
l
s
}
=
S
{
b
a
t
t
e
r
y
,
s
u
n
s
c
r
e
e
n
}
→
{
s
a
n
d
a
l
s
}
S
{
b
a
t
t
e
r
y
,
s
u
n
s
c
r
e
e
n
}
⋅
S
{
s
a
n
d
a
l
s
}
=
0.06
0.4
⋅
0.15
=
1
Lift_{\left\{ battery,sunscreen \right\} \rightarrow \left\{ sandals \right\}}=\frac{S_{\left\{ battery,sunscreen \right\} \rightarrow \left\{ sandals \right\}}}{S_{\left\{ battery,sunscreen \right\}}\cdot S_{\left\{ sandals \right\}}}=\frac{0.06}{0.4\cdot 0.15}=1
Lift{battery,sunscreen}→{sandals}=S{battery,sunscreen}⋅S{sandals}S{battery,sunscreen}→{sandals}=0.4⋅0.150.06=1
因此,没有一条关联规则为有趣的。
4.置信度、提升度
根据题意,整理得到以下规则置信度
项集 | 置信度 |
---|---|
{battery}->{sunscreen} | 30% |
{battery}->{sandals} | 20% |
{battery}->{bowls} | 5% |
{battery, sunscreen}->{sandals} | 40% |
{battery, sandals}->{sunscreen} | 60% |
{battery}->{sunscreen},{battery, sunscreen}->{sandals},{battery, sandals}->{sunscreen}的置信度大于25%,为有趣。接下来再计算一下提升度。
项集 | 提升度 |
---|---|
{battery}->{sunscreen} | 0.5 |
{battery, sunscreen}->{sandals} | 1 |
{battery, sandals}->{sunscreen} | 1.2 |
因此,只有{battery, sandals}->{sunscreen}规则是实用的。
总结
拖了好久才把关联规则的简单例题1写完。文中可能会用错误,因为是我根据自己目前所掌握的知识,一点点写的,如发现错误,大声地和我说。有关R语言的内容,下一篇应该可能就会更新啦[假笑。。。]