gpt4 book ai didi

python - 估计任意分布数据的边界

转载 作者:行者123 更新时间:2023-12-01 06:16:49 25 4
gpt4 key购买 nike

我有二维离散空间数据。我想对该数据的空间边界进行近似,以便我可以生成一个在其之上包含另一个数据集的图。

理想情况下,这将是 matplotlib 可以使用 plt.Polygon() 补丁绘制的一组有序 (x,y) 点。

我最初的尝试非常不优雅:我在数据上放置了一个精细的网格,并且在单元格中找到数据的地方,会为该单元格创建一个方形的 matplotlib 补丁。因此,边界的分辨率取决于网格的采样频率。这是一个示例,其中灰色区域是包含数据的单元格,黑色区域是不存在数据的单元格。

1st attempt http://astro.dur.ac.uk/~dmurphy/data_limits.png

好的,问题解决了 - 为什么我还在这里?嗯......我想要一个更“优雅”的解决方案,或者至少是一个更快的解决方案(即,我不想继续“真正的”工作,我想从中获得一些乐趣!)。我能想到的最好的方法是光线追踪方法 - 例如:

  1. 从 xmin 到 xmax,在 y=ymin 处,检查数据是否以间隔 dx 跨越
  2. y=ymin+dy,执行 1
  3. 执行 1-2,但现在在 y 中采样

另一种方法是定义一个中心,并在 r-theta 空间中采样 - 即以 dtheta 增量的径向辐条。

两者都会产生一组 (x,y) 点,但是如何排序/链接相邻点以创建边界?

最近邻方法是不合适的,例如(借用地理学),地峡(想想连接美洲北美洲和南美洲的巴拿马)可能会封闭和隔离区域。这也可能不能很好地处理数据中看到的漏洞,我想将其表示为不同的 plt.Polygon。

解决方案可能来自解决面积最大化问题。对于定义数据限制的一组点,这些点中包含的最大连续区域是多少 为了形成封闭区域,第 n 个点的相邻点是什么?在这个方案中将如何处理这些洞——现在这是否会导致拓扑错误?

抱歉,这大部分是我大声思考的。如果有一些提示、建议或解决方案,我将不胜感激。我怀疑这是一个经常研究的问题,有许多解决方案技术,但我正在寻找一些易于编码且快速运行的东西......我想每个人都是如此,真的!

~~~~~~~~~~~~~~~~~~~~~~~~~

好的,这是使用 Mark 的凸包想法的尝试 #2: alt text http://astro.dur.ac.uk/~dmurphy/data_limitsv2.png

为此,我使用了 qhull 包中的 qconvex,让它返回极端顶点。对于那些有兴趣的人:

猫[数据] | q凸 Fx > 输出

周边的采样似乎相当低,虽然我没有太多地使用这些设置,但我不相信我可以提高保真度。

最佳答案

我认为您正在寻找的是 the Convex Hull of the data这将给出一组点,如果连接,则意味着所有点都在连接点上或内部

关于python - 估计任意分布数据的边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2856222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com