当前位置: 首页 > 专利查询>南京大学专利>正文

基于哈希和PCA的时空索引建立方法技术

技术编号:21891701 阅读:16 留言:0更新日期:2019-08-17 14:26
一种基于哈希和PCA的对数据的时空特征建立索引的方法,1)数据采集,获取足够多的真实应用场景中的对象产生的具有经度、纬度、时间三个特征、称为时空三维特征的数据,这三个特征字段不能存在任何缺失;2)数据预处理,将所有时空三维特征的数据看作时空三维坐标系中的点,采用PCA算法将该坐标系的坐标轴进行旋转,得到数据在新坐标系中的坐标;3)索引计算,根据每个时空三维特征的数据的新坐标计算哈希值,并根据时空三维特征的数据分布情况调整哈希计算过程的参数;4)索引建立,为三级索引分别建立三张表,第三级索引的表存储指向时空三维特征的数据的指针,其余表存储指向下一级索引的指针。

Spatio-temporal indexing method based on hash and PCA

【技术实现步骤摘要】
基于哈希和PCA的时空索引建立方法
本专利技术涉及数据索引建立领域,主要应用于数据库中,具体涉及对数据时空三维特征建立统一索引。
技术介绍
随着传感器技术的快速发展,基于物联网、云计算、移动计算的空间定位技术和通信技术的日益成熟,各应用场景中对象的活动与交互产生的大量具有时空信息的数据,得以被探测、传输与记录。面对大量涌现的时空数据,如何针对这些数据的时空特性进行存储,面临着巨大的挑战。在进行大规模时空数据处理时,经常会遇到时空数据查询效率低的问题。大规模数据必须存储于数据库中,而数据库带来的好处很重要的一方面是查询效率的显著提升,但面对具有时空特性的数据,传统关系型数据库对数据时空特征建立的索引往往不能带来时空查询效率的显著提升,需要针对数据的时空特性采取针对性的方法建立索引,来应对日趋增长的时空查询需求。传统关系型数据库对数据的时空三维特征字段建立索引的方法是:为每个特征单独建立一个索引。这样会导致在进行时空查询的时候,要根据三个索引执行三次数据查找操作,查询响应时间会很长,而对时空三维特征字段统一建立一个索引,可以在进行时空查询时,只根据时空索引执行一次查询操作,响应时间与关系型数据库对一个字段进行查询的响应时间相似。
技术实现思路
本专利技术主要解决的技术问题是,针对数据时空三维特征的特点,建立专用的时空索引,加快时空查询的速率。对三维时空特征字段统一建立一个索引,使用哈希方法显著增加查询效率的同时,又使用PCA算法辅助,减少建立哈希索引的存储空间开销。技术方案:为实现上述目的,本专利技术采用的技术方案为:一种基于哈希和PCA的时空索引建立方法,包括如下步骤:步骤1,数据采集,获取足够多的真实应用场景中的对象产生的具有经度、纬度、时间三个特征、称为时空三维特征的数据,这三个特征字段不能存在任何缺失;步骤2,数据预处理,将所有时空三维特征的数据看作时空三维坐标系中的点,采用PCA算法将该坐标系的坐标轴进行旋转,得到数据在新坐标系中的坐标;步骤2方法如下:步骤2a)采用PCA算法的处理流程,对数据的时空三维坐标进行中心化处理,即将每一维特征值都减去所有数据该维特征字段的均值;步骤2b)计算所有数据的协方差矩阵;步骤2c)对协方差矩阵进行特征值分解,将特征值按照从大到小的顺序排列,相应的,将特征值对应的特征向量也按照相应的顺序排列,形成坐标转移矩阵;步骤2d)将数据的原时空三维坐标乘以转移矩阵,得到数据在新坐标系中的坐标;步骤2e)确定新坐标中每一维的最小值,并将所有新坐标减去最小值,得到最终坐标。步骤3,索引计算,根据每个时空三维特征的数据的新坐标计算哈希值,并根据时空三维特征的数据分布情况调整哈希计算过程的参数;方法如下:步骤3a)使用基于公式的计算方法,根据每个数据的最终坐标,从左到右,对坐标的每一维计算一个时空索引哈希值;步骤3b)将三个哈希值按序连接,形成最终索引值。步骤4,索引建立,为三级索引分别建立三张表,第三级索引的表存储指向时空三维特征的数据的指针,其余表存储指向下一级索引的指针,具体方法如下:步骤4a)建立全局指针,代表时空索引,指向第一级索引表的表头;步骤4b)第一级索引表是一个数组,每个数组元素为一个第二级索引表的表头,即第二级索引表个数与数组长度相等;数组的长度视索引第一块的可能取值的个数而定,由于进行了PCA处理,原始数据在最终坐标第一维的方向上方差最大,在第二、三维方向上的方差指数级递减。方差大(例如数百数千)意味着数据在该方向分布得分散,方差小(例如小于1)就意味着数据在该方向聚集在一个很小的范围内,即该维度的可能取值很少,也就是说,数据最终坐标的第一维的取值范围非常大,而二、三维的取值范围指数递减,也就是说,如果第一维的数量级为100,那么第二、三维的数量级可能是10、1;步骤4c)第二级索引表是一个数组,每个数组元素为一个第三级索引表的表头,数组的长度视索引第二块的可能取值的个数而定,如步骤4b的论述,这个数组的长度将比一级索引的数组长度小得多;步骤4d)第三级索引表是一个数组,每个数组元素为指向一个链表的指针,该链表存储了所有具有相同最终索引值的数据,数组的长度视索引第二块的可能取值的个数而定,如步骤4b的论述,该数组的长度将比二级索引的数组长度小得多。优选的,所述步骤3中的索引值具有块结构,第一块代表最终坐标第一维的哈希值,以此类推。优选的,为了节省索引存储空间,所述步骤3中公式的参数根据实际步骤1采集到的数据的分布调整,调整方式于具体实施方式部分说明。本专利技术相比现有技术,具有以下有益效果:面对大量涌现的具有时空三维特征的数据,使用传统关系型数据库存储,使用其建立索引的方法为时空三维特征建立索引,已经无法满足日益增长的时空查询需求,本专利技术使用基于哈希和PCA的方法,使得时空查询时间复杂度为O(1);与此同时,建立哈希索引带来的巨大的空间复杂度可以借助PCA算法来显著降低,使得将该索引构建方法部署于时空数据库中成为可能。附图说明图1为本专利技术的方法整体流程图;图2为本专利技术使用PCA算法进行数据预处理过程的流程图。图3为本专利技术进行索引计算的流程图。具体实施方式下面结合附图和具体实施例,进一步阐明本专利技术,应理解这些实例仅用于说明本专利技术而不用于限制本专利技术的范围,在阅读了本专利技术之后,本领域技术人员对本专利技术的各种等价形式的修改均落于本申请所附权利要求所限定的范围。一种基于哈希和PCA的时空索引建立方法,包括如下步骤:步骤1,数据采集,获取足够多的真实应用场景中的对象产生的具有经度、纬度、时间三个特征(称为时空三维特征)的数据,这三个特征字段不能存在任何缺失。步骤2,数据预处理,将所有数据看作时空三维坐标系中的点,用(x,y,z)代表,其中x∈[-180,180]为经度,负值代表西经,正值代表东经,y∈[-90,90]代表纬度,负值代表南纬,正值代表北纬,z∈[0,+∞]代表时间,以步骤1中采集数据的最早时刻为时间零点。采用PCA算法将数据的该坐标系的坐标轴进行旋转,得到数据在新坐标系中的坐标,方法如下:步骤2a)采用PCA算法的处理流程,对数据的时空三维坐标进行中心化处理,即对x、y、z分别减去μx、μy、μz,三者分别为数据在该维的均值,每个数据中心化后的坐标为(x',y',z')=(x-μx,y-μy,z-μz);步骤2b)计算所有数据的协方差矩阵;步骤2c)对协方差矩阵进行特征值分解,将特征值按照从大到小的顺序排列,相应的,将特征值对应的特征向量也按照相应的顺序排列,形成坐标转移矩阵W;步骤2d)将数据中心化后的时空三维坐标(x',y',z')乘以转移矩阵W,得到数据在新坐标系中的坐标(x”,y”,z”);步骤2e)根据实际数据的分布确定新坐标中每一维的最小值,最小值可以确定为比实际最小值小一些的值,并将所有新坐标减去最小值,得到最终坐标(x”',y”',z”'),可以确定,x”'、y”'、z”'均大于等于0。步骤3,索引计算,根据每个数据的最终坐标计算哈希值,并根据数据分布情况调整哈希计算过程的参数,方法如下:步骤3a)根据数据的分布确定每一维的间隔长度lx、ly、lz。可以有很多种方法,这里提出一种:步骤3a1)lx、ly、lz确定了一个单位间隔立方体,按这个立方体本文档来自技高网...

【技术保护点】
1.一种基于哈希和PCA的时空索引建立方法,其特征在于,包括如下步骤:步骤1,数据采集,获取足够多的真实应用场景中的对象产生的具有经度、纬度、时间三个特征、称为时空三维特征的数据,这三个特征字段不能存在任何缺失;步骤2,数据预处理,将所有时空三维特征的数据看作时空三维坐标系中的点,采用PCA算法将该坐标系的坐标轴进行旋转,得到数据在新坐标系中的坐标;步骤3,索引计算,根据每个时空三维特征的数据的新坐标计算哈希值,并根据时空三维特征的数据分布情况调整哈希计算过程的参数;步骤4,索引建立,为三级索引分别建立三张表,第三级索引的表存储指向时空三维特征的数据的指针,其余表存储指向下一级索引的指针。

【技术特征摘要】
1.一种基于哈希和PCA的时空索引建立方法,其特征在于,包括如下步骤:步骤1,数据采集,获取足够多的真实应用场景中的对象产生的具有经度、纬度、时间三个特征、称为时空三维特征的数据,这三个特征字段不能存在任何缺失;步骤2,数据预处理,将所有时空三维特征的数据看作时空三维坐标系中的点,采用PCA算法将该坐标系的坐标轴进行旋转,得到数据在新坐标系中的坐标;步骤3,索引计算,根据每个时空三维特征的数据的新坐标计算哈希值,并根据时空三维特征的数据分布情况调整哈希计算过程的参数;步骤4,索引建立,为三级索引分别建立三张表,第三级索引的表存储指向时空三维特征的数据的指针,其余表存储指向下一级索引的指针。2.根据权利要求1所述基于哈希和PCA的时空索引建立方法,其特征在于:步骤2中首先采用PCA算法的处理流程,对数据的时空三维特征进行中心化处理,即将每一维特征值都减去所有数据该维特征字段的均值;接着计算所有数据的协方差矩阵;再对协方差矩阵进行特征值分解,将特征值按照从大到小的顺序排列,相应的,将特征值对应的特征向量也按照相应的顺序排列,形成坐标转移矩阵;将数据的原始空三维坐标乘以转移矩阵,得到数据在新坐标系中的坐标;最后确定新坐标系中每一维的最小值,并将所有新坐标减去最小值,得到最终坐标。3.根据权利要求1所述基于哈希和PCA的时空索引建立方法,其特征在于:所述步骤3使用基于公式的计算方法,根据每个数据的最终坐标,从左到右,对坐标的每一维计算的一个时空索引哈希值,最后将三个哈希值按序连接,形成最终索引值,该索引值具有块结构,第一块代表最终坐标第一维的哈希值,以此类推;为了节省存储空间,公式的参数根据实际步骤1采集到的数据的分布调整:步骤3a)使用基于公式的计算方法,根据每个数据的最终坐标,从左到右,对坐标...

【专利技术属性】
技术研发人员:张雷张洛一杜云涛史鹏徐鸣王崇骏
申请(专利权)人:南京大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1