多变量时间序列相似度量
单变量时间序列可以看成是向量,其相似度量最常用的两种方法是欧式距离和DTW,将其应用到多元时间序列(可用矩阵存储表达)。
令Q为多元时间序列矩阵,该时间序列共有n个变量,即有n列,每一列维度为m。再令C为另一个多元时间序列,有n个变量,每一列维度为l,m和l不一定相等。
1、矩阵DTW的两种原始方法DTWi和DTWd
根据论文On the Non-Trivial Generalization of Dynamic Time Warping to the Multi-Dimensional Case,之前有如下两种方法求矩阵间的DTW值。(途中Q和C分别只有两个变量x,y)
(a)python实现代码
def matrix_DTW_horizon(X,Y):m = X.shape[0]n = Y.shape[0]matrix_DTW = {}for i in range(m):matrix_DTW[(i,-1)] = float('inf')for i in range(n):matrix_DTW[(-1,i)] = float('inf')matrix_DTW[(-1,-1)] = 0for i in range(m):for j in range(n):matrix_DTW[(i,j)] = dist(X[i,:],Y[j,:]) + min(matrix_DTW[(i-1,j)],matrix_DTW[(i,j-1)],matrix_DTW[(i-1,j-1)])return np.sqrt(matrix_DTW[(m-1,n-1)])
def dist(a,b):
return np.sqrt(sum(np.power(a-b,2)))
(b)python实现代码
def matrix_DTW_vertical(X,Y):distance = 0n = X.shape[1]for i in range(n):temp = DTW(X[:,i],Y[:,i])distance = distance + temp # 简单求和?return distance
2、本论文基于两种原始方法的思考和改进
该论文认为以上两种方法在不同数据集下表现效果不一样,并且实验证明了这一点。于是提出一种算法,硬根据实际情况,通过筛选判断后选择相应的方法来作为DTW相似衡量。
具体算法及它的判断方法如下:
分别用上述两种矩阵形似度量的方法,求得一次查询,Q的最近邻,设置得分函数S,即两个方法得出的最近邻值之比(epsilon值是为了防止分母为0)。当S大于threshold,则选用(b)方法,反之选用(a)方法。
对于设置threshold值,用了以下算法:
S_iSuccess:使用(a)方法预测正确,但是使用(b)方法预测错误时,将此时得分函数的值添加到S_iSuccess;
S_dSuccess:使用(b)方法预测正确,但是使用(a)方法预测错误时,将此时得分函数的值添加到S_dSuccess;
find_scores函数就是为了得到上述两个集合。
Learn_Threshold中Decision_tree的具体细节要去看论文中的参考文献[17][12]
3、思考
此外,方法(b)跟单变量时间序列求DTW值几乎一样,除了将两点之间的欧氏距离即(X[I]-Y[j])**2(X,Y此时是向量)改成了两向量之间的欧式距离即dist(X[i,:],Y[j,:]) ,其他的思路几乎一样,由此可见,近些年对单变量时间序列DTW的改进方法low_bound,如Lb_keogh,Lb_Enhanced等同样适用。
多变量时间序列相似度量相关推荐
- 时间序列分析 pdf_多变量时间序列的聚类分析与相似查询——多变量时间序列的相似查询分析...
多变量时间序列的相似查询分析 1 多变量时间序列相似的定义 多变量时间序列的相似查询,用于描述在给定的多变量时间序列数据库中查找与待分析多变量时间序列相似或匹配的时间序列段.但与传统的待分析对象的精确 ...
- 深度学习时间序列预测:GRU算法构建多变量时间序列预测模型+代码实战
深度学习时间序列预测:GRU算法构建多变量时间序列预测模型+代码实战 注意参考:深度学习多变量时间序列预测:GRU算法构建单变量时间序列预测模型+代码实战 GRU(Gate Recurrent Uni ...
- 深度学习多变量时间序列预测:LSTM算法构建时间序列多变量模型预测交通流量+代码实战
深度学习多变量时间序列预测:LSTM算法构建时间序列多变量模型预测交通流量+代码实战 LSTM(Long Short Term Memory Network)长短时记忆网络,是一种改进之后的循环神经网 ...
- 深度学习多变量时间序列预测:Bi-LSTM算法构建时间序列多变量模型预测交通流量+代码实战
深度学习多变量时间序列预测:Bi-LSTM算法构建时间序列多变量模型预测交通流量+代码实战 人类并不是每时每刻都从一片空白的大脑开始他们的思考.在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见 ...
- 深度学习多变量时间序列预测:Encoder-Decoder LSTM算法构建时间序列多变量模型预测交通流量+代码实战
深度学习多变量时间序列预测:Encoder-Decoder LSTM算法构建时间序列多变量模型预测交通流量+代码实战 LSTM是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要 ...
- 深度学习多变量时间序列预测:卷积神经网络(CNN)算法构建时间序列多变量模型预测交通流量+代码实战
深度学习多变量时间序列预测:卷积神经网络(CNN)算法构建时间序列多变量模型预测交通流量+代码实战 卷积神经网络,听起来像是计算机科学.生物学和数学的诡异组合,但它们已经成为计算机视觉领域中最具影响力 ...
- 深度学习多变量时间序列预测:GRU算法构建时间序列多变量模型预测交通流量+代码实战
深度学习多变量时间序列预测:GRU算法构建时间序列多变量模型预测交通流量+代码实战 GRU是LSTM网络的一种效果很好的变体,它较LSTM网络的结构更加简单,而且效果也很好,因此也是当前非常流形的一种 ...
- 教你搭建多变量时间序列预测模型LSTM(附代码、数据集)
来源:机器之心 本文长度为2527字,建议阅读5分钟 本文为你介绍如何在Keras深度学习库中搭建用于多变量时间序列预测的LSTM模型. 长短期记忆循环神经网络等几乎可以完美地模拟多个输入变量的问题, ...
- 基于Keras的LSTM多变量时间序列预测
LSTM是一种时间递归神经网络,它出现的原因是为了解决RNN的一个致命的缺陷.原生的RNN会遇到一个很大的问题,叫做The vanishing gradient problem for RNNs,也就 ...
- 组合预测 | MATLAB实现EMD-KPCA-LSTM、EMD-LSTM、LSTM多变量时间序列预测对比
组合预测 | MATLAB实现EMD-KPCA-LSTM.EMD-LSTM.LSTM多变量时间序列预测对比 目录 组合预测 | MATLAB实现EMD-KPCA-LSTM.EMD-LSTM.LSTM多 ...
最新文章
- 聋哑六年级计算机课教学进度计划,小学六年级下册信息技术教学计划三篇
- qt 使用非系统字库
- 作品[RFileRead/WriteStream 练习] for s60 fp2
- 当前默认服务器维护尚未完成,HTTP 1.1状态代码及其含义说明
- FlexChart: 针对AJAX的Flash绘图应用
- 一段 关于 观察者 和 唯识 的文字 (转帖摘录)
- linux c语言编程内嵌汇编,gcc编译c语言中内嵌汇编
- 【LOJ#572】Misaka Network 与求和(莫比乌斯反演/杜教筛/min_25筛)
- Chromium 内核新款 Edge 浏览器对比评测,微软找回面子全靠它了
- openwrt挂载u盘(ntfs)_如何在 Bitcoin 的源码基础上生成一条自己的链 08:将bitcoin移植到openwrt...
- jquery 文字轮播
- 数论学习-初等数论基础总览
- php 资深面试题,高级php程序员面试题
- 《神雕侠侣》——一见杨过误终生,格格一笑很倾城
- jQuery教程(整理自W3CSchool)(第一部分)
- 大数据时代,我们必守的三条底线,大数据杀熟,不可忍
- python ddt mysql_40- 数据驱动(ddt)
- 红外光波长对血氧饱和度的影响
- 第一年19元月租100g
- 会声会影实操项目流程