首页 > 代码库 > 【E2LSH源码分析】E2LSH函数接口

【E2LSH源码分析】E2LSH函数接口

上一小节,我们对E2LSH代码主要的源码框架和用到的数据结构作了简单介绍(http://blog.csdn.net/jasonding1354/article/details/38331229),这一节我将简单介绍一下E2LSH的主要函数接口。

1、构建R-NN数据结构(定义在NearNeighbors.h)

输入为1-δ、R、d和数据集P,利用下面函数来构建:

PRNearNeighborStructT
initSelfTunedRNearNeighborWithDataSet(RealT thresholdR,
                                      RealT successProbability,
                                      Int32T nPoints,
                                      IntT dimension,
                                      PPointT *dataSet,
                                      IntT nSampleQueries,
                                      PPointT *sampleQueries)

该函数会估计最优参数k,m,L并根据上述参数来构建R-NN数据结构
参数说明:

■ sampleQueries——查询样本数据集

sampleQueries可以是查询数据集中的数据,也可以是数据集P中的数据

■ nSampleQueries指明数据集sampleQueries的数据点个数

函数返回值为已构建的R-NN数据结构。

2、查询操作(定义在NearNeighbors.h)

Int32T getRNearNeighbors(PRNearNeighborStructT nnStruct,
                         PPointT queryPoint,
                         PPointT *(&result),
                         IntT &resultSize)
参数说明:

■ nnStruct——进行查询操作的R-NN数据结构

■ queryPoint——待查询数据点

■ result—— 最近邻存储的数组

■ resultSize——result数组的大小

该函数getRNearNeighbors返回查询的最近邻的个数。
3、估计最优参数(定义在SelfTuning.h)

RNNParametersT computeOptimalParameters(RealT R,
                                        RealT successProbability,
                                        IntT nPoints,
                                        IntT dimension,
                                        PPointT *dataSet,
                                        IntT nSampleQueries,
                                        PPointT *sampleQueries)

参数说明:

■ sampleQueries——查询样本数据集

sampleQueries可以是查询数据集中的数据,也可以是数据集P中的数据

■ nSampleQueries指明数据集sampleQueries的数据点个数

4、针对最优参数构建R-NN数据结构(定义在LocalitySensitiveHashing.h)

PRNearNeighborStructT initLSH_WithDataSet(RNNParametersT algParameters,
                                          Int32T nPoints,
                                          PPointT *dataSet)
■ algParameters——指定R-NN结构的参数
该函数返回构建的数据结构。



转载请注明作者及文章出处:http://blog.csdn.net/jasonding1354/article/details/38356573

参考资料:

1、M.Datar,N.Immorlica,P.Indyk,and V.Mirrokni,“Locality-SensitiveHashing Scheme Based on p-Stable Distributions,”Proc.Symp. ComputationalGeometry, 2004.

2、A.Andoni,P.Indyk.E2lsh:Exact Euclidean locality-sensitive hashing.http://web.mit.edu/andoni/www/LSH/.2004.