【发布时间】:2016-04-15 19:13:27
【问题描述】:
我需要帮助来找到合适的算法来解决我的目标。
假设我有一个包含 10000 条关于某些事件的记录的数据集。我有 50 种事件类型,因此我的数据集中的每条记录都分配了一些事件(从 1 到 50)。
我的数据集示例(2 列:记录号、事件号):
1. 13
2. 24
3. 6
4. 50
5. 24
6. 6
...
10000. 46
正如您在此示例中所见,我有一个数字 24、6 的重复序列。现在我想找出我的数据集中有多少这些以及其他未知序列。我也想知道每个序列的多重性。我检查了 Rabin–Karp 算法,但在我看来,我必须先指定模式/序列。但是我希望该算法能够自行找到它。
我被告知还要查看层次聚类,但我不确定它是否符合我的要求。
总而言之,我想找到一种算法,可以在上述数据集中找到所有重复序列及其多重性。
【问题讨论】:
-
您可以构建一个后缀树并使用它来识别重复的子序列。
-
按事件类型分组(保存索引)。对于每个组(大于一个成员)按第一个事件类型之后的事件类型分组,依此类推。
-
使用已发布的十几种 ## 顺序频繁模式最小化算法中的任何一种。他们旨在发现这样的模式:购买产品 a 的客户往往会在第二天回来购买电缆 b。
-
@SelçukCihan 我看过后缀树,但在我看来,使用后缀树我只能在 mzydatabase 中找到已知模式。但是,我想在事先不知道的情况下检测数据库中的所有模式/序列。如果这可以使用后缀树来实现,您能否指点我一些关于这个问题的文章/教程?谢谢
标签: c# algorithm logic data-mining