我有兴趣在天文背景下进行两个源目录的交叉匹配。我试着简单地解释一下上下文。
利用源的真实目录(每个源具有某种位置、形状和通量特性),通过与噪声和仪器人工制品相结合,创建一幅合成天文图像。
然后,开发“一些过程”(无论采用什么方法--它可以是一种深度学习算法,也可以是人工选择源的人),它可以识别合成图像中的源,显然不了解真实目录。
目前的挑战是将“估计”目录中的来源与真相目录中的来源相对应,在此之后,就有可能设计出一种衡量来源回收办法效力的方法。请记住,由于噪音,估计的位置/通量将与事实不同,而且并不是所有的源都可能被探测到。
一种可能的方法是使用这样的位置交叉匹配算法:https://arxiv.org/abs/1611.04431,然后通过在多维参数空间中取“最近”来细化可能的匹配候选值。
然而,我认为很有可能有一个更通用的最大似然估计算法适合于这种匹配任务。我认为最近的邻居类型的例行公事听起来很有希望,虽然我不确定这将如何与几十万或数百万的来源。如果有人对起点有任何建议的话,我将非常感激。
发布于 2020-03-18 14:48:51
我正在寻找的通用算法是k维树,这是一种在最近邻搜索中常用的空间分区数据结构。有scipy.spatial (KDTree和更快的cKDTree)和sklearn.neighbours (也称为KDTree)的实现。
这些是Astropy和AstroML目录交叉匹配方法的底层引擎,尽管对于我的特定用例,我需要k树本身的功能。KDTree允许在任意数量的维度中进行搜索,但如果它们是不同的属性,则需要对它们进行缩放(通过std )。
在一些初步测试中,我发现这比我上面为用例链接的C3算法快100多倍。对于85K源,从140万个源目录中挑选最近的近邻大约需要10秒钟(当搜索4个维度: 2D位置、通量和大小时)。
https://datascience.stackexchange.com/questions/67809
复制相似问题