老饼讲解-神经网络 机器学习 神经网络 深度学习
综合杂文

【Demo】SOM神经网络-Matlab代码Demo

作者 : 老饼 发表日期 : 2022-06-09 15:08:43 更新日期 : 2023-05-09 06:22:57
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com



SOM神经网络主要用于做分类

 本文讲解matlab神经网络工具箱使用SOM神经网络的Demo以及入参说明

(基本参考于matlab2014b函数selforgmap的官方说明)



  01. SOM神经网络-简单Demo  



matlab工具箱使用SOM的Demo代码

(2014b版matlab实测已跑通)


% 本demo展示用matlab工具箱训练一个SOM神经网络
% demo来自matlab2014帮助文档
x   = simplecluster_dataset;  % 加载matlab自带的分类数据
net = selforgmap([8 8]);      % 建立一个SOM神经网络
net = train(net,x);           % 训练网络
view(net)                     % 查看网络
y   = net(x);                 % 用训练好的网络进行预测
classes = vec2ind(y);         % 将预测结果由one-hot格式转为类别索引





  02. SOM神经网络-工具箱说明  



语法:


 selforgmap(dimensions,coverSteps,initNeighbor,topologyFcn,distanceFcn)



描述:


selforgmap创建一个SOM神经网络。
SOM神经网络用于数据聚类,它基于相似度,拓扑理论,对每一个类别分派一定比例的聚类点(不能完全保证一定如此)。



入参说明:



dimensions : 行向量,它定义了隐层神经元尺寸。例如[8 3]定义了2维(8*3)的隐层。
coverSteps   : 在该步数之后,领域距离<=1,即不再更新邻域神经元。
initNeighbor:初始的邻域阈值。
topologyFcn:隐层拓扑结构函数。
distanceFcn:拓扑距离计算函数。

默认参数为:selforgmap([8 8],100,3,'hextop',linkdist')







  End  






联系老饼