2009-02-26 271 views
11

在彼得·阿尔弗雷德的article关于他提到的多变量分散数据插值,从各种计划,只有少数真的很受实践者的欢迎。他以Shepard的方法和Hardy Multiquadrics命名。但那篇文章到现在已经有20年了,真正有趣的是现在广泛使用的方法。多变量插值法最适合实际应用?

如果您有使用某些空间插值方案的经验,请告诉它。

UPD:为了使这个问题更具竞争力,我重申了它。这是“你曾经使用过什么多元插值方法?”

+0

如果网上有文章,我们可以链接到文章吗? – 2009-02-26 19:31:25

+0

当然。我用citeseer链接更新了问题主体。 – akalenuk 2009-02-26 21:02:57

回答

6

过去我使用过Kriging,分散的数据与每个样本的准确度估计值一起出现。看起来像一种值得在地质统计学世界以外更广泛使用的强大技术。

2

我见过的唯一应用程序是littleCMS代码(一个开源的颜色管理引擎)。

我第一次检查它,它只是在一个轴上进行线性插值,然后在该结果和另一个轴上的点之间进行插值。我刚刚重新下载它,似乎更加复杂。无法与您提及的文章进行比较,但可能要检查它,它位于cmslut.c文件中。

+0

您正在查看的代码正在执行四面体插值。 Mathworks有一篇关于为什么这是色彩空间转换的很好技术的文章 [http://blogs.mathworks.com/steve/2006/11/24/tetrahedral-interpolation-for-colorspace-conversion/] 。对于其他应用您的里程可能会有所不同 – 2009-03-03 17:22:04

1

我使用三维散布数据的平滑处理表面操作LINK。这涉及到许多点,我想要一个非常光滑的表面,因此该过程首先找到了数据的最佳拟合二阶曲面,然后找到了将点拟合到曲面上的松弛阶段。这不是对原始数据的插值曲面,但是,它是一种优化方式来降低插值的顺序。

该方法涉及在非常适合二阶近似的分段区域上进行操作。

该方法的另一个有趣的特点是,这些点是三角形的顶点,并且在平滑期间保持连通性。

15

(这将让久,除非我只是虎头蛇尾。)

首先,关于非分散的数据几点意见。 (请参阅参考littleCMS的答案)

有两种常见的颜色插值类型。几年前,三线性插值(张量积线性插值)是颜色表插值的常用方法。三线性插值的确可以实现为一维插值的顺序集合,首先在一个轴上,然后沿着第二个轴,等等。

很多年前,我们都意识到三线性插值在应用彩色成像时引入了伪像到某些类型的转换。这些问题在中立者看来。一种解决方案是通过将立方体解剖成6个四面体,在3天内移动到单纯插值。在n维中,单位立方体将被解剖为阶乘(n)单形。还有其他解剖立方体,但这种特殊的风格确保主对角线始终是所有单形的共享边缘。当应用于某些颜色查找表时,这反过来会恢复中立者的良好行为。

现在让我谈谈真正的分散数据插值的问题。

其他人提到了各种方案。克里格,多元化,基于距离的方法是少数。 (当我用这些方案在过去做了一些工作时,我实际上更喜欢反向多方法方法。)所有这些实际上只是径向基函数方法的变体,这是一种常见的方案。 RBF方法有其优缺点。它们通常会生成平滑的插值,这当然取决于选择的具体基础函数,以及是否选择限制支持。 RBF方法还允许您推断,至少在径向基元素的支持将会扩展的范围内。如果允许基本元素的范围是无限的,那么不会对外推施加明确的限制。 (外推一般来说是一件坏事。)RBF方法的一个问题是它们需要解决大系统的线性方程组,这些方程系统通常是稠密矩阵。这意味着问题的大小,就可以处理的数据点数而言,这往往受线性代数的限制。相反,如果您通过截断基本元素来限制支持,那么矩阵可能变得稀疏。如果对解决方案使用稀疏矩阵包,这将改进线性代数。同时,支撑距离成为您必须控制的非线性参数。同样,像multiquadrics和inverse multiquadric方法的方法可能有一个辅助非线性参数来控制基础元素的形状。克里格有类似的问题,我会把所有这些方法结合在一起。

对于这些问题,我所归类为RBF变体的所有这些方法通常都会受到限制,因为它们可以轻松应对。根据你处理事物的方式和可用的内存量,这个限制通常可能在几千个点的数量级上。

RBF方法的一般类别的另一个问题是我称之为插值的问题。这是我多年前创建的一个新词,用来描述数据中一个相对较大的洞的插值。实际上,即使在数据中插入较小的孔时也经常会遇到问题。由于这些方法在某种程度上平滑,可能会将不想要的极值(大峰或谷)引入插值曲面。这是甚至一维插值的常见问题,通常被看作是具有三次样条或多项式插值的振铃伪影,并且当然可以看到傅里叶级数插值。更高维度上的问题甚至认识到它确实发生了,因为三维以上的绘图表面往往是困难的。

如果您的积分超过该限制,或者这些响铃制品不可接受,那么其他方法往往是更好的选择。如果您愿意使用线性插值函数,那么较高维度中最简单的解决方案就是从数据镶嵌开始。因此,在三个维度中,将数据(通常是delaunay镶嵌)细分为四面体。这样做效率很高,并且有很多工具可以用于此目的。这是插入任何单个点的简单问题。只需确定点的单纯形,将重心坐标计算为单纯形中的插值权重,并在找到的单形的每个顶点处形成函数值的相应线性组合。这一切都非常快速和高效。

这些基于曲面细分的方法的缺点是它们通常将您限制为数据点的凸包,而且如果数据碰巧存在于非凸域中,那么插值可能会做出奇怪的事情在您的域的某些区域。我上面提到的方案的另一个问题是插值将只是分段线性的,但是一旦进入更高维度,事情会变得很快。其他方法可以根据曲面细分进行平滑插值,但是它们会花费更多的精力,因此不太常见。

这里的基本权衡应该是显而易见的。如果你需要一个平滑的插值并且只有几个点,那么通常会选择RBF方法。它们很简单,易于使用等。选择的实际方法往往只是一个方便,甚至习惯的问题。我以前使用过一种工具,很高兴,我可能会再次满意。由于问题是哪种方法“最适合实际使用”,我会指出,如果在上下文之外应用,best是一个非常主观的词。在插值问题中你的目标是什么?你拥有什么技能?你知道如何使用哪些工具?你的工作环境是什么?所有这些因素都会影响您对最佳方法的选择。如果你有很多数据点,并且速度是本质的,但是最终的平滑不是那么重要,那么你通常会寻找一个简单的插值。当然,如果你有足够的分数,那么野兽的分段线性本质就不重要了。这里的分段线性插值在某些情况下具有很大的优点,即它不会在数据中不存在的曲面中产生极值。对于一些问题,例如颜色表征,这是非常重要的。

另一个问题是噪音。虽然噪声的存在通常是需要某种平滑处理的信号,但并非所有这些表面都应用平滑处理。任何平滑算子有时也会平滑数据的重要特征。发生这种情况是因为我们可以将平滑算子看作低通滤波器。高频率行为通常是噪音,但它也可能只是我表面上尖锐的脚趾或肩膀,我不能失去。如果这是一个问题,那么即使在有时会出现明显的噪音的情况下,您也可能愿意使用插值。在这种情况下,我会建议最简单的最低阶插值是最好的。光滑的,更全局的插值函数也倾向于放大数据中的任何噪声,所以如果在噪声存在的情况下寻找最低方差插值,它通常是线性插值。

当然,有很多品种的薄板样条,插值与否。一旦你超越了一个维度,你的选择也会扩大,至少如果你愿意做这项工作的话。

我会在它变成书之前结束。