频繁集的生成,别老靠死板的遍历了,用点约束技巧,效率能提不少。像Sum(S)
这种约束,限制一下项集总数或属性值,能直接砍掉大批没用的组合,算是比较聪明的剪枝法。挖关联规则时,数据库一大,Apriori 那种老方法就挺吃力。你要是玩过Apriori
,会知道候选集爆炸有多烦,这时候加上点业务相关的条件,比如“只看总消费大于 100 的组合”,效率提升不是一点点。
约束式频繁集就像给挖掘过程戴了个方向盘,能精准控制要什么数据。比如在用户行为里,筛出“买了 X 且总消费超过 Y”的组合,实用。写代码时也好,判断条件加一行,逻辑清晰,还不用改大结构。
嗯,要是你想再深入点,可以看看下面这些资料,都是我之前收藏的:
- 频繁项集连接步骤的约束条件,讲得比较细,逻辑清楚
- 使用 Apriori 算法挖掘频繁项集与关联规则,经典方法温故一下
- 数据挖掘 - 关联规则挖掘,入门到进阶
- 加权负关联规则挖掘,适合想折腾复杂场景的
- 时态约束关联规则挖掘流程详解,讲时序约束的,还挺少见
如果你现在正头大于如何控制挖掘范围,可以优先试试这种带约束的思路,挺管用。数据库一大,加约束才是王道。