mlpy - 动态时间扭曲取决于 x?

2023-12-09

I am trying to get the distance between these two arrays shown below by DTW. enter image description here

我正在使用Pythonmlpy提供的套餐

dist, cost, path = mlpy.dtw_std(y1, y2, dist_only=False)

我知道 DTW 确实负责“转移”。另外,从上面可以看出,mlpy.dtw_std()只接受 2 个一维数组。所以我希望无论我如何向左/向右移动曲线,dist函数返回的值永远不应该改变。

然而,在将我的绿色曲线向右移动一点后,dist由返回mlpy.dtw_std()变化!

Before shifting: Python mlpy.dwt_std reports dist = 14.014 enter image description here

After shifting: Python mlpy.dwt_std reports dist = 38.078 enter image description here Obviously, since the curves are still those two curves, I don't expect the distances to be different!

为什么会这样呢?哪里出了问题?


我再重申一下我的理解,如果有错误的地方请指正。我观察到,在你的两个图中,你的蓝色一维系列保持相同,而绿色则被拉伸。您是如何做到这一点的,您已在 2013 年 9 月 19 日 9:36 的帖子中对此进行了解释。你的前提是,因为(1)DTW“照顾”时移,(2)你所做的一切都是纵向拉伸一个时间序列,不影响 y 值,(推论:)你期望距离保持不变。

[(1),(2)] 和 [(Inference)] 之间缺少一些链接。也就是说,当您更改信号集本身时,与映射相对应的各个距离值将发生变化。这将导致整体距离计算的差异。绘制扭曲路径、成本网格以亲自查看。

让我们看一个过于简单化的案例......

Let a=range(0,101,5)= [0,5,10,15...95, 100]

and b=range(0,101,5)= [0,5,10,15...95, 100]。

现在直观地说,您/我会期望 2 个信号之间一一对应(对于 DTW 映射),并且所有映射的距离均为 0,信号看起来相同。

现在如果我们做,b=range(0,101,4)= [0,4,8,12...96,100], a 和 b 之间的 DTW 映射仍然会以 a 的 0 映射到 b 的 0 开始,并以 a 的 100 映射到 b 的 100 结束(边界约束)。另外,因为 DTW“负责”时移,所以我还期望两个信号的 20 秒、40 秒、60 秒和 80 秒相互映射。 (我自己没有尝试过对这两个进行 DTWing,这是凭直觉说的,所以请检查一下。发生非直觉扭曲的可能性也很小,具体取决于允许的步骤模式/全局约束,但让我们使用直觉扭曲为了便于理解/简单起见)。

对于其余数据点,显然,与映射相对应的距离现在不为零,因此总距离也不为零。我们的距离/总成本值已从零变为非零。

现在,当我们的信号过于简单化、线性增加时,就会出现这种情况。想象一下,当您拥有现实生活中的非单调信号并需要找到它们之间的时间扭曲时,将会出现什么样的变化。 :)

(PS:请不要忘记给答案点赞:D)。谢谢。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mlpy - 动态时间扭曲取决于 x? 的相关文章

随机推荐

  • 放大和缩小按钮 - highcharts

    我在气泡图中有自定义缩放按钮 放大 缩小 当用户单击 放大 按钮时 应该在图表中从左到右进行缩放 类似地 缩小应该以这种方式发生 这与立即发生缩小的重置缩放功能相反 小提琴链接 https jsfiddle net abcdlearner
  • 将数据发布到 colorbox iframe?

    这是我正在使用的代码 从我见过的其他例子来看 这应该有效 但事实并非如此 并且已经确保我使用的是最新的彩盒 function updateFolderCate ID Type colorbox iframe true scrolling f
  • 如何使用 System.out.printf?

    我的老师希望我们在格式方法 在最底部 中显示我们的值 但问题是我们有一个子程序 她没有向我们展示如何使用它 而且我的老师也没有提供帮助 任何建议或帮助将不胜感激 public class SphereCalculations public
  • Android 增强现实应用程序从屏幕点转换列表位置

    我有问题 找不到解决方案 我制作了一个 Android 增强现实应用程序 在我的应用程序中 我有一个兴趣点列表 每个兴趣点都是一个位置 经度 纬度 海拔 我知道我的位置并且我有 相机的 方位角 现在我的问题是 如何在屏幕上绘制这些点 gps
  • pthread_create 并传递一个整数作为最后一个参数

    我有以下功能 void foo void i int a int i int main pthread t thread int i pthread create thread 0 foo void i 编译时 存在一些关于转换的错误 vo
  • 部署到 IIS 7 时诊断跟踪日志记录不起作用

    我正在将站点从 IIS 6 迁移到 IIS 7 但无法查看所有日志 我的system diagnostics配置如下
  • Java JTextPane + JScrollPane:取消/激活自动滚动

    我目前正在用 Java 编写一个简单的聊天 目前我陷入了这个问题 我希望我的输出 JTextPane 的行为就像您期望它从良好的聊天中获得的那样 即默认情况下 当新文本到达时文本会自动滚动 使用 outputfield setCaretPo
  • 如何在 Spark 中向分解结构添加列?

    假设我有以下数据 id 1 payload foo 1 lol 2 foo 2 lol 2 我想分解有效负载并向其中添加一列 如下所示 df df select id F explode payload alias data df df w
  • Codeigniter AOP [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我需要 Codeigniter PHP 框架的 AOP 范例的良好实现 你有什么建议我 面向方面的编程在 PHP 世界中还不是很普遍 我不确定 CI
  • 在 C# 中重用 HttpWebRequest 的连接

    我需要使用 Net 发出 POST 请求 我可以通过 GET 进行身份验证 因此我尝试在同一连接上发出 POST 请求以保持身份验证 问题是我收到 401 Not Authenticated 异常 这意味着连接尚未被重用 HttpWebRe
  • 在 Node js 8 中打印 libuv 线程池大小

    这个链接纯粹指定libuv提供一个线程池 可用于运行用户代码并在循环线程中获得通知 它的默认大小是 4 但是可以在启动时通过设置来更改它UV THREADPOOL SIZE环境变量为任意值 绝对最大值为 128 So in package
  • 在屏幕右下角打开 Chrome 应用程序窗口

    我希望我的 Chrome 应用程序能够打开 使其接触任务栏并恰好偏离屏幕右侧 我当前的代码 chrome app runtime onLaunched addListener function chrome app window creat
  • C编程动态初始化二维数组

    我在这里做了一些愚蠢的事情 但我无法确切地指出是什么 void init data double data int dim x int dim y int i j k data double malloc sizeof double dim
  • 为什么seaborn计数图和直方图以不同的方式显示相同的十六进制颜色?

    我试图在我的论文中保留单一的调色板 我注意到我的直方图的蓝色和我的计数图的蓝色色调略有不同 即使我将它们设置为完全相同的十六进制值 我是否缺少一个设置 或者这些不同的图不仅仅显示给定的十六进制 我尝试过使用计数图饱和度 但它与颜色不匹配 理
  • 在 Git 中编写一个预推送挂钩来 grep 正则表达式的所有文件,如果未找到正则表达式,则希望拒绝推送

    我有以下预推钩 理想情况下 我希望它遍历所有推送到我的存储库的文件 如果任何文件的内容与顶部定义的正则表达式不匹配 则拒绝推送 尝试循环访问文件时出现以下错误 未定义方法 each for String NoMethodError each
  • 共享首选项或 SQlite

    我正在开发一个 Android AppWidget 它显示从配置活动输入的简短文本 在存储数据时我有点困惑 我应该使用共享首选项还是 SQlite 数据库 Thanks 这完全取决于您想要存储的数据 共享偏好 小数据 非结构化 例如登录信息
  • 将参数传递给同步过程调用

    创建线程对象时 我想从应用程序中调用需要同步的代码 问题是我不知道怎么打电话Synchronize对于带有参数的应用程序函数 说我们有 procedure ThreadObject Execute var val1 val2 integer
  • 创建嵌入式mysql数据库

    如何创建嵌入式mysql数据库与 C 定义 嵌入式 如果您尝试在未安装 MySQL 的情况下使用 MySQL 那么您就不走运了 SQLite 和 SQL Server Compact Edition 请参阅 Matthew 的链接 是您在不
  • 如何使同一项目中的另一个类可以访问变量?

    我有一个变量 PrincipleIndex 在一个班级 Principles cs 在一个 C 项目中 Bullseye Biz Logic Trading Principle Data Principles cs int Principl
  • mlpy - 动态时间扭曲取决于 x?

    I am trying to get the distance between these two arrays shown below by DTW 我正在使用Pythonmlpy提供的套餐 dist cost path mlpy dtw