KNN的优化算法4:LSH

LSH:针对海量、高维数据的NN搜索提出来的。一般相似图像搜索、网页搜索用的比较多。

使用LSH进行对海量数据建立索引(Hash table)并通过索引来进行近似最近邻查找的过程如下:

1. 离线建立索引

(1)选取满足(d1,d2,p1,p2)-sensitive的LSH hash functions;

(2)根据对查找结果的准确率(即相邻的数据被查找到的概率)确定hash table的个数L,每个table内的hash functions的个数K,以及跟LSH hash function自身有关的参数;

(3)将所有数据经过LSH hash function哈希到相应的桶内,构成了一个或多个hash table;

2. 在线查找

(1)将查询数据经过LSH hash function哈希得到相应的桶号;

(2)将桶号中对应的数据取出;(为了保证查找速度,通常只需要取出前2L个数据即可);

(3)计算查询数据与这2L个数据之间的相似度或距离,返回最近邻的数据;

猜你喜欢

转载自blog.csdn.net/weixin_41770169/article/details/81634943
LSH
今日推荐