IDA数据挖掘,使用Apriori算法,寻找涉及三种产品的所有规则,跪求大神,谢谢谢谢~~~
首先可以令 集合 {A,B,C,D,E,F} 对应于 {面包,牛奶,果酱,咖啡,鸡蛋,火腿}。
得到候选集c1 = {A,B,C,D,E,F},可以得到其支持度【每个元素在事务数据中出现的记录的频率】,分别为{100%, 100%, 75%, 25%, 50%, 50%},由于此时的支持度为70%,所以可以得到频繁集L1={A,B,C}
由L1={A,B,C},可以得到此时的候选集合c2={{A,B}, {A,C}, {B,C}},对应的支持度分别为{100%,75%,75%},从而可以得到频繁集L2={{A,B}, {A,C}, {B,C}}
由L2,可以得到此时候选集c3={{A,B,C}},此时支持度为{75%},可以得到频繁集L3={{A,B,C}}
由此可以得到频繁项目集为:L3 ={{A,B,C}}
对于L3,我们可以得到哪些关联规则呢?
如下:
由L3,我们可以得到它所有的非空真子集:{{A}, {B}, {C}, {A,B}, {A,C}, {B,C}
那么,可以分别计算每个子集构成的关联规则的置信度,然后根据给出的90%去过滤!
【引理:对于子集S,计算confidence= support(L3) / support(S),如果confidence >= 90%,则输出 S->(L3 - S) ,此时的-代表集合的差】
{A} : confidence = support(L3} / support({A}) = 75% / 100% = 75% < 90%,不处理;
{B} : confidencde = support(L3) / support({B}) = 75% / 100% < 90%,不处理;
{C} : confidencde = support(L3) / support({C}) = 75% / 75% > 90%,输出{C}->{B,A};
{A,B} : confidence = support(L3) / support({A,B}) = 75% / 100% < 90%,不处理;
{B,C} : confidence = support(L3) / support({B,C}) = 75% / 75% > 90%,输出 {B,C} -> {A}
{A,C}: confidence = support(L3) / support({A,C}) = 75% / 75% > 90%,输出{A,C}->{B}
那么可以得到它的关联规则:
{C}->{B,A}
{B,C} -> {A}
{A,C}->{B}
也即:
{果酱}->{面包,牛奶}
{牛奶,果酱}->{面包}
{面包,果酱}->{牛奶}
不用谢,我是雷锋~
2023-08-22 广告