python - 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 包来执行这种分析
这是我正在使用的函数的链接
解决方案
找到自己的地标时出现此错误。我当时忘记传递实际的域值(在我的情况下,我想要对齐的峰值)。一旦我这样做了,我的错误就变成了:
ValueError: Sample points must be within the domain range.
这让我想到了下一点:手动指定最终结果地标位置允许代码运行,并且据我所知“工作”。我不确定这是一个错误,还是我自己做错了什么。但是,他们提供的示例确实明确指出最终结果地标位置不应该被指定。
此外,最终结果地标位置似乎并没有在指定点结束。它们最终位于grid_point
数组中最近的点。对于高采样率数据,这可能不是太明显/问题,但对于 scikit-fda 提供的演示 GAIT 数据,只有 20 个采样点,因此可以明显看出地标并没有准确地到达指定的位置。在转换为基函数时也是如此。人们可能会玩弄插值选项,看看它是否有帮助。
推荐阅读
- ruby-on-rails - 休息客户端/硒网络驱动程序的 Heroku 超时
- string - 在bash中循环查找结果
- windows - Netcat 命令:未知 IP 地址
- python - Pandas:选择第一个不再为负的值,返回该行
- python - AttributeError:模块“火炬”没有属性“设备”
- javascript - 从嵌入中获取高亮文本
- gradle - Gradle ArtifactHandler 是如何工作的
- model-view-controller - MVC 应用程序中的服务层是否有任何设计模式?
- android - 用于显示运营商分配的 IP 地址的 Android 代码
- java - Nginx 服务器使用 SSL 连接到 Java Spring