DTW的作用

Dynamic time warping 简称DTW,用于计算两个时间序列之间的相似性的算法,也可以理解找到两个时间序列之间的最佳匹配。DTW最著名的用途应该是用于语音识别。

Figure 1

DTW为什么会出现呢?

在计算两个序列相似性时,传统的度量方法如欧式距离、曼哈顿距离都会失效,或者说无法真正度量两个序列相似性。其原因是,这些距离度量方式是用一一对应的距离度量。

Figure 2 欧式距离

那么有没有一种根据序列的走势来计算相似性呢,比如序列A上某个点可能和序列B上多个点进行匹配。DTW就可以达到这种效果,如下图:

Figure 3  DTW

DTW算法形式

int DTWDistance(s: array [1..n], t: array [1..m]) {

DTW := array [0..n, 0..m]

for i := 1 to n

DTW[i, 0] := infinity

for i := 1 to m

DTW[0, i] := infinity

DTW[0, 0] := 0

for i := 1 to n

for j := 1 to m

cost:= d(s[i], t[j])

DTW[i, j] := cost + minimum(DTW[i-1, j  ],    // insertion

DTW[i  , j-1],    // deletion

DTW[i-1, j-1])    // match

return DTW[n, m]

}

注意,

(1)这个问题是一个动态规划问题,并且算法中经典问题——求字符串匹配的编辑距离——类似。

(2)找两个序列的匹配路径,要从最末尾的dtw(n,m)往回找,而不是从dtw(1,1)往前搜。

Reference:

Distance Functions for Sequence Data and Time Series

https://en.wikipedia.org/wiki/Dynamic_time_warping

转载本文请联系原作者获取授权,同时请注明本文来自李冰科学网博客。

链接地址:http://blog.sciencenet.cn/blog-212252-701037.html

上一篇:小白鼠成长日记2013年0213——缺乏讨论导致科研进度慢

下一篇:小白鼠成长日记20130621——听南洋理工大学的Xu dong的讲座

dynamic time warping matlab,科学网—【科研速记】Dynamic time warping - 李冰的博文相关推荐

  1. 网易公开课 matlab,科学网—如何保存网页上看到的视频 - 杨建功的博文

    平时遇到在网页上看到的视频非常好,想把它保存在本地电脑上,以供随时观看.而且这样也 不受网速影响,看着流畅.这里告诉你一个最方便的方法来保存这些视频: 1.首先打开IE浏览器观看这些视频,但注意画面下 ...

  2. matlab聚类算法,科学网—matlab-聚类算法笔记 - 孙月芳的博文

    MATLAB提供了两种方法进行聚类分析: 1.利用clusterdata 函数对数据样本进行一次聚类,这个方法简洁方便,其特点是使用范围较窄,不能由用户根据自身需要来设定参数,更改距离计算方法: 2. ...

  3. 文本框赋值guide matlab,科学网-Matlab: 学习GUI (使用GUIDE时需注意的几个问题)-刘磊的博文...

    在博文<Matlab:学习GUI(一个简单的例子)>(介绍的方法是完全用代码来建立一个GUI,实际上Matlab本身有一个设计GUI的交互系统--GUIDE,用户可以使用该系统更方便的建立 ...

  4. visio科学图形包_科学网—科研必备:几款好用的流程图工具,助力你的论文/科研绘图...

    写SCI论文常常会遇到一个问题--如何才能让读者通俗易懂地理解自己的研究?如果不能让读者了解研究过程,读者会对研究结果是否合理.如何应用存在疑问:尤其是期刊编辑和审稿人如果不能通过咱们的叙述,清楚地了 ...

  5. matlab全景图素材,科学网—meshlab查看360度全景图像 - 王琳的博文

    一. 常见的360o全景照片,图像长宽比例通常为2:1. 二 . 用matlab的sphere()函数计算球面mesh的Vertex坐标[x,y,z]以及纹理坐标[xt,yt] N = 100; [x ...

  6. 归并有效排序算法matlab,科学网—[用MATLAB写算法]之排序算法2)归并排序merge sort - 徐勇刚的博文...

    归并排序(merge sort)是一种利用分治策略(divide and conquer)进行排序的算法,算法复杂度为 $\Theta (nlog_{2}n)$ . filename: merge_s ...

  7. 乐符识别matlab,科学网—[原][Matlab][04] Midi音乐键盘 - 王楠的博文

    以前在网上读到一个用matlab播canon音乐的源码感觉很有意思,但声音还不够好. 于是想做个自己的音乐播放器,有键盘,有对应的钢琴声音,读取乐谱就能播.如下. (1)按键的音高与频率 从1到下一个 ...

  8. 音频剪切matlab,科学网—matlab的音频处理:读取,裁剪,输出和命名 - 张智昊的博文...

    网易云下架了周杰伦的几乎所有歌曲,于是尝试下载一套周杰伦的音乐全集.从微盘上下载到的音乐前面有一段奇葩的广告,长约8秒.因为广告长度一样可以轻松的裁剪处理,于是想到可以用matlab写一个简单的小程序 ...

  9. 主成分回归预测matlab,科学网—Matlab: princomp() 主成分分析 - 杨建功的博文

    Matlab 提供了进行主成分分析的函数 princomp().由于主成分分析(principile component analysis,PCA)这个概念在不同领域(统计学.数学等)的解释差异较大, ...

最新文章

  1. Modbus RTU 通信工具设计
  2. 【干货】超全!华为交换机端口vlan详解~
  3. Java多线程02(线程安全、线程同步、等待唤醒机制)
  4. javascript中打印对象显示[object object]_js如何打印object对象
  5. C++ open 打开文件
  6. [Linux] Ubuntu下的文件比较工具--meld
  7. 【英语学习】【Daily English】U12 E-World L01 Do you have Wi-Fi here?
  8. C++ Lambda表达式demo
  9. Python 2.5.7 高阶函数
  10. IT-游戏 学习资源思维导图(持续更新,欢迎关注点赞加评论)
  11. Python标准模块--multiprocessing
  12. 网站从无到有--个人(第一次)搭建。服务器环境搭建 对大家有帮助那就最好-第一次发...
  13. 0基础学java可行吗_上海0基础学JAVA可行吗?
  14. 渗透测试的种类(黑白盒)、脆弱性评估、OWASP Top 10、PTES-渗透测试执行标准
  15. Win10专业版系统Docker安装、配置和使用详细教程
  16. Axure 制作过滤筛选栏
  17. Python练习数据结构笔记
  18. 禁止苹果浏览器Safari将数字识别成电话号码的方法
  19. linux平台potplayer,Daum PotPlayer不安全库加载漏洞
  20. 【MySQL数据库开发之一】Mac下配置安装数据库-MySQL

热门文章

  1. 一次设计演进之旅 | 张逸
  2. AI算法课堂笔记20210913
  3. 视通科技AS-VMS军警指挥调度解决方案
  4. 计算机设计原则,总体设计原则
  5. 如何用ntp实现服务器时间同步!!!
  6. python旋转矩阵90°_用Python旋转矩阵
  7. 弘辽科技:拼多多客服回复率低是为什么?其考核标准是什么?
  8. ZXV10 B700V5机顶盒支持的无线网卡主芯片
  9. 一文搞懂选举人算法(Raft算法)
  10. Linux磁盘分区详解(新建分区,现有分区扩容,分区减容)