我正在尝试为图像功能构建KD树(独立)。我已经提取了图像特征,该特征包含假设的1000个浮点值。
使用map-reduce根据分类(例如,猫,狗,枪)在群集的节点之间分发图像,即。每个节点将包含一堆相似的图像&然后在每个节点上构建图像的KD树。我对如何构建树感到困惑。
那么如何使用map-reduce构建KD树?每个节点都包含树,对吗?分发图像的逻辑是什么?在构建KD树时,我应该在什么基础上在树中添加图像特征向量(即左或右孩子)?
感谢任何帮助。谢谢。
答案 0 :(得分:2)
我不认为k-d-tree对你的数据是正确的。以下是Wikipedia对此的说法:
k-d树不适合在高维空间中有效地找到最近邻居。作为一般规则,如果维度是k,则数据中的点数N应该是N>>。 2 ^ķ。否则,当k-d树与高维数据一起使用时,树中的大多数点将被评估,效率并不比穷举搜索好,并且应该使用近似最近邻方法。
您的要素向量具有维度1000,这意味着您应该有大约10 ^ 300个图像,这是不太可能的。
我建议您查看Locality-sensitive hashing,这是高维数据中提到的近似最近邻搜索之一。
由于维基百科并不总是学习复杂内容的最佳场所,因此我建议您先看看苏黎世联邦理工学院respective lecture slides课程的Data Mining。我恰好在本学期学习本课程。