% clc
% close all
% clear all
% % %%
% % global noisenum
% % % %% 数据路径
% % % path='AIS1246-1.CSV';
% % % %% 计算H距离
% % % [data1,px,tempMapDis,tempMapV,tempMapHeading]=myHuasdoff(path);
% % % Hdist = (tempMapDis + tempMapV + tempMapHeading) / 3;
% % % %% 取距离中的较小值
% % % for i = 1 : size(Hdist,1)
% % % for j = i + 1 : size(Hdist,2)
% % % max1 = Hdist(i,j);
% % % if max1 < Hdist(j,i)
% % % max1 = Hdist(j,i);
% % % end
% % % Hdist(i,j) = max1;
% % % Hdist(j,i) = max1;
% % % end
% % % end
% load data.mat
% %% 设置聚类参数
% eps=0.056;
% MinNum=18;
% %% DBscan 聚类
% cluster_label=DBSCAN(Hdist,eps,MinNum);
% %% 计算聚类数
% cluster_num=max(cluster_label);
% %% 计算轨迹平均位置
% meanpos=zeros(length(cluster_label),2);
% for i=1:length(cluster_label)
% meanpos(i,1)=mean(data1(data1(:,1)==i,2));
% meanpos(i,2)=mean(data1(data1(:,1)==i,3));
% end
% %% 画图
% % %% plot trace
% figure
% Plottrace(data1,cluster_label)
% title(sprintf(['DBSCAN聚类结果(航迹示意图) \n邻域距离 = ' num2str(eps) ', 最小样本数 = ' num2str(MinNum) '\n航迹类别:' num2str(cluster_num) '类,噪声航迹:' num2str(noisenum) '条']));
% xlabel('经度')
% ylabel('纬度')
% %% plot meanpos
% % figure
% % Plotmeanpos(meanpos, cluster_label);
% % title(sprintf(['DBSCAN聚类结果(航迹平均坐标示意图) \n邻域距离 = ' num2str(eps) ', 最小样本数 = ' num2str(MinNum) '\n航迹类别:' num2str(cluster_num) '类,噪声航迹:' num2str(noisenum) '条']));
% % xlabel('经度')
% % ylabel('维度')
% % 逐类计数典型轨迹
% filename='典型轨迹数据.xlsx';
% DXcolor={'black','magenta'};
% DXindexlist=[15,36];
% Legendslist={'主航道出口船舶典型轨迹','主航道进口船舶典型轨迹'};
%
% for k=1:cluster_num
% data_ind=[];
% temp_trace_ind=find(cluster_label==k);
% for t=1:length(temp_trace_ind)
% data_ind1=find(data1(:,1)==temp_trace_ind(t));
% data_ind=[data_ind;data_ind1];
% end
% % Legendsname = ['第' num2str(k) '类航迹的典型航迹'];
% Legendsname=Legendslist{k};
% [DXfinalData{k},DXdatanew{k},DXpx{k},DXfData{k},DXMapDis{k},DXMapV{k},DXMapHeading{k}]=DXGJ(data1(data_ind,:),DXcolor{k},Legendsname,DXindexlist(k));
% datawriter(filename,DXfData{k},Legendsname)% end
% end
%
% % %%
% % addpath '识别数据集'
% % filename_train_in1='进口正常行为数据.xlsx';
% % filename_train_in0='进口异常行为数据.xlsx';
% addpath '正常与异常数据'
% filename_train_in1='进口正常轨迹数据.xlsx';
% filename_train_in0='进口异常轨迹数据.xlsx';
% [data_in1,finalData_in1]=makeData(filename_train_in1);
% [data_in0,finalData_in0]=makeData(filename_train_in0);
% stepNum=20;
% DistThre=linspace(1,250,stepNum);
% SogThre=linspace(1,8,stepNum);
% CogThre=linspace(1,8,stepNum);
% %
% % DistThre=1:0.01:250;
% DXTrace=DXfData{2};
% % ACC_P=[];
% % ACC_S=[];
% % ACC_C=[];
% for i=1:stepNum
% tDistThre=DistThre(i);
% tSogThre=SogThre(i);
% tCogThre=CogThre(i);
% [ACC_P(i),ACC_S(i),ACC_C(i)]=drawErrerRate(finalData_in1,finalData_in0,DXTrace,tDistThre,tSogThre,tCogThre);
% end
% %%
filename='阈值.xlsx';
data=xlsread(filename);
figure
plot(DistThre,[ACC_P.r],'-gp','DisPlayName','准确率')
hold on
plot(DistThre,1-[ACC_P.r],'-rd','DisPlayName','误警率')
xlabel('位置偏差')
legend
figure
plot(SogThre,[ACC_S.r],'-gp','DisPlayName','准确率')
hold on
plot(SogThre,1-[ACC_S.r],'-rd','DisPlayName','误警率')
xlabel('航速偏差')
legend
figure
plot(CogThre,[ACC_C.r],'-gp','DisPlayName','准确率')
hold on
plot(CogThre,1-[ACC_C.r],'-rd','DisPlayName','误警率')
xlabel('航向偏差')
legend
%% 2类:进口 1类出口
global DistThre SogThre CogThre
DistThre=60;
SogThre=2.8;
CogThre=3.8;
addpath '正常与异常数据'
filename_in='验证进口道船舶异常行为.xlsx';
tracetype=input('请选择要验证的船舶类型:1(出口)/ 2(进口)');
try
DXTrace=DXfData{tracetype};
catch
disp('输入错误')
return
end
checkTrace(filename_in,DXTrace);
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
复现了论文:《基于轨迹聚类的船舶异常行为识别研究》的相关内容 实现了航迹数据的 提取、聚类、提取聚类中心、基于豪斯多夫距离的航迹预测,航迹预测阈值的寻优等多项内容。代码完整,可以直接运行。 完整的项目内容 包含: ****模型文件和航迹数据** **DBSCAN代码 H距离计算代码 航迹提取代码 基于H距离的阈值分类代码 阈值寻优代码 均可直接运行** 可以结合这个案例,学习DBSCAN距离算法和H距离的计算方法,掌握了航迹分类的大致流程,取得了较好的聚类效果,并基于航迹聚类进行航迹偏离预测,经检测准确率较高。 需要学习DBSCAN的朋友可以当作一个应用案例来学习,船舶航迹研究方向的朋友可以通过替换数据和相关模块实现拓展成自己的模型实现**
资源推荐
资源详情
资源评论
收起资源包目录
【Matlab】基于改进的 Hausdorff 距离的DBSCAN船舶航迹聚类.zip (20个子文件)
【Matlab】基于改进的 Hausdorff 距离的DBSCAN船舶航迹聚类
联系方式.png 1.11MB
重要先读.md 840B
欢迎咨询.png 176KB
数据代码
myHuasdoff.m 3KB
datawriter.m 271B
mymeanfilter.m 175B
mycluster.m 4KB
toIntersection.m 2KB
Plottrace.m 1KB
matlab.mat 76KB
画图.zip 9KB
DXGJ.m 3KB
toMinDis.m 2KB
getDev.m 1KB
drawErrerRate.m 4KB
结果v2.zip 2.98MB
osDis.m 191B
Plotmeanpos.m 763B
drawpic.m 879B
checkTrace.m 858B
共 20 条
- 1
资源评论
蓝色洛特
- 粉丝: 288
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功