我正在寻找 Dynamic Time Warping 之间的差异和 Needleman-Wunsch algorithm .
基本上,他们都找到了一个对齐分数。我需要计算短字符串序列(<20 个字符)之间的对齐(相似性)分数,并且有几千个。
我无法弄清楚这两种算法之间的区别,也无法决定为我的工作选择哪一种。任何人都可以请清除我的差异吗?
最佳答案
这两种算法都使用动态编程来确定顺序数据的对齐方式。这里的主要区别在于 i,j
的得分如何决心,决意,决定。
在动态时间扭曲中,成本(由 i, j
的函数确定)被添加到集合 (i-1, j)
的最小值上。 , (i-1, j-1)
, (j, i-1)
.
在 NW,集合的最大值 (i-1, j) + weight
, (i-1, j-1) + S(Ai, Bi)
, (j, i-1) + weight
被采用,使得 S(A, B)
通过在相似性矩阵中查找来确定。
如果您想通过可枚举空间进行对齐并可以创建相似性矩阵(例如蛋白质序列或单词),请使用 NW,但是,如果您要对齐无法创建相似性矩阵的数据(例如时间序列),并且需要使用一个函数,用DTW。
对齐可能是一件棘手的事情,您可能需要调整参数才能使事情正确。
关于time-series - 动态时间扭曲和 Needleman-Wunsch 算法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6949884/