k-Nearest Neighbor 在海量数据的情况下用啥数据结构比较好

“海量”?多大?“比较好”?要干嘛?不清不楚的。。。所以要是真的除了分布式系统没别的地方装的下的话:假设你每个node都有一个id,那对于关系“B是A的最近邻之一”写一条数据到flat fileA_id, B_id就这么存。针对不同的应用场景,可以做不同的优化。补充:有回复说要针对打车软件这种应用我理解,意思是要实时找到有明确距离度量,甚至可以通过分块划区降低待选点的数量级的应用场景,同时要支持待选点的实时添加和去除。那我觉得这种情况只有系统运维需要考虑“海量”,光从KNN来说,按层次分块划区以后,直接算都可以。那运维那边的“海量”,更是有一大堆可做的优化。比如以一个固定点代表来自一块区域的请求。全上海几千万人一起请求最近出租车,我内部只要算几万个请求来源就行了。KNN也没必要非得是最近的,我在一定区域内随机挑,期望平均距离和最小平均距离差多少是完全可控的。
■网友
The inverted multi-index


    推荐阅读