首页 > 解决方案 > Scikit FDA - Landmark_registration 问题

问题描述

经过平滑程序后,我对这一行的地标注册有疑问:

skfda.preprocessing.registration.landmark_registration_warping(fd, land)

它返回以下错误:

ValueError: `x` must be strictly increasing sequence.

fd是具有 5 个样本的 FDataGrid(表示函数所需的典型数据类型),而land是我要对齐的地标数组,它是一个递增的点序列(见下文)

land <- array([[[0.1  , 0.134, 0.258, 0.292, 0.328, 0.558, 0.602],
                [0.1  , 0.126, 0.23 , 0.256, 0.292, 0.454, 0.474],
                [0.1  , 0.148, 0.25 , 0.278, 0.34 , 0.514, 0.568],
                [0.1  , 0.116, 0.25 , 0.276, 0.298, 0.508, 0.612],
                [0.1  , 0.132, 0.258, 0.286, 0.376, 0.59 , 0.648]]])
fd <- 

有人可以帮助我吗?我正在使用 scikit fda 包来执行这种分析

https://fda.readthedocs.io/en/latest/modules/preprocessing/autosummary/skfda.preprocessing.registration.landmark_registration.html#skfda.preprocessing.registration.landmark_registration

这是我正在使用的函数的链接

标签: pythonsignal-processing

解决方案


  1. 找到自己的地标时出现此错误。我当时忘记传递实际的域值(在我的情况下,我想要对齐的峰值)。一旦我这样做了,我的错误就变成了:ValueError: Sample points must be within the domain range.这让我想到了下一点:

  2. 手动指定最终结果地标位置允许代码运行,并且据我所知“工作”。我不确定这是一个错误,还是我自己做错了什么。但是,他们提供的示例确实明确指出最终结果地标位置不应该被指定。

此外,最终结果地标位置似乎并没有在指定点结束。它们最终位于grid_point数组中最近的点。对于高采样率数据,这可能不是太明显/问题,但对于 scikit-fda 提供的演示 GAIT 数据,只有 20 个采样点,因此可以明显看出地标并没有准确地到达指定的位置。在转换为基函数时也是如此。人们可能会玩弄插值选项,看看它是否有帮助。


推荐阅读