资源简介
Kohonen神经网络算法工作机理为:网络学习过程中,当样本输入网络时,竞争层上的神经元计算输入样本与竞争层神经元权值之间的欧几里德距离,距离最小的神经元为获胜神经元。调整获胜神经元和相邻神经元权值,使获得神经元及周边权值靠近该输入样本。通过反复训练,最终各神经元的连接权值具有一定的分布,该分布把数据之间的相似性组织到代表各类的神经元上,使同类神经元具有相近的权系数,不同类的神经元权系数差别明显。需要注意的是,在学习的过程中,权值修改学习速率和神经元领域均在不断较少,从而使同类神经元逐渐集中。

代码片段和文件信息
%% 清空环境变量
clc
clear
%% 数据处理
load data
input=datatrain(:1:38);
%数据归一化
[inputninputps]=mapminmax(input);
%inputn=inputn‘;
[nnmm]=size(inputn);
%% 网络构建
%输入层节点数
Inum=38;
%Kohonen网络
M=6;
N=6;
K=M*N;%Kohonen总节点数
%Kohonen层节点排序
k=1;
for i=1:M
for j=1:N
jdpx(k:)=[ij];
k=k+1;
end
end
%学习率
rate1max=0.2;
rate1min=0.05;
%学习半径
r1max=1.5;
r1min=0.8;
%权值初始化
w1=rand(InumK); %第一层权值
%% 迭代求解
maxgen=10000;
for i=1:maxgen
%自适应学习率和相应半径
rate1=rate1max-i/maxgen*(rate1max-rate1min);
r=r1max-i/maxgen*(r1max-r1min);
%从数据中随机抽取
k=unidrnd(4000);
x=inputn(k:);
%计算最优节点
[mindistindex]=min(dist(xw1));
%计算周围节点
d1=ceil(index/6);
d2=mod(index6);
nodeindex=find(dist([d1 d2]jdpx‘)
%权值更新
for j=1:K
%满足增加权值
if sum(nodeindex==j)
w1(:j)=w1(:j)+rate1*(x‘-w1(:j));
end
end
end
%% 聚类结果
Index=[];
for i=1:4000
[mindistindex]=min(dist(inputn(i:)w1));
Index=[Indexindex];
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 90502 2009-12-25 16:53 Kohonen\data.mat
文件 1209 2009-12-06 20:26 Kohonen\Kohonen.m
目录 0 2010-10-01 00:02 Kohonen
----------- --------- ---------- ----- ----
91711 3
- 上一篇:基于matlab的电力系统仿真
- 下一篇:潮流计算matlab代码
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论