rpy2:DTW包无法使用提供的步进模式

2024-05-20 20:21:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在尝试使用rpy2访问“R”DTW(动态时间扭曲)包来计算多变量时间序列之间的距离。也许因为时间序列真的不同,所以我得到了错误"No warping path exists that is allowed by costraints"

我认为库中默认的step模式是对称的,但是我想用非对称的step模式进行测试,但是当我试图将step模式指定为“不对称”时,玩具代码就不起作用了。下面是代码

import numpy as np
from sklearn import cluster
import rpy2.robjects.numpy2ri
rpy2.robjects.numpy2ri.activate()
from rpy2.robjects.packages import importr
import rpy2.robjects as robj


"""Example of DTW calculation, it's 2 variables , 5 timestamps and 16 timestamps each"""
R = rpy2.robjects.r
DTW = importr('dtw')

# Generate our data
template = np.array([[1,2,3,4,5],[1,2,3,4,5]]).transpose()
rt,ct = template.shape
query = np.array([[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]]).transpose()
rq,cq = query.shape

templateR=R.matrix(template,nrow=rt,ncol=ct)
queryR=R.matrix(query,nrow=rq,ncol=cq)
alignment = R.dtw(templateR,queryR,keep=True, step_pattern=R.asymmetric)
alignment = R.dtw(templateR, queryR, keep=True)
dist = alignment.rx('distance')[0][0]

print dist

我还研究了以下示例,但它不起作用:

rpy2 dtw missing argument window.size

谢谢!在


Tags: importstepnp时间模式template序列query