【问题标题】:rpy2 : DTW package not working with step pattern providedrpy2:DTW 包不适用于提供的步骤模式
【发布时间】: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


    【解决方案1】:

    库中的默认步进模式是 symmetric2。要与其他人一起测试,请键入:

    alignment = R.dtw(templateR,queryR,keep=True, step_pattern=DTW.asymmetric)

    不是 R.asymmetric

    希望对你有帮助

    【讨论】:

      最近更新 更多