python实现e2lsh高维数据集k近邻搜索——实现流程
生活随笔
收集整理的這篇文章主要介紹了
python实现e2lsh高维数据集k近邻搜索——实现流程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- lsh學習鏈接:
LSH(Locality Sensitive Hashing)原理與實現
對高維數據查詢最近鄰,推薦使用p-stable LSH;
minLSH是針對文檔查詢最近鄰得方法; - python學習與使用:
python入門之類 - 常用函數:
random.gauss(mu, sigma):均值為mu且標準偏差為sigma的高斯分布
random.uniform(x, y):將隨機生成下一個實數,它在 [x, y] 范圍內。
numpy.inner():返回一維數組的向量內積。對于更高的維度,它返回最后一個軸上的和的乘積。
字典(Dictionary) update() :函數把字典dict2的鍵/值對更新到dict里。 - lsh參數計算學習鏈接:
參考論文:2004 Locality-sensitive hashing using stable distributions
E2LSH的原理與實現
LSH在歐式空間的應用(1)–碰撞概率分析
LSH在歐式空間的應用(2)–工作原理
LSH在歐式空間的應用(3)–參數選擇
以上三個鏈接是用R語言舉例;
正態分布就是高斯分布; - knn搜索
在使用lsh做近似近鄰搜索后,得到近鄰索引,通過近鄰索引對近鄰數據做k近鄰檢索,得到精確的k個最近鄰。
python做 knn可以調用庫函數實現:
綜上,完成lsh對數據集k近鄰查詢;
查詢結果(對數據集做兩遍查詢,一次e2lsh,一次knn,對比查詢結果):
總結
以上是生活随笔為你收集整理的python实现e2lsh高维数据集k近邻搜索——实现流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vm15+ubuntu+hadoop3.
- 下一篇: anaconda安装环境变量问题、pyt