频繁序列模式挖掘

本文介绍了序列模式挖掘的概念及其在购物清单分析中的应用,讲解了GSP算法的自连接和剪枝过程,以及SPADE算法如何通过ID_LIST避免全表扫描,以提高效率。GSP算法在计算支持度时需多次全表扫描,而SPADE算法通过维护ID_LIST减少扫描次数,降低计算复杂性。最后,文章建议在实际应用中考虑数据量和存储效率,如果不需要严格顺序规则,关联规则挖掘(如FPGrowth)可能更合适。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.频繁序列模式挖掘

序列模式是频繁模式的一种特殊情况,它们的应用范围完全不一样!如:

购买物品
尿布、啤酒、可乐
面包、尿布、啤酒

上述购物清单是两个用户的购物清单,根据上面的清单,我们可以发现尿布和啤酒组合起来一起购买的情况较多,因此超市可以根据这样的频繁项集分析,将尿布和啤酒放在较近的地方,或者将尿布和啤酒同时促销等增加销量。

而序列模式如:

u1购买物品
电视
高清机顶盒
u2购买物品
电视、电冰箱
高清机顶盒、冰箱清洁剂

上述购物清单是两个用户不同时间前后两次的购物清单,可以发现高清机顶盒往往在某个用户购买电视机以后的某次购物中出现在下次的购物清单中,但往往很少出现机顶盒在购买电视机之前出现,这是因为电视机的购买历史带来了(促进了)机顶盒的销售,因此超市可以根据这样的频繁序列模式分析,将机顶盒推荐给购买了电视的用户,或者在电视热卖以后增加机顶盒的促销来增加销量。

很常见的是,我们可以用许多算法挖掘频繁模式如Apriori和FPGrowth等,而为了对含有时间顺序的数据集进行频繁模式的挖掘,就有了GSP和SPADE算法。

定义:序列模式挖掘,假定数据集D,有n个序列(Seq),每个Seq由多个事件(Event)组成,所有Event都是时间有序的。

若有一个Seq,它是数据集D的部分序列的子序列,那么它的支持度的计算方式为:

support(s) = s在n个序列中出现的次数

如果spport(s)>min_support,则我们可以把它称为频繁序列,或者序列模式。下面是两个常用的挖掘算法:


2.GSP算法


GSP算法其实就是一个类Apriori算法,它也就两个步骤:1.进行自连接 2.进行剪枝

序列如何进行自连接呢?有这样一个定义,即对于序列S1和S2,如果序列S1去掉第一项,与序列2去掉最后一项得到的序列相同,那么序列1和序列2就是可以连接的。把序列2的最后一项加入到序列1中,得到一个新的连接,即可以作为序列1和序列2连接的结果。

GSP算法的剪枝条件与Apriori算法的剪枝条件相同:

1.如果序列的支持度小于最小支持度,那么就会被剪掉 

2.如果序列是频繁序列,则它的所有子序列必定是频繁序列;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值