% mykohonen.m
%% 清空环境变量
clc,clear
close all
%% 样本数据
x0=[4.1,1.8,0.5,2.9,4.0,0.6,3.8,4.3,3.2,1.0,3.0,3.6,3.8,3.7,3.7,8.6,9.1,...
7.5,8.1,9.0,6.9,8.6,8.5,9.6,10.0,9.3,6.9,6.4,6.7,8.7;...
8.1,5.8,8.0,5.2,7.1,7.3,8.1,6.0,7.2,8.3,7.4,7.8,7.0,6.4,8.0,...
3.5,2.9,3.8,3.9,2.6,4.0,2.9,3.2,4.9,3.5,3.3,5.5,5.0,4.4,4.3];
%数据归一化
[x,m_x]=mapminmax(x0);
x=x';
[nn,mm]=size(x);
%% 参数
rng(0)
%学习率
rate1max=0.8;
rate1min=0.05;
%学习半径
r1max=3;
r1min=0.8;
%% 网络构建
Inum=2;
% M=1;
M=2;
N=2;
K=M*N; %Kohonen总节点数
k=1; %Kohonen层节点排序
jdpx=zeros(M*N,2);
for i=1:M
for j=1:N
jdpx(k,:)=[i,j];
k=k+1;
end
end
%权值初始化
w1=rand(Inum,K); %第一层权值
%% 迭代求解
ITER=200;
for i=1:ITER
%自适应学习率和相应半径
rate1=rate1max-i/ITER*(rate1max-rate1min);
r=r1max-i/ITER*(r1max-r1min);
%随机抽取一个样本
k=randi(30);
xx=x(k,:);
%计算最优节点
[mindist,index]=min(dist(xx,w1));
%计算临域
d1=ceil(index/4);
d2=mod(index,4);
nodeindex=find(dist([d1,d2],jdpx')<r);
%内星规则
for j=1:K
if sum(nodeindex==j)
w1(:,j)=w1(:,j)+rate1*(xx'-w1(:,j));
end
end
end
%% 测试
Index=zeros(1,30);
for i=1:30
[mindist,Index(i)]=min(dist(x(i,:),w1));
end
%% 显示
x1=x0(:,Index==1);
x2=x0(:,Index==2);
x3=x0(:,Index==3);
x4=x0(:,Index==4);
plot(x1(1,:),x1(2,:),'ro');hold on
plot(x2(1,:),x2(2,:),'k*');
plot(x3(1,:),x3(2,:),'b>');
plot(x4(1,:),x4(2,:),'mp');
title('聚类结果')
legend('类别1','类别2','类别3','类别4')
% legend('类别1','类别2')
set(gcf,'color','w')
box on
自组织竞争神经网络程序实列.zip_trafficxw8_神经网络_自组织竞争
版权申诉
192 浏览量
2022-07-15
20:52:04
上传
评论
收藏 1KB ZIP 举报
御道御小黑
- 粉丝: 61
- 资源: 1万+
最新资源
- mysql查询语句汇总.zip
- typora-x64-v0.9.93,windows,64位,markdown工具,文本编辑器
- 基于C语言的neon_osd_Draw ARM Neon加速OSD点阵设计源码
- 目标检测-工地工人安全设备佩戴检测数据集-3500张图-+对应VOC-COCO-YOLO三种格式标签+数据集划分脚本+训练日志
- 运筹学运输问题综合实验的实验报告
- home - 副本.vue
- imageProcess.py
- typora-linux-v0.11.18-amd64,linux,64位,markdown工具,文本编辑器
- 基于Java的sky-take-out云霄外卖管理系统设计源码
- SAP-可用性检查应用测试.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈