如何解决熊猫数据帧的样条插值顺序
我有以下数据框,其中显示了来自Motion Capture的数据,其中每一列都是标记(即位置数据),行是时间:
LTHMB X RTHMB X
0 932.109 872.921
1 934.605 873.798
2 932.383 873.998
3 940.946 875.609
4 941.549 875.875
... ... ...
14765 NaN 602.700
14766 562.350 NaN
14767 562.394 NaN
14768 562.421 NaN
14769 562.490 602.705
在数据中,我需要填写一些NaN值。我并不是真正的专家,所以我不确定什么是最好的填充方式。
我知道我可以进行向前/向后填充,并且我还阅读了有关样条插值的知识,这似乎更为复杂。在pandas.DataFrame.interpolate的文档中,它指出了样条曲线必须指定顺序。
在这种情况下,我要为订单使用什么?每个标记都有一个X,Y和Z。这是否意味着我将使用三次样条,还是不是那么简单?
解决方法
样条曲线的顺序与数据集中的要素数量无关。每个要素将相互独立地插值。因此,在应用算法之前,重要的是要了解其工作原理以及其每个参数(例如“顺序”)的作用。
直觉上,三次(阶数= 3)样条线是构造样条线的过程,该样条线由三阶“分段”多项式组成。
请注意,所有多项式仅在一个时间间隔内有效;它们组成了插值功能。虽然外推法预测的是数据范围之外的发展,但内插法仅在数据边界内起作用。
样条曲线的“阶”就是这些“分段”多项式的阶。
如您所见,线性样条曲线(order = 1)适合范围之间的一阶多项式(直线ines),而7阶样条曲线适合7阶多项式。
您应该使用哪个?
没有人能简单地告诉您哪个更合适。您将必须对其进行可视化,以查看特定的插值技术是否能够为您提供相关的估算。
唯一可以确保您使用正确插值技术的方法是将它们与R2_score进行比较。您可以执行以下操作-
- 从数据中获取完整序列(无缺失值)
- 随意设置此数据丢失的百分比(分别保留这些隐藏值)
- 尝试多种插值方法以完成序列(使用3、5、7个样条线等)
- 获取预测序列,并使用R2_score将其与实际序列进行比较。
- r2_score最高的那个应该是最适合您数据的那个
- 在多次注入的丢失数据中以%的百分比重复多次,以形成一项有效的研究,总体上,一项研究优于另一项研究。
您会发现这种方法粗略地实现了here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。