【发布时间】:2023-10-03 13:15:01
【问题描述】:
我目前正在尝试使用 rpy2 访问“R”DTW(动态时间扭曲)包来计算多元时间序列之间的距离。也许因为时间序列真的不同,我收到了错误"No warping path exists that is allowed by costraints"
我认为库中的默认步进模式是对称的,但我想用非对称步进模式对其进行测试,但是当我尝试将步进模式设置为“不对称”时,玩具代码不起作用。以下是代码
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
谢谢!
【问题讨论】:
标签: python r python-2.7 rpy2