DTW(动态时间归整)算法与DTW,fastDTW的python算例
文章目录
- DTW算法思路
- DTW算例
- 原生代码计算
- dtaidistance库计算DTW
- fastDTW算例
- 参考资料
DTW算法思路
论文地址:https://irit.fr/~Julien.Pinquier/Docs/TP_MABS/res/dtw-sakoe-chiba78.pdf
算法思路:
- 计算两个序列不同位置点对应的距离,构成一个矩阵
- 在矩阵中找到序列的起始位置对应的单元格,与最后一个单元格
- 从这个格子开始,找一条路径,从开始到结尾,使路径上单元格值加总最小
DTW算例
原生代码计算
Github地址:https://github.com/pierre-rouanet/dtw
import numpy as np
from dtw import dtwx = np.array([2, 0, 1, 1, 2, 4, 2, 1, 2, 0])
y = np.array([1, 1, 2, 4, 2, 1, 4, 2])
manhattan_distance = lambda x, y: np.abs(x - y)d, cost_matrix, acc_cost_matrix, path = dtw(x, y, dist=manhattan_distance)
print(d)
返回值中:
d
:总距离值
cost_matrix
:所有点的距离矩阵
acc_cost_matrix
:累加的距离值
path
:最短路径对应的坐标,为tuple
类型的数据
dtaidistance库计算DTW
为了加速DTW运算,可以使用第三方库dtaidistance
:
dtaidistance github页面:https://github.com/wannesm/dtaidistance
dtaidistance 文档首页:https://dtaidistance.readthedocs.io/en/latest/usage/dtw.html
from dtaidistance import dtw
import numpy as nps1 = np.array([0, 0, 1, 2, 1, 0, 1, 0, 0], dtype=np.float)
s2 = np.array([0, 1, 2, 0, 0, 0, 0, 0, 0], dtype=np.float)
d = dtw.distance_fast(s1, s2, use_pruning=True)
fastDTW算例
paper:http://cs.fit.edu/~pkc/papers/tdm04.pdf
算例来自官网:
import numpy as np
from scipy.spatial.distance import euclideanfrom fastdtw import fastdtwx = np.array([[1, 1], [2, 2], [3, 3], [4, 4], [5, 5]])
y = np.array([[2, 2], [3, 3], [4, 4]])
distance, path = fastdtw(x, y, dist=euclidean)
print(distance)
返回值中:
distance
:距离值
path
:最短路径对应的坐标,为list(tuple)
类型的数据
参考资料
WikiMapia :https://en.wikipedia.org/wiki/Dynamic_time_warping
时间序列相似性度量综述:https://zhuanlan.zhihu.com/p/69170491
HMM学习笔记_1(从一个实例中学习DTW算法):https://www.cnblogs.com/tornadomeet/archive/2012/03/23/2413363.html
DTW(动态时间归整)算法与DTW,fastDTW的python算例相关推荐
- DTW 动态时间规整
面临的问题 当数据在时间线上不对齐的时候,使用传统的匹配方法,是无法使用传统的全局匹配度量法的.DTW是一种衡量两个时间序列之间的相似度的方法,主要应用在语音识别领域来识别两段语音是否表示同一个单词. ...
- java dtw,DTW动态时间规整算法
[TOC] 1.基本介绍 DTW:Dynamic Time Warping,即动态时间归整.DTW算法基于DP动态规划思想,解决了发音长短不一的模板匹配问题,常用于语音识别(孤立词识别). HMM算法 ...
- 书本算法重现丨遗传算法:以算例MK01为例
车间调度系列文章: 1.车间调度历史文章 2.书本算法重现丨遗传算法:以算例MK01为例 引言 算法重现系列文章,都是对书本<柔性作业车间调度智能算法及其应用>一书的算法实现,该书作者:高 ...
- DTW动态时间规整算法
原文地址:https://blog.csdn.net/qcyfred/article/details/53824507 https://zhuanlan.zhihu.com/p/43247215 动态 ...
- 初识DTW(动态时间规整)算法及Python实现例
目录 1. 概要 2. 时序列相似度度量 3. DTW基本算法 4. Python实现 5. Next Action 1. 概要 DTW( Dynamic Time Warping,动态时间规整)是基 ...
- fluent算例及利用c语言程序算法,第01章 fluent简单算例17
第01章 fluent简单算例17 第一章 开始 赵玉新(国防科技大学航天学院) 注意:此文只用于流体力学的教学和科学研究,如若涉及到版权问题请于本人联系. 本章对FLUENT做了大致的介绍,其中包括 ...
- Python 算例实现Levenberg-Marquardt算法
第一次写技术博文,有错误的地方欢迎指点. 本博文是通过一个算例对LM算法的学习进行总结,编程语言是python. 理论就不讲了,网上一大堆. 拟合函数 y(x) = exp(a ...
- c语言模拟实现DTW(动态时间规整算法)
关于DTW算法的原理这篇博客写的很好https://blog.csdn.net/aa8568849/article/details/53841189?utm_medium=distribute.pc_ ...
- 基于遗传算法的BP神经网络优化算法(GA BP)实用算例
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.工程背景 二.代码(部分) 1.引入库 2.读入数据 进化过程 注意 具体安装步骤 声明 前言 基于遗传算法的BP ...
最新文章
- 让手机跑SOTA模型快8倍!Facebook AI开源最强全栈视频库:PyTorchVideo!
- monty python喜剧-50大最搞笑喜剧片,无厘头成必杀技!
- 学习JS的心路历程-参数传递方式(上)
- 系统监理师备考经验分享
- cadence -- FPM0.0.8.0生成skill工具集的方法
- 首次公开!单日600PB的计算力--阿里巴巴EB级大数据平台的进击
- Mybatis结果集映射
- comboBox绑定对象数组 c# 1614065159
- 认知NumPy数学运算库
- 解决JSP路径问题的方法(jsp文件开头path, basePath作用)
- update与fixedupdate差别
- 【OpenCV + Python】时域和频域傅里叶变换
- android人脸解锁亮屏,华为Mate 10升级人脸解锁:可能是最好用的安卓人脸识别
- C++死锁与哲学家就餐问题
- 纪念日该给女朋友送什么礼物?
- 战神遗迹服务器未响应怎么回事,战神遗迹黑屏闪退怎么处理
- python实现打卡
- 性能测试脚本的编写和调试
- 一个springboot+layui开发模板
- 一点关于Linux mv/rm命令的“有趣事“
热门文章
- python中pop用法_Python Set pop()用法及代码示例
- java线程详解_Java线程详解
- Keras-4 mnist With CNN
- VOA ECONOMICS REPORT - Junior Achievement Marks 90 Years of Business Education
- Golang 在十二赞的深度应用
- SSE图像算法优化系列二十一:基于DCT变换图像去噪算法的进一步优化(100W像素30ms)。...
- html5 canvas 头像上传
- Notepad++ 大小写转换
- rhel6.3下使用openssl来生成CA证书并颁发证书实例解析
- Linux下文本编辑 .