劉 駿(上海海事大學(xué)信息工程學(xué)院,上海201306)
基于LVQ神經(jīng)網(wǎng)絡(luò)的葡萄酒品牌鑒別研究
劉駿
(上海海事大學(xué)信息工程學(xué)院,上海201306)
葡萄酒現(xiàn)已成為廣大消費者青睞的時尚飲品,其品牌的鑒別日益受到關(guān)注。針對于此,依據(jù)學(xué)習(xí)向量量化神經(jīng)網(wǎng)絡(luò)的優(yōu)點,提出數(shù)據(jù)歸一化結(jié)合LVQ神經(jīng)網(wǎng)絡(luò)建立模型實現(xiàn)葡萄酒品牌的快速鑒別。對從UCI數(shù)據(jù)庫下載的葡萄酒原始數(shù)據(jù)進行歸一化預(yù)處理,將預(yù)處理后的數(shù)據(jù)按照一定的比例分成訓(xùn)練集和測試集,建立LVQ神經(jīng)網(wǎng)絡(luò)模型,用訓(xùn)練集的數(shù)據(jù)訓(xùn)練這個模型后用測試集數(shù)據(jù)進行分類預(yù)測。根據(jù)最終的實驗結(jié)果可以得出,該模型對測試集的分類準確率達到100%,是一種快速、有效的鑒別葡萄酒品牌方法。
葡萄酒;歸一化;學(xué)習(xí)向量量化
醫(yī)學(xué)研究表明,葡萄的營養(yǎng)很高,而以葡萄為原料的葡萄酒也蘊藏了多種氨基酸、礦物質(zhì)和維生素,適度飲用葡萄酒不僅能夠促進血液循環(huán)、調(diào)節(jié)新陳代謝,而且還有美容養(yǎng)顏的功效[1]。葡萄酒的種類繁多,傳統(tǒng)的依靠品酒專家個人經(jīng)驗的方法費用高、主觀性強,不利于大批量樣品的快速分類[2]。
LVQ神經(jīng)網(wǎng)絡(luò)模型具有自學(xué)習(xí)能力強、網(wǎng)絡(luò)結(jié)構(gòu)簡單等優(yōu)點,基于這些優(yōu)點,提出了一種基于LVQ神經(jīng)網(wǎng)絡(luò)的模型用于葡萄酒的分類的方法。實驗對原始的葡萄酒數(shù)據(jù)進行歸一化預(yù)處理,充分挖掘原始數(shù)據(jù)中的有效信息,然后建立葡萄酒的LVQ神經(jīng)網(wǎng)絡(luò)模型,該模型有著很高的鑒別準確率,是一種正確的、有效的葡萄酒品牌鑒別手段[3]。
1.1數(shù)據(jù)來源
從UCI數(shù)據(jù)庫中下載葡萄酒的數(shù)據(jù),數(shù)據(jù)記錄的是意大利某一區(qū)域3種不同品牌葡萄酒的化學(xué)成分,數(shù)據(jù)為178×13的矩陣,178是樣本的數(shù)量,13是每個樣本的化學(xué)成分指標,詳情如下:(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)歸一化
數(shù)據(jù)歸一化,就是為方便對數(shù)據(jù)的處理,將數(shù)據(jù)按照某種規(guī)則進行放大或者縮小,使數(shù)據(jù)落入如[0,1]和[-1,1]這樣較小的區(qū)間內(nèi)[5]。常用的歸一化方式有兩種:
①[0,1]區(qū)間歸一化,其映射如下:
(2)LVQ神經(jīng)網(wǎng)絡(luò)
學(xué)習(xí)向量量化(Learning Vector Quantization,LVQ)是由芬蘭學(xué)者Kohonen從競爭算法演化而來的一種前向有監(jiān)督神經(jīng)網(wǎng)絡(luò),在優(yōu)化領(lǐng)域和模式識別應(yīng)用十分廣泛[6]。
LVQ神經(jīng)網(wǎng)絡(luò)由競爭層、線性輸出層和輸入層三層組成。競爭層與線性輸出層的連接方式為部分連接,而輸入層與競爭層之間的連接方式則為完全連接。LVQ神經(jīng)網(wǎng)絡(luò)有LVQ1和LVQ2兩種學(xué)習(xí)方法。本文采用的是LVQ1算法,該算法的基本思想是:計算并找到這樣一個競爭層神經(jīng)元,它距離輸入向量最近,根據(jù)這個競爭層神經(jīng)元找到線性輸出層神經(jīng)元。如果輸入向量和線性輸出層神經(jīng)元兩者的類別一致,那么朝著輸入向量的方向移動對應(yīng)的競爭層神經(jīng)元權(quán)值;如果輸入向量和線性輸出層神經(jīng)元兩者的類別不一致,那么朝著與輸入向量相反的方向移動對應(yīng)的競爭層神經(jīng)元權(quán)值[7]。LVQ1算法的基本步驟如下:
(1)初始化。對輸入與競爭兩層之間的學(xué)習(xí)率η (η>0)及權(quán)值wij進行初始化操作。
(2)計算距離。將向量x=(x1,x2,…,xR)T送入輸入層,并計算其與競爭層神經(jīng)元之兩者間的距離:
(3)尋找神經(jīng)元并設(shè)置標簽。尋找一個競爭層神經(jīng)元使之與輸入向量之間的距離最小,如果di最小,那么記與之連接的線性輸出層神經(jīng)元的類標簽為Ci。
權(quán)值調(diào)整。設(shè)Cx為輸入向量的類標簽,如果Cx= Ci,那么根據(jù)式(2)調(diào)整權(quán)值,如果Cx≠Ci,則根據(jù)式(3)進行權(quán)值更新:
2.1選定訓(xùn)練集和測試集
將從UCI數(shù)據(jù)庫下載的數(shù)據(jù)導(dǎo)入MATLAB,把178個樣品隨機分成訓(xùn)練集和測試集,其中訓(xùn)練集158個,預(yù)測集20個,并對數(shù)據(jù)進行歸一化預(yù)處理,其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創(chuàng)建LVQ網(wǎng)絡(luò)
訓(xùn)練集和測試集選定后,使用newlvq函數(shù)和訓(xùn)練集數(shù)據(jù)創(chuàng)建網(wǎng)絡(luò),其中0.01為學(xué)習(xí)速率,learnlv1表示學(xué)習(xí)方法為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訓(xùn)練LVQ網(wǎng)絡(luò)
網(wǎng)絡(luò)創(chuàng)建好后,設(shè)置迭代次數(shù)、學(xué)習(xí)速率和訓(xùn)練精度等參數(shù),使用train函數(shù)訓(xùn)練網(wǎng)絡(luò),其MATLAB代碼如下:
net=train(net,P_train,T_train);
2.4使用測試集數(shù)據(jù)測試
待LVQ神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練好后,使用sim函數(shù)將葡萄酒的測試集數(shù)據(jù)輸入到模型,得到測試集葡萄酒的分類結(jié)果。其MATLAB代碼如下:
T_sim=sim(net,P_test);
T_csim=vec2ind(T_sim);
result=[Tc_sim;Tc_test]
2.5結(jié)果顯示及分析
表1
從表1中可以看出,對20個測試樣本的鑒別率為100%,證明了數(shù)據(jù)歸一化結(jié)合LVQ神經(jīng)網(wǎng)絡(luò)實現(xiàn)了三種葡萄酒的準確鑒別。
本文以葡萄酒的品牌的鑒別為例,利用歸一化方法處理原始的葡萄酒數(shù)據(jù),之后建立LVQ神經(jīng)網(wǎng)絡(luò)模型完成了對樣本的學(xué)習(xí)和分類預(yù)測。文中提供了完整的MATLAB代碼,并給出了詳細的模型設(shè)計步驟。最后的實驗結(jié)果表明,數(shù)據(jù)歸一化預(yù)處理結(jié)合LVQ神經(jīng)網(wǎng)絡(luò)可以實現(xiàn)對葡萄酒品牌的精確分類,具有一定的實用價值。
[1]陳玉慶.葡萄酒的成分與營養(yǎng)價值[J].釀酒,2004,31(5):112~114
[2]高年發(fā),李麗,張健康.利用模式識別技術(shù)鑒別中國葡萄酒的產(chǎn)地和品種[J].中國釀造,2009,28(3):68~71
[3]王波,杜曉昕,金梅.LVQ神經(jīng)網(wǎng)絡(luò)在乳腺腫瘤診斷中的應(yīng)用[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神經(jīng)網(wǎng)絡(luò)43個案例分析[M].北京:北京航空航天大學(xué)出版社,2013
[6]羅建春,羅慶,楊杰,等.基于LVQ-GA-BP神經(jīng)網(wǎng)絡(luò)光伏電站出力短期預(yù)測[J].電力系統(tǒng)保護與控制,2014,42(13):91~93
[7]余煒,馬晶晶,劉倫,等.基于EMD和LVQ的信號特征提取及分類方法[J].數(shù)據(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-),男,江西景德鎮(zhèn)人,碩士,研究方向為計算機系統(tǒng)應(yīng)用2015-03-26
2015-04-28