数据场方法是模拟物理中场论的思想,认为两个客体之间存在某种相互作用,通过模拟这种相互作用就可以利用物理上客体在场空间上的自组织现象完成对数据的聚类。
x=-1+dd*i;
disp(i);
for j=1:W
y=-1+dd*j;
%disp(j);
for k=1:W
z=-1+dd*k;
forn=1:N
x0=X(1,n);
y0=X(2,n);
z0=X(3,n);
%计算势能
D2=(x-x0)^2+(y-y0)^2+(z-z0)^2;
v=exp(-D2/(2*Delta*Delta));
V(i,j,k)=V(i,j,k)+v;
end
end
end
for y=1:W
vz=0;
for z=1:W
vz=vz+V(x,y,z);
end
Vz(x,y)=vz;
end
for z=1:W
vy=0;
for y=1:W
vy=vy+V(x,y,z);
end
Vy(x,z)=vy;
end
for z=1:W
vx=0;
for x=1:W
vx=vx+V(x,y,z);
end
Vx(y,z)=vx;
end
tn=U0(:,i);
maxtn=max(tn);
pos=find(tn==maxtn);
JL(i)=pos(1);
clc
clear
close all
%% 导入原始数据
%
GreenSim团队——专业级算法设计&代写程序
%
欢迎访问GreenSim团队主页→http://blog.sina.com.cn/greensim
load radar525_7.txt; data=radar525_7';%导入原始数据
%load radar525_81.txt; data=radar525_81';%导入原始数据
%% 数据预处理
X0=data(1:3,:);%参与聚类的数据
Y0=data(4,:);%分类标签(不参与聚类)
[X,PSX]=mapminmax(X0,-1,1);%归一化
N=size(X,2);
%相关性分析
disp('相关系数矩阵为');
disp(corrcoef(X'));
%原始数据的散点图
figure
scatter3(X(1,:),X(2,:),X(3,:),5*ones(1,N),Y0,'field');
xlabel('载频','FontName','Times New Roman','Fontsize',10);
ylabel('脉宽','FontName','Times New Roman','Fontsize',10);
zlabel('到达角','FontName','Times NewRoman','Fontsize',10);
title('原始数据散点图','FontName','Times NewRoman','Fontsize',10);
grid on
%% 使用数据场的方法分析聚类中心
W=51;%网格划分尺度
dd=2/(W-1);%网格间距
Delta=0.15;%辐射因子
V=zeros(W,W,W);
for i=1:W
end
%%
%绘图
figure
[xx,yy]=meshgrid(-1:dd:1,-1:dd:1);
Vz=zeros(W,W);
for x=1:W
end
[C,h]=contour(xx,yy,Vz,[0:50:5000]);
set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2)
text_handle=clabel(C,h);
set(text_handle,'FontName','Times NewRoman','FontSize',6);
xlabel('脉宽','FontName','Times New Roman','FontSize',10);
ylabel('载频','FontName','Times New Roman','FontSize',10);
title('势分布等高线图(z轴投影)','FontName','Times NewRoman','FontSize',10);
figure
[xx,zz]=meshgrid(-1:dd:1,-1:dd:1);
Vy=zeros(W,W);
for x=1:W
end
[C,h]=contour(xx,zz,Vy,[0:50:5000]);
set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2)
text_handle=clabel(C,h);
set(text_handle,'FontName','Times NewRoman','FontSize',6);
xlabel('到达角','FontName','Times NewRoman','FontSize',10);
ylabel('载频','FontName','Times New Roman','FontSize',10);
title('势分布等高线图(y轴投影)','FontName','Times NewRoman','FontSize',10);
figure
[yy,zz]=meshgrid(-1:dd:1,-1:dd:1);
Vx=zeros(W,W);
for y=1:W
end
[C,h]=contour(yy,zz,Vx,[0:50:5000]);
set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2)
text_handle=clabel(C,h);
set(text_handle,'FontName','Times NewRoman','FontSize',6);
xlabel('到达角','FontName','Times NewRoman','FontSize',10);
ylabel('脉宽','FontName','Times New Roman','FontSize',10);
title('势分布等高线图(x轴投影)','FontName','Times NewRoman','FontSize',10);
%% 整理聚类结果
JL=zeros(1,N);
for i=1:N
end
F=JL-Y0;
ERR=100*length(find(F==0))/N;%分类准确度指标