如何找到2组噪声数据的交集?

时间:2016-03-31 08:42:45

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

我目前正在编写一个脚本,该脚本应该从我的图表中删除冗余数据点。我的数据包括来自相邻数据集的重叠,我只想要通常更高的数据。 (想象一下两个高斯人的x偏移略有重叠。我只对重叠区域中较高的值感兴趣,所以当我合并数据以便制作时,我的最终图形并不会产生所有噪声单一光谱。)

以下是我的问题:

1)两个数据集之间的x值不相同,所以我不能在x处说"取最大值"。他们在一起但并不平等。

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

3)数据有噪声,因此数据集可以有多个点相交。虽然高斯A在交点之后通常比高斯B高,但噪声意味着高斯B可能仍然具有更高的一些值。意思是我不能说"总是在这个x区域中取最高值",因为那时我会疯狂地组合两个数据集的噪音。

4)我有这种类型的n个重叠,所以我需要一个有效的算法,所有我能想到的就是O(n ^ 3),这就像&#34;对于每个重叠,存储数据集合成两个数组,每个数据点组合(x0,y0)和(x1,y1)循环直到你找到abs(x1-x0)和abs(y1-y0)&#34; <的最低组合。 / p>

由于我不是程序员,我完全迷失了。我也无法在任何地方找到这个问题的算法 - 大多数算法都假设我比较的数组中的条目是相等的整数,但是我使用几乎相等的浮点数。 / p>

我正在使用IDL,但我也很感激一般的算法或者至少我可以尝试的提示。谢谢!

1 个答案:

答案 0 :(得分:1)

你能做到这一点的一种方法是,如果你让高斯人适合你的数据,然后取最大值假设每个数据点等于那个点的高斯。

这可以按如下方式完成:

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