老饼讲解-神经网络 机器学习 神经网络 深度学习
LVQ神经网络

【说明】Matlab的LVQ神经网络-详细使用说明

作者 : 老饼 发表日期 : 2023-03-25 00:07:12 更新日期 : 2023-05-12 22:31:00
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com



LVQ神经网络是Kohonen于1989年提出基于竞争网络的学习矢量量化网络,主要用于做分类。

 本文讲解matlab神经网络工具箱使用LVQ神经网络的Demo以及入参说明(基本参考于matlab2018a函数newlvq的官方说明)



  01. LVQ神经网络-简单Demo  



本节简单列举一个matlab实现LVQ神经网络的简单DEMO



     matlab的LVQ神经网络DEMO    


matlab可以通过newlvq函数构建一个LVQ神经网络,
再利用train函数对网络进行训练,就可以得到训练好的LVQ神经网络
下面展示一个来自matlab官方的简单LVQ例子Demo
 matlab工具箱使用LVQ的Demo代码
%代码说明:LVQ的matlab工具箱使用Demo
%来自《老饼讲解神经网络》www.bbbdata.com ,matlab版本:2014b
%-----------------------------------------------------
%数据准备
P = [-3 -2 -2  0  0  0  0 +2 +2 +3; ...
    0 +1 -1 +2 +1 -1 -2 +1 -1  0];     % 输入数据
Tc = [1 1 1 2 2 2 2 1 1 1];            % 输出类别
T = ind2vec(Tc);                       % 将输出转为one-hot编码(代表类别的01向量)

%网络训练
net = newlvq(P,4,[.6 .4]);   % 建立一个LVQ神经网络
net = train(net,P,T);        % 训练神经网络
%预测
Y = sim(net,P);              % 预测(one-hot形式)
Yc = vec2ind(Y);             % 将one-hot编码形式转回类别编号形式



  02. newlvq语法说明   



本节详细讲解newlvq的语法说明



     newlvq的语法说明    


语法: net = newlvq(P,S1,PC,LR,LF)                                                       
描述:newlvq创建一个LVQ(learning vector quantization )神经网络。
入参说明
👉   P:用于训练的输入数据                                                             
 每列代表一个样本,有多少个样本,就有多少列
 👉 S1:隐节点个数                                                                           
 👉 PC:各个输出节点连接隐节点的个数占比                                      
 元素个数必须与输出节点个数一致,并且总和为1    
例如[0.3,0.7]代表第一个输出节点连接30%隐神经元
第二个输出节点连接70%隐神经元                 

 👉 LR:学习率, 默认为0.01                                                              
 👉 LF:learnFunction,学习函数                                                      
 可以设为'learnlv1'或'learnlv2',默认为'learnlv1'



    训练数据格式说明   


LVQ训练数据的输入、输出数据的格式如下
输入数据
输入数据P为n*m的矩阵,n为输入变量个数,m为样本个数,
 也即每列代表一个样本,每行代表一个变量
 

 输出数据
输出数据T为s*m的矩阵,s为类别个数,m为样本个数,
 T的每列代表一个样本,每列都必须是one-hot格式
即每列只有一个为1,其余为0,哪列为1就代表样本是哪一个类别










  End  

















联系老饼