本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com
LVQ神经网络是Kohonen于1989年提出基于竞争网络的学习矢量量化网络,主要用于做分类。
本文讲解matlab神经网络工具箱使用LVQ神经网络的Demo以及入参说明(基本参考于matlab2014b函数newlvq的官方说明)
matlab工具箱使用LVQ的Demo代码
(2014b版matlab实测已跑通)
%代码说明: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编码形式转回类别编号形式
语法:
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'。
备注:learnlv2最好不要单独直接使用,应先用learnlv1训练网络,再把训练完的网络继续用learnlv2训练
End