【问题标题】:Curve Fitting 3D data set曲线拟合 3D 数据集
【发布时间】:2010-10-09 23:04:02
【问题描述】:

2D 数据的曲线拟合问题是众所周知的(LOWESS 等),但给定一组 3D 数据点,我如何将 3D 曲线(例如平滑/回归样条)拟合到这些数据?

更多:我试图找到一条曲线,拟合向量 X、Y、Z 提供的数据,这些向量没有已知的关系。本质上,我有一个 3D 点云,需要找到一个 3D 趋势线。

更多:我为歧义道歉。我尝试了几种方法(我还没有尝试修改线性拟合),随机 NN 似乎效果最好。即,我从点云中随机选择一个点,找到它的邻居的质心(在任意球体内),迭代。连接质心以形成平滑样条被证明是困难的,但获得的质心是可以通过的。

为了澄清问题,数据不是时间序列,我正在寻找最能描述点云的平滑样条曲线,即,如果我要将这个 3D 样条曲线投影到由任何 2 个变量形成的平面上,则投影样条曲线(到 2D 上)将是投影点云(到 2D 上)的平滑拟合。

IMG:我添加了一张图片。红点代表从上述方法获得的质心。

3D Point Cloud and Local Centroids http://img510.imageshack.us/img510/2495/40670529.jpg

【问题讨论】:

  • 这个问题可以通过包含 x,y,z 点云的最小工作示例 (MWE) 来改进。

标签: 3d geometry regression curve-fitting


【解决方案1】:

这取决于你的意思。如果你有一组点 f(x,y) -> z 并且你想找到一个能击中它们的函数,你可以做一个样条曲线。

如果您有一个已知函数并且您想调整参数以最小化 RMS 误差,只需考虑 x,ya 复合对象 p(例如,就好像它是一个复数或 2 向量)并使用f(p) -> z 上的二维情况。

如果您可以更具体地说明您要完成的工作,我可以提供更具体的建议。

-- MarkusQ

因此,鉴于已编辑的问题陈述,我建议如下:

  • 如果它是一个时间序列(通过您使用术语“趋势线”来暗示),我会将其视为三个参数函数(x(t)、y(t)、z(t))并进行 2d适合每个人。
  • 或者(但仍然假设一个有序序列),您可能希望找到一个线性拟合(一条穿过云中心的线),然后根据来自的垂直投影添加某种(可能是极坐标)函数点到线。
  • 如果不是时间序列(由短语“未知关系”和“点云”暗示),您必须定义要适合它们的“曲线”。你要线吗?表面/歧管?您希望它是一个或两个变量的函数,还是独立于它们(例如,凸包)。它必须是平滑的、程度有限的还是……?

真的,这个问题还是太开放了。

【讨论】:

    【解决方案2】:

    一个相关的问题在这里:

    Simple multidimensional curve fitting

    一般来说,您可以从统计学习的角度来看待这样的问题。换句话说,您有一组以某种方式参数化的基函数(例如样条),然后您使用最小二乘法或其他一些回归技术来找到最佳系数。我恰好喜欢Elements of Statistical Learning

    【讨论】:

      【解决方案3】:

      Charles Fefferman(是的 - 菲尔兹奖得主)和 Boaz Klartag 的新作品非常不错:

      您可以在 Klartag 的publications page 上找到它们都是 pdf 文件

      【讨论】:

        【解决方案4】:

        您可以尝试加法(即单索引模型),如 GAM http://www-stat.stanford.edu/software/gam/index.html

        这是一种贪婪的方法,非常可扩展,在多个 R 包中很好地实现

        【讨论】:

          【解决方案5】:

          我会尝试使用 Spacefilling Curve Heuristic。例如,按空间填充曲线访问点的顺序对点进行排序。您的问题的一种解决方案是通过按该顺序获取的点的样条曲线。要获得更短且更平滑的曲线(但从点到曲线的 RMS 距离更大),您可以强制样条仅通过每 k 个点。如果在选择每个第 k 个点之后,您可以改进曲线,您可以通过它们寻找更短的哈密顿路径(如旅行商问题,但针对开放路径)。您还可以调整样条结以减小 RMS 距离。在计算 RMS 距离时,我会使用空间填充曲线顺序来指示样条的哪一部分可能最接近给定点。

          【讨论】:

            猜你喜欢
            • 2013-09-04
            • 1970-01-01
            • 2011-10-14
            • 2018-12-18
            • 1970-01-01
            • 1970-01-01
            • 2020-03-25
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多