数据挖掘——关联规则,频繁项集挖掘方法
搞数据分析数据挖掘相关的人都知道: 啤酒和尿布这个“梗”,下面以购物篮为例:
TId | 项集 |
1 | {面包,牛奶} |
2 | {面包,尿布,啤酒,鸡蛋} |
3 | {牛奶,尿布,啤酒,可乐} |
4 | {面包,牛奶,尿布,啤酒} |
K项集:包含0个或多个项的集合(一般只查找项集多的集合,出现少的项集可以忽略不计)
TId:事务T是一个非空项集,表中每一行代表一个事务。这里TId=4.
关联规则 定义式:
α=>β(s,c)
s:支持度:指事务中包含α,β的百分比,用于做判断。
c:置信度
频繁项集:项集中出现的频度大于min_support
例如:表格中事务
当K=1时,一项集。面包:3(3/TId=75%),牛奶:3(3/TId=75%),尿布:3(75%),啤酒:(75%)
当K=2时,二项集(事务中同时包含指定的两个)。{面包,牛奶}:2(2/4=50%),{面包,尿布}:2(2/4=50%),{尿布,啤酒}:3(75%),{牛奶,啤酒}:2(50%)
以此类推3,4......
关联规则度量:支持度s和置信度c
置信度c:指事务中包含a事务的同时也包含b的百分比。eg: confidence(a=>b)=p(b|a)=p(aUb)/p(a)
Tid | items |
1 | {A,B,C} |
2 | {A,C,D} |
3 | {A,D,E} |
4 | {B,E,F} |
5 | {B,C,D,E,F} |
k=2: AD:60% (这里只找一个研究,读者可以罗列出所有的二项集)
度量规则:
A->D (60%,100%) :AD的支持度时60%,置信度60%/60%=100% D->A(60%,75%):DA的支持度是60%,置信度60%/80%=75%
其中A->D 置信度100%表示存在A一定有D,D->A 置信度75%表示存在D有75%的可能有A。
提升度: life=p(aUb)/p(a)p(b)