【问题标题】:Fast multidimensional interpolation of unstructured data非结构化数据的快速多维插值
【发布时间】:2021-08-20 15:35:53
【问题描述】:

我在多维空间中有数万个非结构化点。我想将这些内插到数以万计的其他非结构化点。插值可以平滑,但分段线性是首选,我希望它比最近邻插值更平滑。可能需要外推,所以LinearNDInterpolator 不可用。输入和输出点将由簇组成,因此使用诸如 scipy 的RBF 插值器之类的方法效率低下,因为我相信这将使用所有输入点来计算每个输出点,即使许多输入点将是彼此相似。

This answer 对一个类似的问题表示,当输入数量很大时,可以使 RBF 插值更有效,但没有包括细节。怎么办?

由于我可以容忍平滑,并且许多输入彼此相似,支持向量回归可能是合适的。是否有其他适合这种情况的方法(最好是带有 Python 接口的方法)?

【问题讨论】:

    标签: python scipy interpolation


    【解决方案1】:

    即使对于 RBF 方法,数万个点也不算多,尤其是如果您可以通过聚类和删除冗余点来进一步细化它们。

    一个合适的 RBF 库,就像这里推荐的 Constraining RBF interpolation of 3D surface to keep curvature,应该能够处理这个问题,尤其是使用紧凑支持的基础内核(在 https://rbf.readthedocs.io/en/latest/basis.html 中称为 Wendland)。

    您能否尝试使用该库,使用内核及其参数,希望您在 RBF 方法中获得成功。

    【讨论】:

    • 我还刚刚发现最近邻 RBF 插值器 (KNearestRBFInterpolator) 将包含在 Scipy 的 1.7.0 版本中
    • 啊,是的,这个库也有它:rbf.readthedocs.io/en/latest/… 如果您不需要插值,则在移动最小二乘 MLS 近似时使用相同的 k-最近技巧。它有自己丰富的文学作品和成功故事。如何选择“k”的问题就像选择紧凑支持的 RBF 内核的截止半径——这取决于您的数据点分布
    猜你喜欢
    • 1970-01-01
    • 2015-11-10
    • 2019-07-31
    • 2016-06-08
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-16
    相关资源
    最近更新 更多