刘 骏(上海海事大学信息工程学院,上海201306)
基于LVQ神经网络的葡萄酒品牌鉴别研究
刘骏
(上海海事大学信息工程学院,上海201306)
葡萄酒现已成为广大消费者青睐的时尚饮品,其品牌的鉴别日益受到关注。针对于此,依据学习向量量化神经网络的优点,提出数据归一化结合LVQ神经网络建立模型实现葡萄酒品牌的快速鉴别。对从UCI数据库下载的葡萄酒原始数据进行归一化预处理,将预处理后的数据按照一定的比例分成训练集和测试集,建立LVQ神经网络模型,用训练集的数据训练这个模型后用测试集数据进行分类预测。根据最终的实验结果可以得出,该模型对测试集的分类准确率达到100%,是一种快速、有效的鉴别葡萄酒品牌方法。
葡萄酒;归一化;学习向量量化
医学研究表明,葡萄的营养很高,而以葡萄为原料的葡萄酒也蕴藏了多种氨基酸、矿物质和维生素,适度饮用葡萄酒不仅能够促进血液循环、调节新陈代谢,而且还有美容养颜的功效[1]。葡萄酒的种类繁多,传统的依靠品酒专家个人经验的方法费用高、主观性强,不利于大批量样品的快速分类[2]。
LVQ神经网络模型具有自学习能力强、网络结构简单等优点,基于这些优点,提出了一种基于LVQ神经网络的模型用于葡萄酒的分类的方法。实验对原始的葡萄酒数据进行归一化预处理,充分挖掘原始数据中的有效信息,然后建立葡萄酒的LVQ神经网络模型,该模型有着很高的鉴别准确率,是一种正确的、有效的葡萄酒品牌鉴别手段[3]。
1.1数据来源
从UCI数据库中下载葡萄酒的数据,数据记录的是意大利某一区域3种不同品牌葡萄酒的化学成分,数据为178×13的矩阵,178是样本的数量,13是每个样本的化学成分指标,详情如下:(1)Alcohol;(2)Malic acid;(3)Ash;(4)Alcalinity of ash;(5)Magnesium;(6)Total phenols;(7)Flavanoids;(8)Nonflavanoid phenols;(9)Proanthocyanins;(10)Colro intensity;(11)Hue;(12)OD280/OD315 of diluted wines;(13)Proline[4]。
1.2分析方法
(1)归一化
数据归一化,就是为方便对数据的处理,将数据按照某种规则进行放大或者缩小,使数据落入如[0,1]和[-1,1]这样较小的区间内[5]。常用的归一化方式有两种:
①[0,1]区间归一化,其映射如下:
(2)LVQ神经网络
学习向量量化(Learning Vector Quantization,LVQ)是由芬兰学者Kohonen从竞争算法演化而来的一种前向有监督神经网络,在优化领域和模式识别应用十分广泛[6]。
LVQ神经网络由竞争层、线性输出层和输入层三层组成。竞争层与线性输出层的连接方式为部分连接,而输入层与竞争层之间的连接方式则为完全连接。LVQ神经网络有LVQ1和LVQ2两种学习方法。本文采用的是LVQ1算法,该算法的基本思想是:计算并找到这样一个竞争层神经元,它距离输入向量最近,根据这个竞争层神经元找到线性输出层神经元。如果输入向量和线性输出层神经元两者的类别一致,那么朝着输入向量的方向移动对应的竞争层神经元权值;如果输入向量和线性输出层神经元两者的类别不一致,那么朝着与输入向量相反的方向移动对应的竞争层神经元权值[7]。LVQ1算法的基本步骤如下:
(1)初始化。对输入与竞争两层之间的学习率η (η>0)及权值wij进行初始化操作。
(2)计算距离。将向量x=(x1,x2,…,xR)T送入输入层,并计算其与竞争层神经元之两者间的距离:
(3)寻找神经元并设置标签。寻找一个竞争层神经元使之与输入向量之间的距离最小,如果di最小,那么记与之连接的线性输出层神经元的类标签为Ci。
权值调整。设Cx为输入向量的类标签,如果Cx= Ci,那么根据式(2)调整权值,如果Cx≠Ci,则根据式(3)进行权值更新:
2.1选定训练集和测试集
将从UCI数据库下载的数据导入MATLAB,把178个样品随机分成训练集和测试集,其中训练集158个,预测集20个,并对数据进行归一化预处理,其MATLAB代码如下:
a=randperm(178);
trainwine=wine(a(1:158),:);
testwine=wine(a(159:end),:);
[mtrain,ntrain]=size(trainwine);
[mtest,ntest]=size(testwine);
dataset=[trainwine;testwine];
[datasetscale,ps]=mapminmax(dataset',0,1);
datasetscale=datasetscale';
trainwine=datasetscale(1:m train,:);
testwine=datasetscale((mtrain+1):(mtrain+mtest),:);
Ptrain=trainwine';
Ptest=testwine';
Tctrain=winelabels(a(1:158),:)';
Ttrain=ind2vec(Tctrain);
Tctest=winelabels(a(159:end),:)';
2.2创建LVQ网络
训练集和测试集选定后,使用newlvq函数和训练集数据创建网络,其中0.01为学习速率,learnlv1表示学习方法为LVQ1,其MATLAB代码如下:
for i=1:3
rate{i}=length(find(Tctrain==i))/158;
end
net=newlvq(minmax(Ptrain),10,cell2mat(rate),0.01, 'learnlv1');
net.trainParam.epochs=100;
net.trainParam.goal=0.001;
net.trainParam.lr=0.1;
2.3训练LVQ网络
网络创建好后,设置迭代次数、学习速率和训练精度等参数,使用train函数训练网络,其MATLAB代码如下:
net=train(net,P_train,T_train);
2.4使用测试集数据测试
待LVQ神经网络模型训练好后,使用sim函数将葡萄酒的测试集数据输入到模型,得到测试集葡萄酒的分类结果。其MATLAB代码如下:
T_sim=sim(net,P_test);
T_csim=vec2ind(T_sim);
result=[Tc_sim;Tc_test]
2.5结果显示及分析
表1
从表1中可以看出,对20个测试样本的鉴别率为100%,证明了数据归一化结合LVQ神经网络实现了三种葡萄酒的准确鉴别。
本文以葡萄酒的品牌的鉴别为例,利用归一化方法处理原始的葡萄酒数据,之后建立LVQ神经网络模型完成了对样本的学习和分类预测。文中提供了完整的MATLAB代码,并给出了详细的模型设计步骤。最后的实验结果表明,数据归一化预处理结合LVQ神经网络可以实现对葡萄酒品牌的精确分类,具有一定的实用价值。
[1]陈玉庆.葡萄酒的成分与营养价值[J].酿酒,2004,31(5):112~114
[2]高年发,李丽,张健康.利用模式识别技术鉴别中国葡萄酒的产地和品种[J].中国酿造,2009,28(3):68~71
[3]王波,杜晓昕,金梅.LVQ神经网络在乳腺肿瘤诊断中的应用[J].计算机仿真,2012,29(8):171~172
[4]Index of/m l/machine-learning-databases/wine.http://archive.ics.uci.edu/ml/machine-learning-databases/wine
[5]王小川,史峰,李洋,等.MATLAB神经网络43个案例分析[M].北京:北京航空航天大学出版社,2013
[6]罗建春,罗庆,杨杰,等.基于LVQ-GA-BP神经网络光伏电站出力短期预测[J].电力系统保护与控制,2014,42(13):91~93
[7]余炜,马晶晶,刘伦,等.基于EMD和LVQ的信号特征提取及分类方法[J].数据采集与处理,2014,29(5):684~685
Wine;Normalization Methods;Learning Vector Quantization
Research on W ine Brand Recognition Based on LVQ Network
LIU Jun
(Department of Information Engineering,ShanghaiMaritime University,Shanghai 201306)
Wine as a health drink ismore and more popularwith the consumers,and the brand of recognition increasingly received attention.Based on the advantages of Learning Vector Quantization neural network,puts forward data normalization combine with LVQ neural network to build model to realize the rapid identification of wine brands.Downloads the wine data from UCI database and uses Normalization methods to pretreat the data,then the data is divided into training set and test set and builds the model of LVQ neural network.With the training set data training thismodel,and uses test set data to predict classification.According to the experimental results,it can be concluded that themodel on the test setof classification accuracy is as high as 100%,provides a new way to identify thewine brand.
1007-1423(2015)15-0003-03
10.3969/j.issn.1007-1423.2015.15.001
刘骏(1992-),男,江西景德镇人,硕士,研究方向为计算机系统应用2015-03-26
2015-04-28