DTW算法的python实现

Python024

DTW算法的python实现,第1张

动态时间规整/规划(Dynamic Time Warping, DTW)是一个比较老的算法,大概在1970年左右被提出来,最早用于处理语音方面识别分类的问题。

这里有两篇我认为讲的很好的DTW算法详解,链接在此:

如果对DTW算法感兴趣可以去看一下~

https://www.cnblogs.com/Daringoo/p/4095508.html

http://blog.csdn.net/raym0ndkwan/article/details/45614813

在这里我主要用python实现了DTW算法

DTW(dynamic time warping)是时间序列分析中一个很早(1994年,论文的年纪比我都大)也很经典的算法了。它其实借用的是经典算法的“动态规划”的思想。一般来说,时间序列数据如果要做分类,那么大体可以将实验步骤分为:数据预处理(去噪或数据增强),数据表征,选取分类器(机器学习算法还需要选取合适的距离计算方法)。虽然DTW算法也给出了路径,但我实在想不出如何利用path,因此我更倾向于将DTW算法归为距离计算方法。

第一部分Introduction不再介绍。直接介绍第二部分:Dynamic Time Warping

作者首先提到,dtw算法成功应用在了语音识别领域——研究者将现实中一个单词的发音(其实就是一条时间序列)与模板库中单词的发音去一个个匹配。怎么衡量匹配程度的大小呢?

我看了一下你的链接和程序.

这是你没定义dtwOptSet,当然dtw和dtwOptSet都是作者自定义的函数,不在matlab的标准库里,这个图也是明显用了3个subplot画的

如果你想运行这个,请去作者推荐的

http://mirlab.org/jang/books/dcpr/introMatlabProgram.asp?title=1-2%20Example%20Programs%20(%A6p%A6%F3%A8%FA%B1o%B5{%A6%A1%BDX)

下载example就可以了.