6

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

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

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

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

IMG:我已经包含了一张图片。红点代表从上述方法获得的质心。

3D 点云和局部质心 http://img510.imageshack.us/img510/2495/40670529.jpg

4

5 回答 5

2

一个相关的问题在这里:

简单的多维曲线拟合

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

于 2009-02-25T23:56:33.540 回答
1

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

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

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

——马库斯

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

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

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

于 2009-02-25T23:53:13.143 回答
1

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

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

于 2009-06-24T21:23:53.797 回答
0

查尔斯·费弗曼(是的——菲尔兹奖得主)和博阿兹·克拉塔格(Boaz Klartag)有一个非常好的新作品:

您可以在 Klartag 的出版物页面上找到它们都是 pdf 文件

于 2009-04-07T15:28:49.047 回答
0

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

于 2011-02-25T16:36:06.567 回答