[发明专利]一种基于PID的海洋时空大数据并行KNN查询处理方法有效
申请号: | 202110354512.8 | 申请日: | 2021-04-01 |
公开(公告)号: | CN113010525B | 公开(公告)日: | 2023-08-01 |
发明(设计)人: | 乔百友;马玲;郝元卿;胡兵;孙永佼;吴刚;韩东红 | 申请(专利权)人: | 东北大学 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/215;G06F16/2455;G06F16/27;G06F18/2413;G06F18/213;G06N3/0464;G06N3/049 |
代理公司: | 沈阳东大知识产权代理有限公司 21109 | 代理人: | 李珉 |
地址: | 110819 辽宁*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 pid 海洋 时空 数据 并行 knn 查询 处理 方法 | ||
1.一种基于PID的海洋时空大数据并行KNN查询处理方法,其特征在于:包括以下步骤:
步骤1:海洋大数据预处理;对获取到的海洋数据进行清洗,包括数据去重、异常处理和缺失值的填充处理;
步骤2:数据划分和网格索引构建;采用网格划分方法实现对预处理完海洋大数据的分区,将整个数据空间划分成相等大小的网格,采用行排序方法对网格进行编码,按照数据的空间位置将其投影到对应网格中,并创建索引,形成索引数据集;
步骤3:基于PID的KNN查询处理;对划分后的数据分区上,执行基于PID的KNN查询处理,在每个数据分区上生成局部的KNN查询结果,然后将所有局部KNN查询结果合并,并进行排序,最终返回前K个查询结果作为最终的KNN查询处理结果;具体包括:首先读取用户给定的查询点信息,并创建RDD查询集合,然后在划分后的索引数据集上执行基于PID的KNN查询算法,得到每个数据分区上的局部KNN查询结果集,将每个数据分区上的局部KNN查询结果进行合并排序,形成候选查询结果集合,并选出前K个查询结果作为最终的KNN查询结果,将其保存到HDFS文件系统中;
步骤3-1:初始KNN查询处理;根据KNN查询要求,进行初次KNN查询处理;首先根据基于网格的数据划分方法,将查询点q按照其位置计算出其所在的网格单元,并设定查询半径r的初值,以q点为圆心,r为半径所形成的圆形区域内进行KNN查询;
首先在查询点q和查询半径r所形成的圆形区域内确定候选查询分区集,然后对于每个候选查询分区中的数据点,计算其到查询点q的距离,如果在候选查询分区集中找到离q点最近的K个数据点,则查询结束,返回结果并保存到HDFS中;否则,执行步骤3-2,采用基于PID的查询半径计算方法来计算查询半径的增长步长,并形成新的查询半径;
所述确定候选查询分区集的具体方法为:根据查询点q和查询半径r来确定一个网格单元所代表的数据分区是否为被查询对象:在KNN查询过程中,需要首先确定半径r所形成的圆形局域内,需要被查询的数据分区,即候选查询分区;然后再计算查询点q到查询分区中每个数据点之间的距离,从而确定距离最近的K个点;具体确定方法为:对于任一网格单元C所代表分区,用mindist(C,q)表示查询点q到网格单元C的最小距离,用maxdist(C,q)表示查询点q到网格单元C的最大距离;若满足条件mindist(C,q)rmaxdist(C,q),则说明网格单元C所代表数据分区在查询q的查询范围内,将其放入候选查询分区集,并在这些候选分区上并执行KNN查询处理;否则网格单元C不在查询点q的查询范围内,该网格单元所代表分区不能进入候选查询分区集;
步骤3-2:采用基于PID的查询半径计算方法计算查询半径的增长步长,并形成新的查询半径;
步骤3-2-1:输入一个查询半径的目标值给PID系统,PID系统根据PID计算公式计算出查询半径r的预测值u(t);然后得到目标值和预测值的差值e(t),然后再次回到PID系统中,重新计算u(t)和e(t),迭代进行这个计算过程,直到PID系统稳定到输出的预测值和输入的目标值没有误差为止,或者运行结果达到了PID系统预先设定好的一个误差范围;PID计算公式为:
其中,e(t)是PID系统输出的预测值和输入的目标值的差,t为时间,Kp指的是P参数的数值,Ki指的是I参数的数值,Kd指的是D参数的数值;
将PID系统中的微分部分用差分来代替,则得到如下PID计算公式:
其中,u(k)为预测的查询半径,k为采样序号,Ti是积分常数,Td是微分常数,T为采样周期,e(j)为累积误差,e(k)为查询结果设定值与实际值之差;查询结果设定值为KNN查询的目标查询结果数K,实际值则是通过查询半径u(k)进行实际KNN查找得到的查询结果数;
为了使与PID模拟系统中参数保持一致,对上述公式进行修改,得到下面公式:
步骤3-2-2:设定PID系统参数,得到新的查询半径;
通过实际KNN查询实验测试来设定PID系统的P、I、D三个参数,进而根据给定的K值计算出新的查询半径;
步骤3-3:使用新的查询半径继续进行KNN查询;使用PID系统计算出新的查询半径后,按照新的查询半径在各个数据分区上并行执行新的KNN查询,合并各个分区上的局部KNN查询结果,并计算出全局的KNN查询结果数,如果满足查询结束条件,则结束查询并将查询结果保存到HDFS中,否则跳转到步骤3-2继续执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东北大学,未经东北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110354512.8/1.html,转载请声明来源钻瓜专利网。