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

一种基于改进K-Medoids聚类的船舶典型运动轨迹自适应挖掘方法与流程

2021-10-24 13:12:00 来源:中国专利 TAG:船舶 轨迹 挖掘 自适应 改进

一种基于改进k

medoids聚类的船舶典型运动轨迹自适应挖掘方法
技术领域
1.本发明涉及船舶轨迹挖掘技术领域,尤其涉及一种基于改进k

medoids聚类的船舶典型运动轨迹自适应挖掘方法。


背景技术:

2.随着世界海上经济的快速发展,沿海港口及附近水域的船舶数量不断骤增,世界海上交通密度逐年上升,且船舶向着高速化和大型化的趋势发展,使得海上通航安全管理十分困难。船舶自动识别系统作为一种用于船与岸,船与船之间的海事通信与安全的新型助航系统,能够发送海量的、表征船舶运动状态的数据信息。对船舶发送的ais数据进行深度挖掘,可从中发现船舶的典型行为模式,其中,船舶轨迹是表现船舶行为模式最为直观的形式,对船舶的轨迹数据进行聚类分析,从中挖掘出典型的运动轨迹,可为船舶轨迹异常检测及航迹预测提供技术支持,研究结果还可用于预测船舶航行时间、规划航路及分析船舶交通流特征规律等方面。
3.目前,基于轨迹段聚类的典型轨迹挖掘大多采用dbscan密度聚类算法,并结合hausdorff距离度量轨迹间的相似性,通过扫描线法形成。将船舶轨迹段作为聚类对象的方法虽能够较好地反映轨迹片段的特征,但难以划定轨迹之间相似性的阈值,且对线段进行聚类的算法较为复杂,难以将轨迹片段相连构成连续的典型运动轨迹,而运用船舶轨迹点进行聚类具有运算效率高、聚类对象简单的特点,因此,结合此优点,并考虑到聚类参数难以确定的问题,本方法基于点聚类且能够自适应地挖掘连续的船舶的典型运动轨迹。


技术实现要素:

4.针对上述问题,本发明的目的在于提供一种基于改进k

medoids聚类的船舶典型运动轨迹自适应挖掘方法,避免了典型轨迹段的特征缺失,所得的典型轨迹与实际相符合,提高了挖掘的自适应程度。
5.本发明采用的技术方案如下:
6.本发明所提出的一种基于改进k

medoids聚类的船舶典型运动轨迹自适应挖掘方法,包括以下步骤:
7.s1:将存储在数据库中的ais动、静态数据进行清洗,在此基础上实现数据表的匹配与排序,运用线性插值算法将缺失数据补全;
8.s2:提取所需的数据字段,构成船舶轨迹点数据结构;
9.s3:基于航速、航向变化率对船舶轨迹进行压缩,提取用于聚类的特征点集;
10.s4:计算每一段子轨迹的分段均方根误差,并将其与传统的k

medoids算法相结合,实现聚类参数的自适应选择,分别提取每一类簇的聚类中心点并依次相连,得到不同类型、吨级及进出港条件下的船舶典型运动轨迹;
11.s5:通过计算兰德系数值,对准确率进行评估。
12.进一步的,所述步骤s1具体包括
13.(1.1)数据清洗
14.经过解码后的船舶ais数据并不能全部直接使用,而应当先对其进行数据清洗;清洗过程包括:将ais动、静态数据中的重复记录值字段删除,保证静态数据表中,同一mmsi仅保存一条记录值,动态数据表中,同一mmsi的不同行数据不完全一致;删除有明显错误、且不在正常范围内的数据;
15.(1.2)数据匹配
16.将清洗过的ais动、静态数据进行匹配,具体匹配过程为:读取重新清洗过的正确的ais静态数据表,将此数据表记为表a;读取重新处理过的正确的ais动态数据表,将此数据表记为表b;以mmsi号为索引对表a与表b进行匹配,原则是将表a中数据填入表b中,以表b的mmsi号码为基准,最终得到的匹配结果的表行数应与表b相同;
17.(1.3)数据排序
18.将经过动、静态数据匹配的数据表依次按照mmsi、接收时间进行排序,获得能够反映出每条船舶连续的运动情况的船舶轨迹数据;
19.(1.4)线性插值
20.由于船舶发送的ais数据的时间间隔并不一致,存在部分排序后的数据相邻两条记录值的时间差较大的情况,无法反映出连续的船舶轨迹动态变化过程,因此需要对ais数据进行插值处理,插值过程为:若同一航次的相邻两条记录的接收时间差大于10min,则对该两条数据进行线性插值,从而得到相邻两条记录的时间差为5

10s,经度、纬度、航速、航向的插值公式分别如下所示:
[0021][0022][0023][0024][0025]
其中,lon
a
和lon
b
,lat
a
和lat
b
,sog
a
和sog
b
,cog
a
和cog
b
,t
a
和t
b
分别表示缺失轨迹数据中,前后两条记录的经度、纬度、航速、航向、时间值,t
i
为插值的时间,lon
i
、lat
i
、sog
i
、cog
i
分别表示运用线性插值法求得的插值时刻的经度、纬度、航速、航向值。
[0026]
进一步的,所述步骤s2具体包括
[0027]
将船舶轨迹点的数据结构定义为:
[0028]
t
i,j
={longitude,latitude,cog,sog,shiptype,length,breadth,receivetime}
ꢀꢀꢀꢀ
(5)
[0029]
其中,i为船舶的mmsi,j为具有同一mmsi的船舶的轨迹点次序,t
i,j
可以表示某一船舶在某时刻的船舶轨迹信息;longitude、latitude表示船舶轨迹的位置属性;sog表示船舶轨迹的速度属性;cog表示船舶轨迹的方向属性;receicetime表示船舶轨迹的时间属性;shiptype,length,breadth表示船舶静态属性,反映船舶的类型、吨级等特征。
[0030]
进一步的,所述步骤s3具体包括
[0031]
设t
i,j
为某一船舶在某时刻的船舶轨迹信息,其中,i为船舶的mmsi,j为具有同一mmsi的船舶的轨迹点次序;因此,t
i,j
与t
i,j 1
分别表示具有相同mmsi的船舶按照接收时间进行排序后得到的相邻轨迹点,其中,t
j
、t
j 1
分别表示相邻轨迹点的发送时间,v
j
、v
j 1
分别表示相邻轨迹点的航速大小,c
j
、c
j 1
分别表示相邻轨迹点的航向大小,将船舶相邻轨迹点的航速、航向变化率分别表示为:
[0032][0033]
其中,v’、c’分别为航速、航向变化率,δv、δc分别为相邻两轨迹点间的航速、航向变化量,δt为相邻两轨迹点间的时间变化量;
[0034]
在对船舶轨迹点进行压缩之前,需要先确定航速、航向变化率的阈值;将航速、航向变化率的阈值设为平均值,分别记为
[0035]
船舶轨迹点压缩的流程为:
[0036]
(3.1)分别将每艘船舶轨迹的起点、终点作为备选点;
[0037]
(3.2)计算每艘船舶轨迹点的航速、航向变化率及其平均值;
[0038]
(3.3)从第二个轨迹点开始,首先判断轨迹点的航速情况,若则将该点作为备选点,否则继续判断航向情况,若则将该点选为备选点,否则,该点不是备选点,依次遍历直至倒数第二个轨迹点;
[0039]
(3.4)将筛选出的船舶轨迹点依次按照mmsi、接收时间进行排序,得到船舶轨迹备选点的集合,作为压缩后的船舶轨迹点集,用于后续船舶典型运动轨迹的挖掘。
[0040]
进一步的,所述步骤s4具体包括
[0041]
运用基于改进k

medoids聚类的船舶典型运动轨迹自适应挖掘算法进行聚类,通过将传统的k

medoids算法与分段均方根误差评价指标相结合,自适应寻找局部最佳k值,最终将聚类中心点相连得到船舶的典型运动轨迹;
[0042]
分段均方根误差的计算表达式为:
[0043][0044]
其中,e
srms
为分段均方根误差值,d为样本被聚类中心所分成的段的总数,l为段的次序;
[0045]
运用sak

medoids聚类算法进行船舶典型运动轨迹挖掘的步骤如下:
[0046]
(4.1)将k值在设定的范围内进行遍历,从经过压缩处理后的某一类别船舶轨迹点数据中随机选取k个初始轨迹点作为聚类中心;
[0047]
(4.2)分别计算各个轨迹点到初始聚类中心之间的欧几里得距离;
[0048]
(4.3)将各个轨迹点划分到与各聚类中心点最近的类簇中;
[0049]
(4.4)在每一类簇中,计算各个轨迹点之间的绝对误差标准,将具有最小绝对误差标准的点作为新的聚类中心点;
[0050]
(4.5)不断重复步骤(4.3)、(4.4),若所有的聚类中心点不再发生变化,则将当前所有的中心点作为最终的聚类中心点,并按照经度进行排序;
[0051]
(4.6)根据聚类中心将船舶轨迹点划分到不同的航段(航段数=k 1),根据相邻两聚类中心的经纬度坐标值计算出每一航段的斜截式直线方程;
[0052]
(4.7)根据每一航段的斜截式方程计算出对应航段内观测轨迹点的预测值;
[0053]
(4.8)分别求取在不同k值条件下的观测轨迹点的e
srms
值;
[0054]
(4.9)寻找具有局部最小e
srms
值条件下所对应的k值,作为sak

medoids聚类算法中,自适应确定的参数,为了防止k值选取过大,导致e
srms
值无限趋近于0,造成过拟合的现象,本发明选择具有局部最优特征的k值;
[0055]
(4.10)将最终的聚类中心存储到数据表中,作为船舶典型运动轨迹的轨迹特征点,并按照经度进行排序,将轨迹特征点依次相连,构成挖掘出的船舶典型运动轨迹。
[0056]
进一步的,所述步骤s5具体包括
[0057]
运用兰德系数计算聚类的准确率,其值越大意味着聚类结果与真实情况越吻合,准确率越高,表达式为:
[0058][0059]
其中,r
i
为求得的准确率,n
tp
表示被正确分类的正例个数,n
fp
表示本为负例被错分为正例的个数,n
fn
表示本为正例被错分为负例的个数,n
tn
表示被正确分类的负例个数。
[0060]
本发明与现有技术相比具有以下有益效果:
[0061]
本发明提出一种sak

medoids算法,基于该算法可以实现自适应船舶典型运动轨迹的挖掘,是一种基于轨迹点的聚类算法。
[0062]
本方法与现有船舶轨迹聚类方法不同之处在于解决了聚类算法的复杂度较高、自适应程度较差的问题,通过将传统的k中心点算法与分段均方根误差评价指标相结合,改进了传统的k中心点聚类算法,实现自适应地寻找局部最佳k值,依次将聚类的中心点相连得到吨级船舶的典型运动轨迹,并且能够依据船舶吨级分别对不同的轨迹模式进行挖掘,为分析不同吨级条件下的船舶轨迹运动方式提供有力的信息支持。本方法具有以下优点:
[0063]
1.基于ais数据,结合船舶的航速、航向特征实现船舶轨迹点的压缩,提高了轨迹点数据的存储效率;
[0064]
2.将轨迹点作为聚类对象,使得聚类对象简单化,算法运行效率得到提升,用点来代替轨迹片段,实现连续轨迹的特征挖掘;
[0065]
3.根据分段均方根误差的均值改进了k中心点聚类算法,提高了传统算法的自适应程度。
[0066]
本发明提出的sak

medoids聚类算法为挖掘船舶典型运动轨迹的挖掘提供新思路,且可有效地对不同类别的船舶轨迹点进行聚类,避免了典型轨迹段的特征缺失,所得的典型轨迹与实际相符合,具有较好的自适应性和准确性。研究结果可为实现分类船舶典型运动轨迹的挖掘提供参考,为航线的规划、挖掘船舶的交通行为特征等方面提供技术支持,对于辅助船舶轨迹异常检测具有借鉴意义。
附图说明
[0067]
图1为本发明所提出的一种基于改进k

medoids聚类的船舶典型运动轨迹自适应挖掘方法的流程示意图;
[0068]
图2为本发明所提出的船舶轨迹插值示意图;
[0069]
图3为本发明的航速、航向变化率示意图;
[0070]
图4为本发明所提出的船舶典型运动轨迹挖掘示意图。
具体实施方式
[0071]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0072]
本发明所提出的一种基于改进k

medoids聚类的船舶典型运动轨迹自适应挖掘方法,如图1所示,具体实施步骤如下:
[0073]
s1:将存储在数据库中的ais动、静态数据进行清洗,在此基础上实现数据表的匹配与排序,运用线性插值算法将缺失数据补全;具体包括
[0074]
(1.1)数据清洗:
[0075]
经过解码后的船舶ais数据并不能全部直接使用,而应当先对其进行数据清洗。清洗过程包括:将ais动、静态数据中的重复记录值字段删除,保证静态数据表中,同一mmsi仅保存一条记录值,动态数据表中,同一mmsi的不同行数据不完全一致;删除有明显错误的数据、且不在正常范围内的数据,遵循欧盟发布的m137

4规定,ais数据中字段的正常范围如下表所示:
[0076][0077][0078]
(2)数据匹配:
[0079]
将清洗过的ais动、静态数据进行匹配,具体匹配过程为:读取重新清洗过的正确
的ais静态数据表,将此数据表记为表a;读取重新处理过的正确的ais动态数据表,将此数据表记为表b;以mmsi号为索引对表a与表b进行匹配,原则是将表a中数据填入表b中,以表b的mmsi号码为基准,最终得到的匹配结果的表行数应与表b相同。
[0080]
(3)数据排序:
[0081]
将经过动、静态数据匹配的数据表依次按照mmsi、接收时间进行排序,目的是为了获得能够反映出每条船舶连续的运动情况的船舶轨迹数据;
[0082]
(4)线性插值:
[0083]
由于船舶发送的ais数据的时间间隔并不一致,存在部分排序后的数据相邻两条记录值的时间差较大的情况,无法反映出连续的船舶轨迹动态变化过程,因此需要对ais数据进行插值处理,插值过程为:若同一航次的相邻两条记录的接收时间差大于10min,则对该两条数据进行线性插值,从而得到相邻两条记录的时间差为5

10s,经度、纬度、航速、航向的插值公式如下所示:
[0084][0085][0086][0087][0088]
其中,lon
a
和lon
b
,lat
a
和lat
b
,sog
a
和sog
b
,cog
a
和cog
b
,t
a
和t
b
分别表示缺失轨迹数据中,前后两条记录的经度、纬度、航速、航向、时间值,ti为插值的时间,lon
i
、lat
i
、sog
i
、cog
i
分别表示运用线性插值法求得的插值时刻的经度、纬度、航速、航向值。插值示意图如图2所示。
[0089]
s2:提取所需的数据字段,构成船舶轨迹点数据结构;
[0090]
船舶航行的轨迹点是由一系列根据空间和时间变化的散点来表征和确定的,这些散点可以运用ais数据中的部分信息来表示。基于此,本发明将船舶轨迹点的数据结构定义为:
[0091]
t
i,j
={longitude,latitude,cog,sog,shiptype,length,breadth,receivetime}
ꢀꢀꢀꢀ
(5)
[0092]
其中,i为船舶的mmsi,j为具有同一mmsi的船舶的轨迹点次序,t
i,j
可以表示某一船舶在某时刻的船舶轨迹信息。longitude、latitude表示船舶轨迹的位置属性;sog表示船舶轨迹的速度属性;cog表示船舶轨迹的方向属性;receicetime表示船舶轨迹的时间属性;shiptype,length,breadth表示船舶静态属性,反映船舶的类型、吨级等特征。
[0093]
通过建立船舶轨迹点的数据结构,保留了能够反映船舶轨迹点的信息,剔除了冗余信息,从而提高轨迹数据的存储效率与船舶典型运动轨迹的挖掘效率。
[0094]
s3:基于航速、航向变化率对船舶轨迹进行压缩,提取用于聚类的特征点集;
[0095]
设t
i,j
为某一船舶在某时刻的船舶轨迹信息,其中,i为船舶的mmsi,j为具有同一mmsi的船舶的轨迹点次序。因此,t
i,j
与t
i,j 1
分别表示具有相同mmsi的船舶按照接收时间进
行排序后得到的相邻轨迹点,其中,t
j
、t
j 1
分别表示相邻轨迹点的发送时间,v
j
、v
j 1
分别表示相邻轨迹点的航速大小,c
j
、c
j 1
分别表示相邻轨迹点的航向大小,将船舶相邻轨迹点的航速、航向变化率分别表示为:
[0096][0097]
其中,v’、c’分别为航速、航向变化率,δv、δc分别为相邻两轨迹点间的航速、航向变化量,δt为相邻两轨迹点间的时间变化量。航速、航向变化率的示意图如图3所示。
[0098]
在对船舶轨迹点进行压缩之前,需要先确定航速、航向变化率的阈值。若阈值选择太小,则会导致轨迹点数量过多,在进行数据存储时会浪费一定的空间,且增加算法的运行时间;若阈值选择太大则会导致轨迹点数量过少,用于聚类的点较少,难以保证聚类结果的准确度。因此,一般将航速、航向变化率的阈值设为平均值,分别记为
[0099]
船舶轨迹点压缩的流程为:
[0100]
(3.1)分别将每艘船舶轨迹的起点、终点作为备选点;
[0101]
(3.2)计算每艘船舶轨迹点的航速、航向变化率及其平均值;
[0102]
(3.3)从第二个轨迹点开始,首先判断轨迹点的航速情况,若则将该点作为备选点,否则继续判断航向情况,若则将该点选为备选点,否则,该点不是备选点,依次遍历直至倒数第二个轨迹点;
[0103]
(3.4)将筛选出的船舶轨迹点依次按照mmsi、接收时间进行排序,得到船舶轨迹备选点的集合,作为压缩后的船舶轨迹点集,用于后续船舶典型运动轨迹的挖掘。
[0104]
s4:计算每一段子轨迹的分段均方根误差,并将其与传统的k

medoids算法相结合,实现聚类参数的自适应选择,分别提取每一类簇的聚类中心点并依次相连,得到不同类型、吨级及进出港条件下的船舶典型运动轨迹;
[0105]
本发明的船舶典型运动轨迹挖掘算法是基于轨迹点的聚类算法,在得到经过清洗与预处理的船舶轨迹点数据后,运用基于改进k

medoids聚类的船舶典型运动轨迹自适应挖掘算法(sak

medoids)进行聚类,通过将传统的k

medoids算法与分段均方根误差(e
srms
)评价指标相结合,自适应寻找局部最佳k值,最终将聚类中心点相连得到船舶的典型运动轨迹。
[0106]
由于k

medoids算法是一种无监督的学习方法,k值的选择受人为因素影响较大。为实现k

medoids聚类算法中参数的自适应确定,结合概率论与数理统计理论,将分段均方根误差作为评价指标,与k

medoids聚类算法相结合,对传统的k

medoids聚类算法进行改进,形成自适应k

medoids聚类算法。均方根误差通过计算观测值与真实值之间的误差反映线段对点的拟合程度,其计算表达式为:
[0107][0108]
式中,e
rms
为均方根误差值,n为观测样本的数量,y
o
为观测样本的因变量,y
p
为观测样本的预测值,该值越小,表明拟合程度越好。
[0109]
但均方根误差通常将整个样本点数据作为真实值,导致其不能很好地反映出局部样本的拟合效果。基于此,本发明提出了分段均方根误差,即将误差的计算对象缩小为局部样本点,实现误差的局部最小化,并将其与传统k

medoids算法相结合,作为自适应k

medoids聚类船舶典型运动轨迹挖掘算法的参数确定依据,计算表达式为:
[0110][0111]
其中,e
srms
为分段均方根误差值,d为样本被聚类中心所分成的段的总数,l为段的次序。
[0112]
运用sak

medoids聚类算法进行船舶典型运动轨迹挖掘的步骤如下:
[0113]
(4.1)将k值在设定的范围内进行遍历,从经过压缩处理后的某一类别船舶轨迹点数据中随机选取k个初始轨迹点作为聚类中心;
[0114]
(4.2)分别计算各个轨迹点到初始聚类中心之间的欧几里得距离;
[0115]
(4.3)将各个轨迹点划分到与各聚类中心点最近的类簇中;
[0116]
(4.4)在每一类簇中,计算各个轨迹点之间的绝对误差标准,将具有最小绝对误差标准的点作为新的聚类中心点;
[0117]
(4.5)不断重复步骤(4.3)、(4.4),若所有的聚类中心点不再发生变化,则将当前所有的中心点作为最终的聚类中心点,并按照经度进行排序;
[0118]
(4.6)根据聚类中心将船舶轨迹点划分到不同的航段(航段数=k 1),根据相邻两聚类中心的经纬度坐标值计算出每一航段的斜截式直线方程;
[0119]
(4.7)根据每一航段的斜截式方程计算出对应航段内观测轨迹点的预测值;
[0120]
(4.8)分别求取在不同k值条件下的观测轨迹点的e
srms
值;
[0121]
(4.9)寻找具有局部最小e
srms
值条件下所对应的k值,作为sak

medoids聚类算法中,自适应确定的参数,为了防止k值选取过大,导致e
srms
值无限趋近于0,造成过拟合的现象,本发明选择具有局部最优特征的k值;
[0122]
(4.10)将最终的聚类中心存储到数据表中,作为船舶典型运动轨迹的轨迹特征点,并按照经度进行排序,按照如图4所示的方式将轨迹特征点依次相连,构成挖掘出的船舶典型运动轨迹。
[0123]
s5:通过计算兰德系数值,对准确率进行评估。
[0124]
运用兰德系数(rand index,ri)计算聚类的准确率,其值越大意味着聚类结果与真实情况越吻合,准确率越高,表达式为:
[0125][0126]
其中,r
i
为求得的准确率,n
tp
表示被正确分类的正例个数,n
fp
表示本为负例被错分为正例的个数,n
fn
表示本为正例被错分为负例的个数,n
tn
表示被正确分类的负例个数。
[0127]
以上所述的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案做出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜