在多维数组中对模式进行聚类的适当算法或策略是什么,其中元素具有不同的长度。
一个例子是包含这些元素的数组:
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:
使用此算法将每个元素与每个其他元素进行比较将返回所有模式,下一步将是从这些模式中生成集群。
答案 0 :(得分:0)
由于您似乎更感兴趣的是通过查找所有匹配来查找序列之间的“相似性”(编辑1,2),您会发现{{{{{{{{ 3}}。来自维基:
在生物信息学中,序列比对是一种排列DNA,RNA或蛋白质序列的方法,以识别可能是序列之间功能,结构或进化关系的相似区域。核苷酸或氨基酸残基的比对序列通常表示为基质内的行。在残基之间插入间隙,使相同或相似的字符在连续的列中对齐。