【问题标题】:What are the differences between Dynamic Time Warping and Needleman-Wunsch algorithm?动态时间规整和 Needleman-Wunsch 算法有什么区别?
【发布时间】:2011-10-20 11:06:56
【问题描述】:

我正在寻找Dynamic Time WarpingNeedleman-Wunsch algorithm 之间的区别。

基本上,他们都找到了一个对齐分数。我需要计算字符串短序列(

我无法弄清楚这两种算法之间的差异并决定为我的工作选择哪一种。任何人都可以请我清除差异吗?

【问题讨论】:

  • 为什么不使用简单的编辑距离,比如Levenshtein distance
  • 编辑距离对我不起作用,因为我需要先对齐字符串序列
  • 我想知道 bioconducter 是否更适合这个问题?

标签: time-series alignment bioinformatics data-mining


【解决方案1】:

这两种算法都使用动态编程来确定顺序数据的对齐方式。这里的主要区别是如何确定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吧。

对齐可能是一件棘手的事情,您可能需要调整参数才能使事情正确。

【讨论】:

  • 感谢您的回答。但是我仍然有困惑。您的意思是我不能使用 DTW 进行字符串对齐吗? DTW 和 NW 会为给定的字符串序列产生相同的对齐方式吗?
  • 您可以使用 DTW 进行 sting 对齐,只要您可以将成本计算为 A、B 的函数。它们是否为给定序列产生相同的对齐取决于 1)序列 2) NW 的间隙惩罚和相似矩阵 3) DWT 的成本函数。
  • 是的..我可以将成本计算为 A、B 的函数。鉴于我在相同条件下运行两种算法,序列的内容将如何影响比对。
  • NW 不喜欢空位,因为 DTW 不分配空位罚分,而是平等地权衡每个事件、插入、删除和空位。在这两种算法下,序列 N 可能会根据其序列进行不同的比对,但我无法证明这一点。两个相同长度和组成的小字符串将对齐相同,但随着长度和组成的差异发挥作用,很难想象两个算法会将它们对齐相同。他们找出的方法是对对齐方式进行并排比较,并寻找表明不同的特征
  • 我敢说它们在算法上几乎相同。 NW 中最高的“权重”似乎对应于 DTW 中相邻单元格中先前的最低分数。在我看来,DTW 是离散加权 NW 的连续和逆版本。你会同意,还是我错过了什么?
【解决方案2】:

动态时间规整 (DTW) 和 Needleman-Wunsch 算法 (NW) 的根本区别在于序列元素在比对中的计算方式。

DTW 的一个基本假设是一个序列是另一个序列的“时间扭曲”版本,即目标序列要么被拉伸(一对多对齐),要么被压缩(多对一对齐)或非扭曲(一对一对齐)相对于源序列。

因此,DTW 与 间隙 的概念不兼容,其中一个序列中的一个或多个元素与另一个序列中的任何元素都不匹配(一对无或无对-一个对齐)。相比之下,NW 明确说明了间隙,其惩罚不是要插入/删除的元素的函数。

如果您需要对齐字符序列,DTW 仅适用于序列彼此严格“时间扭曲”版本的不太可能的情况,例如“wow”和“wwooowww”。一旦一个序列包含无法解释为拉伸另一个序列的结果的元素,例如“wow”与“wwooowww !!!”中的感叹号,DTW 是不合适的,因为它会强制您定义成本插入一个“!”就相对于“w”或“o”的距离而言。

【讨论】:

    【解决方案3】:

    使用 Jarowinkler 进行相似性测量,使用 Levenshtein 测量距离如何(最小版本数)

    【讨论】:

      猜你喜欢
      • 2013-12-12
      • 1970-01-01
      • 2015-07-01
      • 1970-01-01
      • 2013-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-24
      相关资源
      最近更新 更多