1.一种可变长度哈希编码的高维数据最近邻查询方法,其特征在于包括以下步骤:
①获取包含多个原始高维数据的原始高维数据集并给定查询点,对原始高维数据集做低维映射,生成由与每个原始高维数据对应的随机傅里叶特征向量组成的随机傅里叶特征向量集;
②根据每个随机傅里叶特征向量的哈希值进行编码获得与每个原始高维数据对应的哈希码,对所有哈希码中每个哈希码出现的次数进行统计得到用于表示每个哈希码出现频率的编码频率,将编码频率相同的哈希码作为一组子数据集得到多组子数据集,并按编码频率从高到低的顺序对所有子数据集进行排列得到每个子数据集的排序序号,对每组子数据集设置一个与该组子数据集的编码频率互为倒数的压缩比,根据压缩比对每组子数据集进行压缩,得到压缩后的子数据集及压缩后的子数据集的编码长度,然后按照压缩损失及量化损失之和最小的方法对压缩后的子数据集进行训练,得到训练后的子数据集及训练后的子数据集的哈希编码;
③将每组训练后的子数据集通过提取随机傅里叶特征得到与每组训练后的子数据集对应的原始编码,根据原始编码的编码长度和原始编码对应的压缩比复制每组训练后的子数据集的哈希编码,得到每组训练后的子数据集的哈希编码的多个复本;
④将每组训练后的子数据集的原始编码和每组训练后的子数据集的哈希编码的复本串联得到与每组训练后的子数据集对应的串联后的哈希编码,将所有训练后的子数据集对应的串联后的哈希编码融合组成最终的最近邻查询表;
⑤对给定的查询点提取随机傅里叶特征向量,将给定的查询点的随机傅里叶特征向量映射到与训练后的子数据集对应的串联后的哈希编码的编码长度一致的随机傅里叶编码,将该随机傅里叶编码作为查询点对应的查询编码,最后在最终的最近邻查询表中查找与查询点对应的查询编码海明距离最近的最近邻数据集,将该最近邻数据集作为给定的查询点的最近邻查询结果,完成对给定的查询点的最近邻查询过程。