蔣麗麗, 姜大慶
(南通科技職業(yè)學(xué)院,江蘇南通 226007)
農(nóng)業(yè)在我國國民經(jīng)濟(jì)與社會(huì)發(fā)展中起著基礎(chǔ)作用,而農(nóng)業(yè)的發(fā)展離不開農(nóng)資產(chǎn)品[1]。對(duì)農(nóng)資企業(yè)來說,農(nóng)資庫存統(tǒng)計(jì)非常關(guān)鍵,但農(nóng)資庫存數(shù)據(jù)也會(huì)無法避免地出現(xiàn)缺失值。缺失值可能是因?yàn)楣ぷ魅藛T理貨時(shí)出現(xiàn)遺漏,或因疏忽導(dǎo)致的明顯錯(cuò)誤記錄,甚至為變量取值之一,也就是當(dāng)前農(nóng)資庫存數(shù)據(jù)集中某個(gè)或某些屬性值缺失[2-3]。需要通過科學(xué)的技術(shù)對(duì)農(nóng)資庫缺失數(shù)據(jù)進(jìn)行插補(bǔ)處理。
通常情況下,可通過成對(duì)刪除的方式減少數(shù)據(jù)缺失,通過加權(quán)調(diào)整法調(diào)整成列刪除在數(shù)據(jù)未完全缺失下的有偏估計(jì)[4]。當(dāng)前一般采用更優(yōu)的插補(bǔ)取代刪除,也就是按照數(shù)據(jù)的后驗(yàn)分布,為缺失值插入科學(xué)合理的估計(jì)值。為了增強(qiáng)插補(bǔ)值的性能,可為插補(bǔ)值添加隨機(jī)干擾性,即單一插補(bǔ)[5-6]。然而單一插補(bǔ)通常低估了統(tǒng)計(jì)量的方差,導(dǎo)致統(tǒng)計(jì)量估計(jì)置信范圍降低,檢測(cè)顯著性降低[7]。為了解決該問題,提出1種新的基于BP神經(jīng)網(wǎng)絡(luò)的農(nóng)資庫存數(shù)據(jù)插補(bǔ)技術(shù),為提高農(nóng)資庫存數(shù)據(jù)的完整性提供技術(shù)支持。
為了增強(qiáng)不同年份農(nóng)資庫存數(shù)據(jù)的可比性,需對(duì)數(shù)據(jù)進(jìn)行歸一化處理[7-8],針對(duì)季節(jié)需求性農(nóng)資庫存這種隨機(jī)改變的數(shù)據(jù),通過歸一化方法將數(shù)值標(biāo)準(zhǔn)化成最大值是1。歸一化處理公式如下:
y=(x-xmin)(xmax-xmin)。
(1)
式中:y用于描述輸入變量的歸一化值;x用于描述輸入變量;xmin用于描述輸入變量最小值;xmax用于描述輸入變量最高值。
針對(duì)訓(xùn)練的BP神經(jīng)網(wǎng)絡(luò),通過下述數(shù)學(xué)指標(biāo)完成統(tǒng)計(jì)分析,從而完成對(duì)評(píng)價(jià)模擬值和觀測(cè)模擬值間的離散程度。
平均絕對(duì)誤差[9]為預(yù)測(cè)值和實(shí)測(cè)值間絕對(duì)偏差的均值,對(duì)預(yù)測(cè)值和實(shí)測(cè)值間的偏離程度進(jìn)行描述,可有效體現(xiàn)預(yù)測(cè)準(zhǔn)確性,然而很難對(duì)無偏性進(jìn)行衡量,計(jì)算公式如下:
(2)
式中:xi用于描述實(shí)測(cè)值;xi′用于描述預(yù)測(cè)值;n用于描述樣本個(gè)數(shù)。
均方誤差為誤差平方和的均值[10],和MAE相似,盡管可有效體現(xiàn)預(yù)測(cè)準(zhǔn)確性,然而不能對(duì)無偏性進(jìn)行衡量,其計(jì)算公式為:
(3)
平均預(yù)測(cè)誤差MFE為預(yù)測(cè)誤差和的均值[11],如果預(yù)測(cè)模型是無偏模型,則MFE需趨近于0。所以MFE可有效衡量模型的無偏性,然而無法體現(xiàn)預(yù)測(cè)值偏離實(shí)測(cè)值的程度,公式如下:
(4)
平均絕對(duì)百分誤差MAPE為預(yù)測(cè)值和實(shí)測(cè)值間離差和實(shí)測(cè)值之比的絕對(duì)值均值[12],是通過相對(duì)數(shù)形式百分比描述的預(yù)測(cè)誤差指標(biāo),MAPE值越低認(rèn)為預(yù)測(cè)準(zhǔn)確性越高,通常認(rèn)為MAPE低于10%,即為高準(zhǔn)確性預(yù)測(cè)。計(jì)算公式如下:
(5)
BP神經(jīng)網(wǎng)絡(luò)屬于人工神經(jīng)網(wǎng)絡(luò),人工神經(jīng)網(wǎng)絡(luò)為模仿生物神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)與功能的數(shù)學(xué)模型,有很強(qiáng)的學(xué)習(xí)及處理非線性問題的能力,利用樣本學(xué)習(xí),對(duì)信息間的內(nèi)在關(guān)系進(jìn)行仿真,以逼近實(shí)際數(shù)據(jù)系統(tǒng)[12]。人工神經(jīng)網(wǎng)絡(luò)適于缺少準(zhǔn)確公式、復(fù)雜的物理過程。依據(jù)信號(hào)流動(dòng)方向和拓?fù)浣Y(jié)構(gòu),人工神經(jīng)網(wǎng)絡(luò)被劃分成前向神經(jīng)網(wǎng)絡(luò)與反饋神經(jīng)網(wǎng)絡(luò)[13]。典型的前向網(wǎng)絡(luò)為BP神經(jīng)網(wǎng)絡(luò),是一種有效的被廣泛應(yīng)用的人工神經(jīng)網(wǎng)絡(luò),本研究選用人工神經(jīng)網(wǎng)絡(luò)對(duì)農(nóng)資庫存數(shù)據(jù)進(jìn)行插補(bǔ)。
BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)見圖1,其基本學(xué)習(xí)過程有信號(hào)的正向傳播與誤差反向傳播,樣本數(shù)據(jù)通過輸入層進(jìn)入網(wǎng)絡(luò),經(jīng)隱含層,利用權(quán)值、閾值和神經(jīng)元等作用[14],通過輸出層輸出,如果得到的結(jié)果沒有達(dá)到預(yù)期,則誤差將被反向傳播,對(duì)不同層神經(jīng)元間的連接權(quán)值進(jìn)行調(diào)整,令誤差達(dá)到最小值。
反復(fù)進(jìn)行上述過程,使得神經(jīng)網(wǎng)絡(luò)實(shí)際輸出和期望輸出誤差達(dá)到最小。針對(duì)神經(jīng)網(wǎng)絡(luò)中某單個(gè)神經(jīng)元,其學(xué)習(xí)模型見圖2。
將神經(jīng)元模型輸入單元用xi進(jìn)行描述,輸出用yi進(jìn)行描述,則針對(duì)其中某隱含層神經(jīng)元j的輸出值可描述成:
(6)
式中:θ用于描述神經(jīng)元j的閾值;ωij用于描述輸入層不同單元和隱含層單元間的連接權(quán)值;f用于描述神經(jīng)元i的激勵(lì)函數(shù),本研究選用的是Tan-sigmoid函數(shù)[15]。
對(duì)農(nóng)資庫存數(shù)據(jù)進(jìn)行插補(bǔ)的過程中,為了增強(qiáng)BP神經(jīng)網(wǎng)絡(luò)對(duì)時(shí)間序列的識(shí)別性能,構(gòu)造雙向時(shí)間識(shí)別序列,也就是改善僅應(yīng)用前一時(shí)間段農(nóng)資庫存數(shù)據(jù)預(yù)測(cè)后期數(shù)據(jù)的傳統(tǒng)方式,而是采用缺失時(shí)間段前后已有農(nóng)資庫存數(shù)據(jù)共同對(duì)缺失數(shù)據(jù)進(jìn)行預(yù)測(cè)。對(duì)大規(guī)模實(shí)際的農(nóng)資庫存數(shù)據(jù)進(jìn)行學(xué)習(xí),使得BP神經(jīng)網(wǎng)絡(luò)可大大提升高通量隨時(shí)間改變的擬合準(zhǔn)確性,更準(zhǔn)確地對(duì)各時(shí)刻改變的內(nèi)在機(jī)制進(jìn)行仿真,將其應(yīng)用于農(nóng)資庫存數(shù)據(jù)插補(bǔ)中,有很好的效果。
假設(shè)某時(shí)間窗口存在3n個(gè)時(shí)段,其中包括n個(gè)缺失時(shí)段,把缺失時(shí)段前n個(gè)時(shí)段的農(nóng)資庫存數(shù)據(jù)Qt-n,Qt-(n-1),…,Qt-1與后n個(gè)時(shí)段的數(shù)據(jù)Qt+n,Qt+n+1,…,Qt+2n-1共同當(dāng)成BP神經(jīng)網(wǎng)絡(luò)的輸入,把缺失的n個(gè)時(shí)段的數(shù)據(jù)Qt,Qt+1,…,Qt+n-1當(dāng)成BP神經(jīng)網(wǎng)絡(luò)的輸出。假設(shè)n=2,則BP神經(jīng)網(wǎng)絡(luò)將Qt-2、Qt-1、Qt+2、Qt+3當(dāng)成神經(jīng)網(wǎng)絡(luò)的輸入,將Qt、Qt+1當(dāng)成網(wǎng)絡(luò)的輸出(圖3)。BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練次數(shù)設(shè)為50,學(xué)習(xí)速率設(shè)為0.05,訓(xùn)練代數(shù)設(shè)為1 800。
完成農(nóng)資庫存數(shù)據(jù)的處理后,需對(duì)已有樣本進(jìn)行訓(xùn)練,檢驗(yàn)擬合度指標(biāo)R。在現(xiàn)有農(nóng)資庫存數(shù)據(jù)樣本中任意選擇部分?jǐn)?shù)據(jù)當(dāng)成檢驗(yàn)樣本,驗(yàn)證BP神經(jīng)網(wǎng)絡(luò)對(duì)農(nóng)資庫存數(shù)據(jù)的訓(xùn)練效果。如果R值高于0.8,則認(rèn)為訓(xùn)練結(jié)果可靠,從而實(shí)現(xiàn)對(duì)缺失值的預(yù)測(cè),完成農(nóng)資庫存數(shù)據(jù)插補(bǔ)。
采用BP神經(jīng)網(wǎng)絡(luò)對(duì)農(nóng)資庫存數(shù)據(jù)進(jìn)行插補(bǔ)的過程中,需確定隱含層神經(jīng)元數(shù)。隱含層神經(jīng)元數(shù)對(duì)神經(jīng)網(wǎng)絡(luò)的容量、泛化能力和學(xué)習(xí)速度等有直接影響,可通過下式求出:
(7)
式中:n用于描述隱層神經(jīng)元數(shù);ni用于描述輸入層神經(jīng)元數(shù);no用于描述輸出層神經(jīng)元數(shù);a用于描述在1~10范圍內(nèi)的常數(shù)。
本研究BP神經(jīng)網(wǎng)絡(luò)采用TRAINGDM法對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,即:
[netTR]=train(net,pn,tn)。
(8)
式中:pn用于描述輸入數(shù)據(jù)處理后結(jié)果;tn用于描述輸出數(shù)據(jù)處理后結(jié)果。
缺失農(nóng)資庫存數(shù)據(jù)依據(jù)BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)。借助BP神經(jīng)網(wǎng)絡(luò),確定缺失農(nóng)資庫存樣本數(shù)據(jù),首先獲取訓(xùn)練與預(yù)測(cè)樣本,把現(xiàn)有農(nóng)資庫存數(shù)據(jù)作為輸入數(shù)據(jù),將經(jīng)處理后數(shù)據(jù)看作目標(biāo)輸出數(shù)據(jù),不斷訓(xùn)練學(xué)習(xí),在擬合度好的情況下輸出數(shù)據(jù)就是預(yù)測(cè)的農(nóng)資庫存數(shù)據(jù),完成數(shù)據(jù)插補(bǔ)。
對(duì)某農(nóng)資企業(yè)2010年6月中旬至2017年7月中旬庫存資料進(jìn)行審查,發(fā)現(xiàn)數(shù)據(jù)缺失量達(dá)15%,連續(xù)缺失長度最多是6。將沒有數(shù)據(jù)缺失的2016年1—12月數(shù)據(jù)作為訓(xùn)練樣本。為了驗(yàn)證本研究提出技術(shù)的插補(bǔ)效果,從樣本中任意選擇6個(gè)連續(xù)樣本當(dāng)成缺失樣本,選擇庫存持續(xù)上升、持續(xù)下降與上下波動(dòng)3種類型缺失樣本趨勢(shì),將實(shí)際檢測(cè)的庫存數(shù)據(jù)當(dāng)成檢驗(yàn)樣本,對(duì)本研究BP神經(jīng)網(wǎng)絡(luò)模型的準(zhǔn)確性進(jìn)行驗(yàn)證。
將相鄰時(shí)間段庫存與研究時(shí)間段庫存作為輸出,將t時(shí)間段庫存數(shù)據(jù)作為輸出,實(shí)現(xiàn)農(nóng)資庫存插補(bǔ)。
在連續(xù)庫存樣本中依次將庫存持續(xù)上升、庫存持續(xù)降低與上下波動(dòng)3段刪除,將其他數(shù)據(jù)作為訓(xùn)練樣本完成建模,通過試錯(cuò)法確定BP神經(jīng)網(wǎng)絡(luò)模型的隱層節(jié)點(diǎn)量,取3層,期望迭代次數(shù)取600次。將線性插值技術(shù)與加權(quán)技術(shù)作為對(duì)比,采用3種技術(shù)完成農(nóng)資庫存數(shù)據(jù)的插補(bǔ)處理,3種插補(bǔ)技術(shù)效果見圖4。
從圖4可以看出,本技術(shù)插值結(jié)果較其他2種技術(shù)明顯更優(yōu),在3種缺失情況下,本技術(shù)插值結(jié)果和實(shí)測(cè)值趨勢(shì)一致。這主要是由于線性插值技術(shù)與加權(quán)技術(shù)只借助實(shí)測(cè)庫存樣本中的少量數(shù)據(jù),無法體現(xiàn)庫存數(shù)據(jù)的整體特點(diǎn)及趨勢(shì),不能保證插值效果的可靠性。
針對(duì)庫存持續(xù)上升、庫存持續(xù)降低與上下波動(dòng)3種缺失類型的數(shù)據(jù),依次采用本技術(shù)、線性插值技術(shù)與加權(quán)技術(shù)對(duì)其進(jìn)行插補(bǔ),比較3種技術(shù)的相對(duì)誤差,對(duì)3種技術(shù)的插補(bǔ)效果進(jìn)行測(cè)試,結(jié)果見表1。
從表1可以看出,對(duì)比3種技術(shù)的插值結(jié)果,本技術(shù)的持續(xù)上升缺失類型、持續(xù)下降類型以及上下波動(dòng)類型3種插值與實(shí)際值近乎一致;線性插值技術(shù)的持續(xù)上升缺失類型、持續(xù)下降類型以及上下波動(dòng)類型3種插值與實(shí)際值分別相差約0.18、0.32、0.41,最大相差值分別為0.31、0.33、0.47;加權(quán)技術(shù)的持續(xù)上升缺失類型、持續(xù)下降類型以及上下波動(dòng)類型3種插值與實(shí)際值分別相差約0.34、0.42、0.51,最大相差值分別為0.50、0.54、0.72。比較可得本技術(shù)的插補(bǔ)精度最高,適用于實(shí)際農(nóng)資庫存數(shù)據(jù)的插補(bǔ)。
對(duì)比3種技術(shù)的相對(duì)誤差,本技術(shù)的持續(xù)上升缺失類型、持續(xù)下降類型以及上下波動(dòng)類型3種相對(duì)誤差與實(shí)際值相差最少,約為14.2%;線性插值技術(shù)的持續(xù)上升缺失類型、持續(xù)下降類型以及上下波動(dòng)類型3種相對(duì)誤差與實(shí)際值相差約45.1%;加權(quán)技術(shù)的持續(xù)上升缺失類型、持續(xù)下降類型以及上下波動(dòng)類型3種相對(duì)誤差與實(shí)際值相差約70.5%。比較可得本技術(shù)的平均相對(duì)誤差最低。
為了驗(yàn)證本技術(shù)的通用性,將沒有數(shù)據(jù)缺失的2016年1月至2016年12月數(shù)據(jù)作為訓(xùn)練樣本,對(duì)其他樣本進(jìn)行插補(bǔ),對(duì)本技術(shù)、線性插值技術(shù)、加權(quán)技術(shù)插補(bǔ)過程中平均絕對(duì)誤差、均方誤差、平均預(yù)測(cè)誤差、平均絕對(duì)百分誤差進(jìn)行比較,結(jié)果見表2。
從表2可以看出,本技術(shù)平均絕對(duì)誤差、均方誤差、平均預(yù)測(cè)誤差、平均絕對(duì)百分誤差均低于線性插值技術(shù)與加權(quán)技術(shù),說明本技術(shù)準(zhǔn)確性高,有很好的實(shí)用性。
表1 3種技術(shù)相對(duì)誤差比較結(jié)果
表2 3種技術(shù)插補(bǔ)評(píng)價(jià)指標(biāo)比較結(jié)果
提出了1種新的基于BP神經(jīng)網(wǎng)絡(luò)的農(nóng)資庫存數(shù)據(jù)插補(bǔ)技術(shù)。對(duì)數(shù)據(jù)進(jìn)行歸一化處理,針對(duì)訓(xùn)練的BP神經(jīng)網(wǎng)絡(luò),分析了BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),通過BP神經(jīng)網(wǎng)絡(luò)對(duì)已有樣本進(jìn)行訓(xùn)練,完成對(duì)缺失值的預(yù)測(cè),實(shí)現(xiàn)農(nóng)資庫存數(shù)據(jù)插補(bǔ)。試驗(yàn)結(jié)果表明,所提技術(shù)插補(bǔ)精度高。