【问题标题】:Finding all largest sequences找到所有最大的序列
【发布时间】: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


【解决方案1】:

由于您似乎更有兴趣通过查找所有匹配项(每个编辑 1,2)来找到序列之间的“相似性”,因此您会发现 @987654321 领域有大量研究@。来自维基:

在生物信息学中,序列比对是一种排列 DNA、RNA 或蛋白质序列的方法,以识别可能由序列之间的功能、结构或进化关系引起的相似区域。核苷酸或氨基酸残基的比对序列通常表示为矩阵内的行。在残基之间插入间隙,以便在连续列中对齐相同或相似的字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-14
    • 2021-09-06
    • 2017-05-28
    • 2011-04-28
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    相关资源
    最近更新 更多