Cer*_*rin 4 python sql database data-mining kdtree
有人知道KD-Tree或类似的空间索引是用 SQL 实现的吗?我正在考虑使用 Python 和 Django 的 ORM 编写自己的程序,但我想避免重新发明轮子。
我有一个包含数百万行的表,每行包含 128 列代表图像特征数据。给定一个任意 128 元素长的图像特征列表,我想使用 KD 树来查找数据库中的 N 个最相似的图像。我发现了很多 KD-Tree 实现,但它们似乎都只加载到本地内存中,并且不能扩展或与数据库交互。
KD树不适用于高维数据,128维就相当高了。KD 树在树的不同级别对每个维度进行索引,并且在执行查询时,算法将进行大量回溯(搜索分支的两侧)并最终搜索树中的大部分点。当这种情况发生时,使用树结构的优势就会消失,详尽的比较最终会运行得更快。
您可能想要找到一个现有的图像相似性搜索系统,您可以将数据映射到其中。这是一个名为 Lire 的工具,它从图像中提取特征并使用 Lucene 对其进行索引。
如果您的工作更加以研究为导向,您可能需要阅读度量空间索引和近似 k 最近邻搜索。