数据库中的常见模式

时间:2012-04-01 14:17:03

标签: regex pattern-matching data-mining

我需要在事件序列的数据库中找到常见的模式。所以,我考虑过the longest common substring problemthe python implementation寻找解决方案。

请注意,我不是仅搜索最长的公共子字符串:我接受数据库中经常出现的较短公共子字符串。

您能否就此问题提出一些算法,实施技巧或一般建议?

2 个答案:

答案 0 :(得分:1)

之前的回答建议Apriori。但是Apriori如果你想找到频繁的序列是不合适的,因为Apriori不考虑时间(同样,Apriori是一种效率低下的算法)。

如果要查找多个序列共有的子序列,使用序列模式挖掘算法(如PrefixSpan和SPAM)会更合适。

如果你想做一些预测,另一种选择也就是使用顺序规则挖掘算法。

我有顺序模式挖掘和顺序规则挖掘算法的开源Java实现,您可以从我的网站下载:http://www.philippe-fournier-viger.com/spmf/

我认为您不能使用这些算法一次性处理8 GB的数据。但这可能是一个起点。实际上,通过实施基于磁盘的策略,其中一些算法可以适用于非常大的数据库。

答案 1 :(得分:0)

您是否考虑过频繁项目集挖掘方法,例如Apriori