数据帧的样条插值阶

2024-10-02 12:38:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据框,其中显示了运动捕捉的数据,其中每列是一个标记(即位置数据),行是时间:

        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。这是否意味着我会使用三次样条曲线,或者它不是那么简单


Tags: 数据方法标记pandas时间nan曲线空白
1条回答
网友
1楼 · 发布于 2024-10-02 12:38:54

样条曲线的顺序与数据集中的特征数无关。每个特征将相互独立插值。因此,在应用算法之前,了解算法的工作原理以及每个参数(如“顺序”)对算法的贡献是很重要的

直觉上,三次(阶数=3)样条曲线是构造由三次“分段”多项式组成的样条曲线的过程

enter image description here

请注意,所有多项式仅在一个区间内有效;它们构成了插值函数。虽然外推预测的发展超出了数据范围,但插值只在数据边界内起作用

样条曲线的“阶数”是这些“分段”多项式的阶数

enter image description here 资料来源:谷歌

如您所见,线性样条曲线(阶数=1)拟合范围之间的一阶多项式(直线),而七阶样条曲线拟合七阶多项式


您应该使用哪一种?

没有人能简单地告诉你哪个更合适。您必须将其可视化,以查看特定插值技术是否能够为您提供相关插补

确保使用正确插值技术的唯一方法是将它们与R2_分数进行比较。您可以执行以下操作-

  1. 从数据中提取完整序列(无缺失值)
  2. 随机将此数据的百分比设置为缺失(单独保留这些隐藏值)
  3. 尝试多种插值方法以完成序列(使用顺序3、5、7样条曲线等)
  4. 取预测序列,并使用R2_分数将其与实际序列进行比较
  5. r2_分数最高的那一个应该最适合您的数据
  6. 在注入的缺失数据的多个百分比上重复此步骤多次,以形成一个有效的研究,其中一个总体上优于另一个

您可以发现这种方法的实现非常粗糙here

enter image description here

相关问题 更多 >

    热门问题