【发布时间】:2014-05-31 05:50:54
【问题描述】:
什么是合适的算法或策略来将模式聚集在一个多维数字数组中,其中元素具有不同的长度。
一个例子是包含这些元素的数组:
0: [4,2,8,5,3,2,8]
1: [1,3,6,2]
2: [8,3,8]
3: [3,2,5,2,1,8]
我们的目标是在这些数字列表中找到并聚集模式。例如,在元素“3”中有模式:“2,5,2,8”(不连续),也可以在元素“0”中找到。 找到的模式编号在元素“0”和元素“3”中都不连续,但它们的顺序相同。
注意:示例使用整数是为了更清楚,但实际数据将使用浮点数,当两者在给定阈值内分开时,它们将被视为“匹配”,而不是完全相同。
.
编辑 2: 如果我们只选择最长的公共子序列,虽然 Abhishek Bansai 的方法很有帮助,但我们可能会错过其他重要的模式。比如这两个序列:
0: [4,5,2,1,3,6,8,9]
1: [2,1,3,4,5,6,7,8]
最长的公共子序列是 [2,1,3,6,8],但我们会遗漏另一个重要的子序列 [4,5,6,8]。
.
编辑 1: Abhishek Bansai 的回答似乎是解决这个问题的好方法。
这是Longest Common Subsequence algorithm:
使用此算法将每个元素与其他元素进行比较将返回所有模式,下一步是从这些模式中生成集群。
【问题讨论】:
-
我猜你想要最长公共子序列算法。谷歌为它。
-
这似乎是要走的路。非常感谢;)
-
最长的公共子序列是好的,尽管检查描述限制的“编辑 2”。
标签: arrays algorithm multidimensional-array cluster-computing data-mining