【问题标题】:How can I find the intersection of 2 sets of noisy data?如何找到两组噪声数据的交集?
【发布时间】:2016-03-31 08:42:45
【问题描述】:

我目前正在编写一个脚本,该脚本应该从我的图表中删除冗余数据点。我的数据包括来自相邻数据集的重叠,我只想要通常更高的数据。 (想象两个高斯的 x 偏移量略有重叠。我只对重叠区域中的较高值感兴趣,因此当我组合数据以制作单个光谱时,我的最终图表不会变得很嘈杂。 )

这是我的问题:

1) 两个数据集的 x 值不一样,所以我不能只说“在 x 处,取最大 y 值”。它们靠得很近,但并不相等。

2) x 值之间的距离不相等。

3) 数据有噪声,因此数据集相交处可能有多个点。虽然高斯 A 在相交后通常高于高斯 B,但噪声意味着高斯 B 可能仍有一些更高的值。这意味着我不能只说“总是在这个 x 区域中取最高值”,因为那样我会疯狂地结合两个数据集的噪声。

4) 我有 n 个这种类型的重叠,所以我需要一个有效的算法,我能想到的只是 O(n^3) 的某个地方,这类似于“对于每个重叠,将数据集存储到两个数组,对于每个数据点组合 (x0,y0) 和 (x1,y1) 循环遍历,直到找到 abs(x1-x0) AND abs(y1-y0) 的最低组合"

因为我不是程序员,所以我完全迷路了。我也无法在任何地方找到解决此问题的算法 - 大多数算法假设我正在比较的数组中的条目是相等的整数,但我正在使用几乎相等的浮点数。

我正在使用 IDL,但我也希望能提供一个通用算法或至少是我可以尝试的提示。谢谢!

【问题讨论】:

  • “解决问题的合适方法”不是算法的定义吗?这怎么不是编程?
  • 趣闻:图是一个网络,仅此而已。使用关于情节的单词图是糟糕的高中老师传下来的不好的做法。这也属于stats.stackexchange.com
  • 有趣的事实:在物理学中,绘图就是图形。不过好吧,我会在 stats.stackexchange.com 上提问,尽管我的主要问题是算法,而不是背后的科学。

标签: algorithm dataset scientific-computing idl-programming-language data-science


【解决方案1】:

您可以做到这一点的一种方法是,如果您将高斯拟合到您的数据中,然后假设每个数据点都等于该点的高斯,则取最大值。

这可以按如下方式完成:

  • 将一些高斯 G1 拟合到数据集 X1,将一些高斯 G2 拟合到数据集 X2,其中 G1 的平均值小于 G2 的平均值。
  • 然后,通过一些算术找到它们的交点。
  • 然后,对于小于交集的所有 x 值取 X1,大于交集的所有 x 值取 X2。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 2013-07-28
    • 2021-09-08
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多