关联规则:面包和尿布一起促销的时候,卖出率更高。这就是一条关联规则。
因为面包+尿布被一起购买的这个“模式”频繁出现,所以叫做“频繁模式”:在数据集中经常出现的模式。
频繁数据项集 和 关联规则挖掘:找到数据间的内在关联。
频繁模式为什么重要?
这是一种数据预处理,为后续采用数据挖掘的手段/工具提供方法。
概念
一家商铺的一日交易信息。
itemset:一次交易
support count:出现频率
relative support: X出现次数/交易总数
如果X的support超过阈值(minsup threshold),就称为“频繁”(Frequent)
关联规则:(X->y)
support:一个交易包含x(面包)∪Y(尿布)的次数。
confidence:条件概率 P(X|Y)=(分母上的每个交易里面含有面包的交易数)/买了尿布的交易数
与P(Y|x)。
挖掘算法:apriori(低效率)
频繁项集的子集一定也是频繁的
{尿布,面包,坚果}频繁,则{尿布,面包}i一定也频繁
Apriori算法
- 扫DB,获取1-itemset(一元频繁项集,其实就是每个商品的出现次数都要统计出来(候选集),起步效率就很低=》根据supmin挑出正式集。=》两两拼凑,生成2长度的候选集;再根据supmin挑出长为2的正式集=》再两两拼凑(去重)生成长为3的候选集…
- 从长为k的频繁项集生成长为k+1的候补集 (根据supmin threshold筛选)
- 从DB中测试候补集是否频繁
- 当没有新的频繁项/候补集生成时终止
- 结果:这k个正式集做∪
优点:简单
缺点:效率低 (数据量大,5小时起步)
挖掘代码: