一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于机器学习模型的时空索引构建方法和装置及查询方法与流程

2021-12-04 01:40:00 来源:中国专利 TAG:


1.本技术涉及数据处理技术领域,尤其涉及一种基于机器学习模型的索引构建方法和装置及查询方法。


背景技术:

2.在地理信息系统中,时空数据库的性能是影响系统查询响应速度的一个重要因素,而提高时空数据库查询速度的关键点是时空索引。目前已有的时空索引,如:r

tree、quad

tree、kd

tree等基本原理是逐级划分地理空间,采用树形结构组织数据的存储,在处理访问请求时,需要逐层遍历树的节点。随着数据集的增大,树的深度就会随之增加,这就使得磁盘i/o操作频繁,进而导致系统查询速率降低。


技术实现要素:

3.有鉴于此,本技术提出了一种基于机器学习模型的时空索引构建方法,可以有效提高系统查询速率。
4.根据本技术的一方面,提供了一种基于机器学习模型的时空索引构建方法,包括:
5.获取原始时空数据集,将所述原始时空数据集划分为多个数据子集;
6.采用各所述数据子集对应生成相应的子模型,并基于所述原始时空数据集生成相应的父模型;
7.根据生成的各所述子模型和所述父模型,构建得到用于查询数据存储位置的时空索引;
8.其中,在所述时空索引中,所述父模型作为输出第一层用于确定当前待查询的数据点所对应的子模型,各所述子模型作为输出第二层,用于预测当前待查询的数据点的存储位置。
9.在一种可能的实现方式中,所述父模型与所述子模型的网络结构相同。
10.在一种可能的实现方式中,所述子模型为具有两个隐藏层的前馈神经网络;
11.其中,所述子模型的第一层为包含一个神经元的输入层,第二层和第三层为包含3个神经元的隐藏层,第四层为包含一个神经元的输出层;
12.相邻两层的神经元之间为全连接。
13.在一种可能的实现方式中,将所述原始时空数据集划分为多个数据子集时,通过计算所述原始时空数据集中各时空数据点的hilbert编码值,根据计算得到的各所述时空数据点的hilbert编码值进行划分。
14.在一种可能的实现方式中,根据计算得到的各所述时空数据点的hilbert编码值进行所述原始时空数据集的划分时,包括:
15.根据各所述时空数据点的hilbert编码值对各所述时空数据点进行排序,得到有序数据集;
16.对所述有序数据集进行所述数据子集的划分。
17.根据本技术的另一方面,还提供了一种基于机器学习模型的时空索引构建装置,包括数据处理模块、模型生成模块和索引构建模块;
18.所述数据处理模块,被配置为获取原始时空数据集,将所述原始时空数据集划分为多个数据子集;
19.所述模型生成模块,被配置为采用各所述数据子集对应生成相应的子模型,并基于所述原始时空数据集生成相应的父模型;
20.所述总模型构建模块,被配置为根据生成的各所述子模型和所述父模型,构建得到用于查询数据存储位置的时空索引;
21.其中,在所述时空索引中,所述父模型作为输出第一层用于确定当前待查询的数据点对应的子模型,各所述子模型作为输出第二层,用于预测当前待查询的数据点的存储位置。
22.根据本技术的另一方面,还提供了一种时空数据点查询方法,采用前面任一所述的时空索引构建方法所构建的时空索引进行,包括:
23.在接收到查询数据后,获取所述查询数据的特征值;
24.将所述查询数据的特征值输入至训练好的父模型中,由所述父模型根据接收到的所述特征值选择所述查询数据对应的子模型,再由所选择的所述子模型根据所述特征值进行所述查询数据的位置的预测,得到所述查询数据的位置预测结果;
25.其中,所述父模型为对应原始时空数据集生成的神经网络模型,所述子模型为将整所述原始时空数据集划分为多个数据子集后,分别对应各所述数据子集的神经网络模型。
26.在一种可能的实现方式中,所述查询数据的特征值通过计算所述查询数据的hilbert编码值来表征。
27.根据本技术的另一方面,还提供了一种基于机器学习模型的时空索引构建设备,包括:
28.处理器;
29.用于存储处理器可执行指令的存储器;
30.其中,所述处理器被配置为执行所述可执行指令时实现前面任一所述的方法。
31.根据本技术的另一方面,还提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现前面任一所述的方法。
32.通过构建父模型和多个子模型作为时空索引,父模型根据写入磁盘的原始时空数据集生成,用于确定当前待查询的数据点对应的子模型;各子模型则通过对写入磁盘的原始时空数据集进行多个数据子集的划分,根据划分得到的各数据子集生成,用于预测当前待查询的数据点的存储位置。从而在进行原始时空数据集中任一数据点的查询时,可以先通过父模型确定当前要查询的数据点所属的数据子集(即,对应的子模型),然后再由所确定的子模型进行当前要查询的数据点的存储位置的预测,相较于相关技术中采用树形结构的数据存储方式,不需要多级的节点的推测,只需要确定出对应的子模型,再由子模型进行数据位置的预测即可,这就有效简化了数据查询的索引步骤,减少了磁盘i/o的频繁操作,最终有效提高了时空数据库的数据查询效率,降低了索引文件的存储成本,从而提升了地理信息系统的性能。
33.根据下面参考附图对示例性实施例的详细说明,本技术的其它特征及方面将变得清楚。
附图说明
34.包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本技术的示例性实施例、特征和方面,并且用于解释本技术的原理。
35.图1示出本技术一实施例的基于机器学习模型的时空索引构建方法的流程图;
36.图2示出本技术另一实施例的基于机器学习模型的时空索引构建方法的流程图;
37.图3示出本技术一实施例的基于机器学习模型的时空索引构建装置的结构框图;
38.图4示出本技术一实施例的时空数据查询方法的流程图;
39.图5示出本技术一实施例的基于机器学习模型的时空索引构建设备的结构框图。
具体实施方式
40.以下将参考附图详细说明本技术的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
41.在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
42.另外,为了更好的说明本技术,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本技术同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本技术的主旨。
43.图1示出本技术一实施例的基于机器学习模型的时空索引构建方法的流程图。参阅图1,本技术实施例的基于机器学习模型的时空索引构建方法,包括:步骤s100,获取原始时空数据集,将原始时空数据集划分为多个数据子集。步骤s200,采用各数据子集对应生成相应的子模型,并基于原始时空数据集生成相应的父模型。然后,通过步骤s300,根据生成的各子模型和父模型,构建得到用于查询数据存储位置的时空索引。其中,在所构建的时空索引中,父模型作为输出第一层用于确定当前待查询的数据点对应的子模型,各子模型作为输出第二层用于预测当前待查询的数据点的存储位置。
44.由此,本技术实施例的方法,通过构建父模型和多个子模型作为时空索引,父模型根据写入磁盘的原始时空数据集生成,用于确定当前待查询的数据点对应的子模型;各子模型则通过对写入磁盘的原始时空数据集进行多个数据子集的划分,根据划分得到的各数据子集生成,用于预测当前待查询的数据点的存储位置。从而在进行原始时空数据集中任一数据点的查询时,可以先通过父模型确定当前要查询的数据点所属的数据子集(即,对应的子模型),然后再由所确定的子模型进行当前要查询的数据点的存储位置的预测,相较于相关技术中采用树形结构的数据存储方式,不需要多级的节点的推测,只需要确定出对应的子模型,再由子模型进行数据位置的预测即可,这就有效简化了数据查询的索引步骤,减少了磁盘i/o的频繁操作,最终有效提高了时空数据库的数据查询效率,降低了索引文件的存储成本,从而提升了地理信息系统的性能。
45.其中,需要说明的是,在本技术实施例的方法中,父模型为对应写入磁盘内的原始
时空数据集生成的神经网络模型。子模型则为将原始时空数据集划分为多个数据子集后,对应各数据子集所生成的神经网络模型。
46.应当指出的是,在本技术实施例的方法中,所生成的子模型的个数为多个,每个子模型对应一个数据子集。父模型则用于确定当前要查询的数据点(即,查询数据)所对应的子模型,子模型则用于预测当前要查询的数据点的存储位置。
47.还需要指出的是,父模型与子模型可以采用相同的网络结构。在一种可能的实现方式中,子模型可以采用具有两个隐藏层的前馈神经网络来实现。
48.具体的,子模型的第一层可以为包含一个神经元的输入层,第二层和第三层可以为包含3个神经元的隐藏层,第四层则可以为包含一个神经元的输出层。同时,还需要指出的是,在本技术实施例的方法中,所构建的子模型采用relu函数作为激活函数,相邻两层的神经元之间为全连接。
49.进一步的,在获取查询数据的特征值时,可以通过计算查询数据的hilbert编码值来实现。即,由查询数据的hilbert编码值来表征查询数据的特征值。通过计算查询数据的hilbert编码值,以计算得到的hilbert编码值作为父模型和子模型的输入数据,使得在进行查询数据的存储位置的查询时能够更加快速高效。
50.此外,根据前面所述,在本技术实施例的方法中,进行查询数据的查询时需要对夫模型和子模型进行训练。对子模型的训练时,所采用的训练样本可以直接采用将原始时空数据集进行多个数据子集的划分后得到的各数据子集。
51.同时,在一种可能的实现方式中,对原始时空数据集进行多个数据子集的划分时,可以通过计算原始时空数据集中各时空数据点的hilbert编码值,根据计算得到的各时空数据点的hilbert编码值进行划分。
52.更加具体的,根据计算得到的各时空数据点的hilbert编码值进行原始时空数据集的划分时,包括:根据各时空数据点的hilbert编码值对各所述时空数据点进行排序,得到有序数据集,然后再对有序数据集进行数据子集的划分。
53.此处,需要说明的是,在一种可能的实现方式中,根据各时空数据点的hilbert编码值对各所述时空数据点进行排序时,可以按照各时空数据点的hilbert编码值由小到大的顺序进行排序,以得到有序数据集。
54.更进一步地,在得到有序数据集后,对有序数据集进行多个数据子集的划分时,可以采用等分的方式进行划分。即,根据预先设置的数据子集的个数,将有序数据集中的各数据点由前到后依次划分到对应的数据子集中。其中,再根据预先设置的数据子集的个数不能实现有序数据集中数据点的等分时,则可以将剩余部分的数据点作为最后一个数据子集处理。
55.举例来说,对于有序数据集d

=[d
′1,d
′2,

,d

n
],n=189,在预先设置的数据子集的个数为6时,可以将前180个数据点(即,d
′1,d
′2,

,d

180
)分别按照每30个划分至对应的数据子集中,然后再将剩余的9个数据点(即,d

181
,d

182
,

,d

189
)作为一个数据子集。
[0056]
更加具体的,在本技术实施例的方法中,对于数据子集的个数的设置可以根据数据子集中的数据点的数量进行确定。在一种可能的实现方式中,各数据子集中数据点的数量可以设置为:1500

2000条数据。基于所设置的数据子集中数据点的数量,结合原始时空数据集中的数据点总数,即可确定数据子集的个数。。
[0057]
更进一步地,由于在本技术实施例的方法中,所生成的父模型和子模型的功能是不同的,因此在对父模型和子模型进行训练时所使用的训练样本数据也是有所不同的。
[0058]
根据前面所述,对子模型进行训练时所使用的训练样本还可以包括各数据子集中各数据点所在的存储位置。其中,在对各子模型进行训练时,计算得到的数据点的hilbert编码值作为特征,各数据点所在的存储位置作为标签。在对父模型进行训练时,计算得到的数据点的hilbert编码值作为特征,各数据所对应的子模型(即,数据子集)编号作为标签。
[0059]
为了更清楚地说明本技术实施例的方法,以下以一具体实施例为例进行更加详细地说明。
[0060]
参阅图2,首先,通过步骤s110,输入原始的时空数据集d=[d1,d2,

,d
n
],其中d
i
=(x
i
,y
i
,z
i
,t
i
),1≤i≤n,n取正整数。
[0061]
然后,通过步骤s120,计算每个时空数据点的hilbert编码值,并按hilbert编码值由小到大排序,得到有序数据集d

=[d
′1,
′2,

,d

n
]。
[0062]
接着,通过步骤s130,将有序数据集等分为m个数据子集,并通过步骤s210,对应每个数据子集生成一个子模型。其中,每个子模型均是具有两个隐藏层的前馈神经网络,第一层为包含一个神经元的输入层,第二层和第三层是包含3个神经元的隐藏层,第四层是包含一个神经元的输出层,子模型采用relu函数作为激活函数,相邻两层的神经元之间为全连接。
[0063]
进而,再通过步骤s004,采用数据子集中各时空数据点的hilbert编码值和各时空数据点所在的存储位置作为训练数据来训练每个子模型。其中,hilbert编码值作为特征,数据所在的存储位置作为标签。在训练结束后,把每个时空数据点输入子模型,将预测位置的实际值与预测值进行对比,记录每个子模型的最小误差min_error和最大误差max_error。
[0064]
同时,对于整个有序数据集d

生成一个父模型,父模型采用与子模型相同的结构,用有序数据集d

中时空数据点的hilbert编码值和数据点对应的子模型编号训练父模型,其中hilbert编码值作为特征,数据对应子模型编号作为标签。
[0065]
最后,再通过步骤s300,输出最终训练生成的时空索引。其中,在该时空索引中,输出第一层为一个父模型,输出第二层为包含m个子模型的时空索引模型。
[0066]
在通过上述步骤得到相应的时空索引之后,即可采用得到的时空索引进行原始时空数据集中各时空数据点的查询。
[0067]
此外,还需要指出的是,在上述任一所述的方法中,由于所生成的子模型的个数为多个,因此需要对各子模型进行编号以达到区分各子模型的目的。在一种可能的实现方式中,可以按照数据子集的顺序对子模型进行编号,如:对于第一个数据子集所对应的子模型可以编号为1,对于第二个数据子集对应的子模型编号为2,对于第三个数据子集对应的子模型编号为3,以此类推。
[0068]
另外,对子模型的编号还可以按照子模型的对于各子模型的编号可以根据各子模型所对应的数据子集进行编制。如:可以以各数据子集中处于第一位置的数据点的hilbert编码值作为各子模型的编号。本领域技术人员还可以理解的是,也可以采用其他方式进行各子模型的编号以达到各子模型的区分,此处不再举例说明。
[0069]
相应的,基于前面任一所述的基于机器学习模型的时空索引构建方法,本技术还
提供了一种基于机器学习模型的时空索引构建装置。由于本技术提供的基于机器学习模型的时空索引构建装置的工作原理与本技术的基于机器学习模型的时空索引构建方法的原理相同或相似,因此重复之处不再赘述。
[0070]
参阅图3,本技术提供的基于机器学习模型的时空索引构建装置100,包括:数据处理模块110、模型生成模块120和索引构建模块130。其中,数据处理模块110,被配置为获取原始时空数据集,将原始时空数据集划分为多个数据子集。模型生成模块120,被配置为采用各数据子集对应生成相应的子模型,并基于原始时空数据集生成相应的父模型。总模型构建模块130,被配置为根据生成的各子模型和父模型,构建得到用于查询数据存储位置的时空索引。其中,在时空索引中,父模型作为输出第一层用于确定当前待查询的数据点对应的子模型,各子模型作为输出第二层,用于预测当前待查询的数据点的存储位置。
[0071]
此外,基于前面任一所述的基于机器学习模型的时空索引构建方法所得到的索引,本技术还提供了一种时空数据查询方法。其中,需要说明的是,本技术的时空数据查询方法在进行时空数据查询时,采用的正是通过前面任一所述的方法所构建的时空索引进行的。
[0072]
图4示出根据本技术一实施例的时空数据点查询的流程图。如图4所示,该方法包括:步骤s400,在接收到查询数据(即,当前待查询的数据点)后,获取查询数据的特征值。此处,需要说明的是,查询数据为已经写入磁盘的原始时空数据集中的其中一个数据点。步骤s500,将查询数据的特征值输入至训练好的父模型中,由父模型根据接收到的特征值选择查询数据对应的子模型,然后再由子模型根据特征值进行查询数据的位置的预测,得到查询数据的位置预测结果。
[0073]
此处,需要说明的是,在由子模型根据特征值进行查询数据的存储位置的预测时,得到的位置预测结果可以为一个存储范围,通过在该存储范围内进行查找即可得到查询点的存储位置。
[0074]
同时,在一种可能的实现方式中,查询数据的特征值可以通过计算查询数据的hilbert编码值来表征。
[0075]
举例来说,查询过程包括:给定一个查询点q,首先计算查询点q的hilbert编码值h,然后将h输入父模型,由父模型选择对应的子模型,然后由对应的子模型进行预测,得到预测的位置为p,可得到查找的存储范围为[p min_error,p max_error],在此范围内进行查找即可得到查询点的存储位置。
[0076]
由此,在基于前面任一所述的所构建的索引进行时空数据点的查询时,只需要计算出所查询的时空数据点的特征值,然后将计算出的特征值输入至父模型,由父模型确定所对应的子模型编号后,再由所对应的子模型根据特征值进行要查询的数据点的存储位置的预测即可。不需要进行多级节点的推导,只需要计算所查询的时空数据点的特征值即可,这就有效提高了时空数据的查询效率,降低了索引的存储成本。
[0077]
更进一步地,根据本技术的另一方面,还提供了一种基于机器学习模型的时空索引构建设备200。参阅图5,本技术实施例的基于机器学习模型的时空索引构建设备200包括处理器210以及用于存储处理器210可执行指令的存储器220。其中,处理器210被配置为执行可执行指令时实现前面任一所述的基于机器学习模型的时空索引构建方法。
[0078]
此处,应当指出的是,处理器210的个数可以为一个或多个。同时,在本技术实施例
的基于机器学习模型的时空索引构建设备200中,还可以包括输入装置230和输出装置240。其中,处理器210、存储器220、输入装置230和输出装置240之间可以通过总线连接,也可以通过其他方式连接,此处不进行具体限定。
[0079]
存储器220作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序和各种模块,如:本技术实施例的基于机器学习模型的时空索引构建方法所对应的程序或模块。处理器210通过运行存储在存储器220中的软件程序或模块,从而执行基于机器学习模型的时空索引构建设备200的各种功能应用及数据处理。
[0080]
输入装置230可用于接收输入的数字或信号。其中,信号可以为产生与设备/终端/服务器的用户设置以及功能控制有关的键信号。输出装置240可以包括显示屏等显示设备。
[0081]
根据本技术的另一方面,还提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器210执行时实现前面任一所述的基于机器学习模型的时空索引构建方法。
[0082]
以上已经描述了本技术的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献