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
答案 0 :(得分:2)
相关问题在这里:
Simple multidimensional curve fitting
通常,您可以从统计学习的角度来看待这样的问题。换句话说,您有一组以某种方式参数化的基函数(例如,样条函数),然后使用最小二乘法或其他一些回归技术来查找最佳系数。我碰巧喜欢Elements of Statistical Learning
答案 1 :(得分:1)
这取决于你的意思。如果你有一组点f(x,y) - > z你想要找到一个能够完成所有你可以做样条函数的函数。
如果你有一个已知的函数,并且你想调整参数以最小化RMS误差,只需考虑x,ya复合对象p(例如,好像它是复数或2向量)并使用模拟f(p)上的2d情况 - > ž。
如果你可以更具体地了解你想要完成什么,我可以更具体地提出建议。
- MarkusQ
因此,根据编辑的问题陈述,我建议如下:
真的,问题仍然过于开放。
答案 2 :(得分:1)
您可以尝试添加(即单索引模型),作为GAM http://www-stat.stanford.edu/software/gam/index.html
这是一种贪婪的方法,非常可扩展,在几个R包中实现良好
答案 3 :(得分:0)
Charles Fefferman(是 - 菲尔兹奖得主)和Boaz Klartag有一个新的非常漂亮的作品:
Fitting a C^m-Smooth Function to Data I,安。数学,169,没有。 1,(2009), 315--346。
Fitting a C^m-Smooth Function to Data II,出现在Rev. Mat中。 伊比利亚。
您可以在Klartag publications page
上找到这两个文件作为pdf文件答案 4 :(得分:0)
我会尝试使用Spacefilling Curve Heuristic。例如,按空间填充曲线访问它们的顺序对点进行排序。您的问题的一个解决方案是通过按此顺序采取的点的样条曲线。为了获得更短更平滑的曲线(但是从点到曲线的RMS距离更大),您可以强制样条曲线仅通过每个第k个点。如果在选择每个第k个点之后,您可以通过它们寻找更短的哈密尔顿路径(如旅行推销员问题,但是对于开放路径),则可以改善曲线。您还可以调整样条曲线节点以减小RMS距离。在计算RMS距离时,我会使用空间填充曲线顺序来指示样条曲线的哪个部分可能最接近给定点。