喻 夏,周李涌
(內(nèi)蒙古科技大學(xué),內(nèi)蒙古 包頭 014010)
中國作為畜牧業(yè)大國,畜牧業(yè)在農(nóng)業(yè)的占比越來越重,所以農(nóng)畜產(chǎn)品對于國家經(jīng)濟(jì)影響也就越大。并且農(nóng)畜產(chǎn)品的價格對于國民食物的消費(fèi)結(jié)構(gòu)產(chǎn)生了巨大的影響。將前期畜牧業(yè)向多檔次、多元化方向大幅度轉(zhuǎn)變,當(dāng)前重要的是提高畜產(chǎn)品的產(chǎn)出率和商品率,完成畜牧業(yè)的商品型轉(zhuǎn)變,達(dá)成消費(fèi)者對畜產(chǎn)品的多方面需要。但由于牧民的文化程度較低,牧民不完善的放牧方式以及不合理的出售羊肉,即不是憑經(jīng)驗出售羊肉,就是隨意出售羊肉,導(dǎo)致牧民的經(jīng)濟(jì)效益不高,并且導(dǎo)致草原荒漠化,還影響了政府的經(jīng)濟(jì)效益。因此,迫切需要提出一種更準(zhǔn)確的羊肉價格預(yù)測方法,達(dá)到農(nóng)戶生產(chǎn)、銷售和利潤最大化。一個好的預(yù)測方式不僅能預(yù)測某些食物發(fā)展走勢,還能測出其在某行業(yè)的相關(guān)價值與含義,并且我國是一個人口大國,人們對農(nóng)畜產(chǎn)品的需求量也是巨大的。本文以蘇尼特羊為研究材料,提出一種結(jié)合氣象因子的新型數(shù)據(jù)模型來提高預(yù)測精度。當(dāng)前價格預(yù)測領(lǐng)域主要包含房地產(chǎn)、股市、電價、油價等,由于人工智能的興盛崛起,貝葉斯網(wǎng)絡(luò)理論的研究結(jié)果以及應(yīng)用也被更多人所關(guān)注,特別是不確定性問題領(lǐng)域的發(fā)現(xiàn),21世紀(jì)始,中國著手動態(tài)網(wǎng)絡(luò)理論的研究,但其在其他國家早就開始探究鉆研,理論根基相對更穩(wěn)定。該理論開始引人注意是在軍事方面,相關(guān)評估包括設(shè)備損傷、場威脅及目標(biāo)損傷[1]。慢慢地,動態(tài)貝葉斯在經(jīng)濟(jì)方面的原始價格、房價、股票和產(chǎn)量等相關(guān)方面也有了更廣泛應(yīng)用。MURPHY通過擴(kuò)展SEM算法,深入分析動態(tài)貝葉斯網(wǎng)絡(luò),解出推斷表達(dá)式以及DBN推導(dǎo)方法,合理說明其應(yīng)用。IBM的ASHUTOSH等人基于語音的人機(jī)交互界面,表示出關(guān)于Ada Boost框架的DBN學(xué)習(xí)計算方法。馬再興等人基于動態(tài)貝葉斯網(wǎng)絡(luò)對生豬的價格與產(chǎn)量進(jìn)行了預(yù)測。以上算法的預(yù)測都取得了較好的效果。但并未有核PCA降維和動態(tài)貝葉斯網(wǎng)絡(luò)模型相結(jié)合的預(yù)測方法,且應(yīng)用于畜牧業(yè)。本文以蘇尼特羊為研究對象,驗證其可行性。
本次實驗位置為內(nèi)蒙古自治區(qū)錫林郭勒盟的蘇尼特左旗某戶牧民草場,當(dāng)?shù)剌^少的降雨量,并且天氣為中溫帶半干旱、干旱大陸氣候,雨季為6-8月份,均降雨量在150~200 mm,夏季日照時數(shù)長,冬季短且寒冷漫長,該地主產(chǎn)業(yè)為畜牧業(yè),蘇尼特羊主要在熱季放養(yǎng)及在冷季喂精飼料。
試驗數(shù)據(jù)選取于內(nèi)蒙古自治區(qū)錫林郭勒盟蘇尼特左旗的氣象數(shù)據(jù)及蘇尼特羊肉價格,其中以2009-2019年的數(shù)據(jù)作為測試集和訓(xùn)練集,以2020年的數(shù)據(jù)作驗證集。由于蘇尼特羊大多以放養(yǎng)為主。本文選擇主要影響氣象因素為降雨量、溫度、氣壓、濕度、風(fēng)速、PM2.5、光照度、輻射強(qiáng)度、PM10、蒸發(fā)量進(jìn)行研究。為保證數(shù)據(jù)預(yù)測的過程當(dāng)中數(shù)據(jù)無誤且有效,減少數(shù)據(jù)的冗余,要先預(yù)處理相關(guān)數(shù)據(jù)。其中包含兩個部分:(1)格式化。以逗號為分隔氣象數(shù)據(jù),并刪除空白部分且將其格式化,對于日期類型數(shù)據(jù)的處理;(2)對缺失值、問題值和反復(fù)出現(xiàn)的數(shù)值處理[2]。為了避免由于數(shù)據(jù)輸入問題而對預(yù)測產(chǎn)生的影響,對數(shù)據(jù)中問題值和缺少值進(jìn)行處理解決目的是為避免由數(shù)據(jù)輸入等問題導(dǎo)致對預(yù)測結(jié)果產(chǎn)生影響。通過觀察相關(guān)實驗數(shù)據(jù),使用均值的方法可以插補(bǔ)那些指標(biāo)的缺失值。
核PCA降維(Kernel PCA)又稱為核主成分分析法,Kernel PCA是PCA的改進(jìn)版之一,其可以使非線性可分的數(shù)據(jù)轉(zhuǎn)變成到一個適合線性分類的新的低維子空間上,核PCA將數(shù)據(jù)轉(zhuǎn)變換成到一個高維空間中可以通過非線性映射完成,經(jīng)過操作PCA將其從高維空間映射到其他的低維空間中,并且區(qū)分樣本使用線性分類器操作。使數(shù)據(jù)完成多方面分析且在最大程度上減少信息損壞缺失的情況[3]。核方法的特點(diǎn)使其成為處理非線性問題的常用方法。核PCA方法已經(jīng)應(yīng)用于數(shù)據(jù)挖掘的各個領(lǐng)域,如支持向量機(jī)、KLDA和KPCA。核主成分分析法(KPCA)是對PCA計算的非線性處理改進(jìn)。在KPCA進(jìn)行特征提取之前,通過核函數(shù)將原始數(shù)據(jù)映射到高維,從而使非線性原始數(shù)據(jù)可以在高維中線性表示。也就是說,它被映射到高維特征空間,在這樣的高維空間,地圖數(shù)據(jù)由同一PCA處理。核PCA降維步驟如下:
(1)對所有源數(shù)據(jù)進(jìn)行去中心化后標(biāo)準(zhǔn)化后。
(2)通過核函數(shù)(kernel function)轉(zhuǎn)換成一個新空間,也就是升維過程。
(3)計算核矩陣K[相似度矩陣]。
(4)然后再用PCA進(jìn)行降維處理。
動態(tài)貝葉斯網(wǎng)絡(luò)(Dynamic Bayesian Network,DBN)是一個基于概率論和影響圖的動態(tài)模型,靜態(tài)貝葉斯網(wǎng)絡(luò)模型與隱馬爾科夫模型的結(jié)合而成。不僅消除了其模型缺陷,也保留了其長處。既可以隨著時間發(fā)生變化,又可以增添新的狀態(tài)[4]。
動態(tài)貝葉斯網(wǎng)絡(luò)描述了系統(tǒng)隨時間變化的動態(tài)特征。動態(tài)貝葉斯網(wǎng)絡(luò)是一個使用序列數(shù)據(jù)建模的過程。動態(tài)貝葉斯網(wǎng)絡(luò)可以很好地用于觀測其狀態(tài)。這些狀態(tài)在時間上有關(guān)聯(lián)關(guān)系。分析這些特定的關(guān)聯(lián)狀態(tài)可以描述最終需要查詢的事件狀態(tài)。在時間維度上的動態(tài)貝葉斯網(wǎng)絡(luò)有著前后相關(guān)性特征,可以有效地反映系統(tǒng)的動態(tài)特性。它是對事件過程的描述。由于動態(tài)貝葉斯網(wǎng)絡(luò)技術(shù)的特點(diǎn),它在工程中得到了廣泛的應(yīng)用。至今,動態(tài)貝葉斯網(wǎng)絡(luò)完全可以很好地用于語音識別、目標(biāo)跟蹤、數(shù)據(jù)挖掘等領(lǐng)域。動態(tài)貝葉斯網(wǎng)絡(luò)技術(shù)的理論基礎(chǔ)是動態(tài)系統(tǒng)狀態(tài)估計技術(shù)。其主要思想來自數(shù)學(xué)家高斯對天文觀測中行星軌道預(yù)測的研究。在特定的工程領(lǐng)域,時間是一個重要的屬性。系統(tǒng)的動態(tài)特性在時間維度上展開。隨著時間的推移,系統(tǒng)將通過輸出和輸入?yún)?shù)的狀態(tài)來反映系統(tǒng)的內(nèi)部特性。
動態(tài)貝葉斯網(wǎng)絡(luò)(DBN)是傳統(tǒng)的貝葉斯網(wǎng)絡(luò)(BN)在時間上的延展。DBN是一種有向無環(huán)圖,描述了一個隨時間變化的系統(tǒng)模型,反映了系統(tǒng)隨時間變化的動態(tài)特性。它可以表示條件關(guān)系或者因果關(guān)系,可以用常識或?qū)<抑R構(gòu)造。動態(tài)貝葉斯網(wǎng)絡(luò)可以將事物之間的前因后果通過條件概率展現(xiàn)出來,這使得動態(tài)貝葉斯網(wǎng)絡(luò)能夠有效地對復(fù)雜問題進(jìn)行建模。特別指出動態(tài)貝葉斯網(wǎng)絡(luò)在建模方面具有很強(qiáng)的靈活性,可以應(yīng)用連續(xù)變量和離散變量進(jìn)行多種方式交錯的創(chuàng)建數(shù)學(xué)模型。在訓(xùn)練過程中,觀測變量分為連續(xù)觀測變量和離散觀測變量。動態(tài)貝葉斯網(wǎng)絡(luò)是定向的循環(huán)模型。它是由時間片組成的,每個片包括自己的變量,如圖1、圖2所示。
圖1 動態(tài)貝葉斯網(wǎng)絡(luò)的初始狀態(tài)
圖2 動態(tài)貝葉斯網(wǎng)絡(luò)的2DBN
動態(tài)貝葉斯網(wǎng)絡(luò)可以表示為(B1,B→),變量B1可理解為先驗的網(wǎng)絡(luò),以其表示起始狀態(tài),而B→則是轉(zhuǎn)移網(wǎng)絡(luò)。假設(shè)一DBN模型,x[1]上的聯(lián)合概率用B1來表示,則B→表示x[1]與x[2]之間的轉(zhuǎn)移概率P(x[t+1]|x[t]),則 x[1],…,x[t]上的聯(lián)合概率表示為:
由此可知,動態(tài)貝葉斯網(wǎng)絡(luò)可定義為(B1,B→),其中B1表示傳統(tǒng)的貝葉斯網(wǎng)絡(luò),將其定義的狀態(tài)變量p(Z1)的初始或先驗狀態(tài)情況分布,通常情況下,Zt=(Ut,Xt,Yt)表示模型的輸入、輸出以及隱藏變量。兩個時間片的貝葉斯網(wǎng)絡(luò)(2TBN)則用B→表示,它詮釋了轉(zhuǎn)移模型 p(Zt|Zt-1)如下:
其中Zit是時間t的第i個節(jié)點(diǎn),且為Ut,Xt,Yt的分量。Pa(Zit)是Zit的父項,這與上一個時間片有關(guān)(在此問題下,該模型只限于一階馬爾科夫模型)。2TBN網(wǎng)絡(luò)的首個時間片段中的節(jié)點(diǎn)無關(guān)聯(lián)的參數(shù)。時間切片中在第二個節(jié)點(diǎn)可以發(fā)現(xiàn)此節(jié)點(diǎn)具有聯(lián)合概率表。此過程結(jié)構(gòu)不僅重復(fù)而且是靜止的,所以時間切片在t=2,3,…時間點(diǎn)一直不變。這也說明想要完整的表達(dá)模型需要給到前兩個切片。用此方法,可用有限的參數(shù)數(shù)量來建模無界的序列長度。通過展現(xiàn)2TBN網(wǎng)絡(luò)即可最后得到長度為T的序列的聯(lián)合概率分布:
通過將蘇尼特羊肉價格作為當(dāng)前研究的對象,選出十項影響蘇尼特羊肉價格的相關(guān)氣象因子進(jìn)行分析研究,因為每一個指標(biāo)都具有一些相關(guān)性,并且為了避免數(shù)據(jù)的冗余,所以要對指標(biāo)進(jìn)行核PCA降維,減少輸入的變量數(shù)量同時也減少數(shù)據(jù)量,以完成增加預(yù)測效率的目標(biāo)。核PCA降維可以實現(xiàn)很多非線性映射問題,動態(tài)貝葉斯網(wǎng)絡(luò)模型可預(yù)測其價格變化,因此將輸出變量為蘇尼特羊肉價格,將氣象因子作為輸入變量。以此核PCA-DBN預(yù)測模型的構(gòu)建完成。
核PAC降維的目的是可在壓縮數(shù)據(jù)的過程當(dāng)中讓數(shù)據(jù)信息損失最小,這是對高維度數(shù)據(jù)處理的方式之一。通過對每個氣象指標(biāo)因子進(jìn)行核PCA降維分析得到累積貢獻(xiàn)率結(jié)果展示,如圖3所示。
圖3 累積貢獻(xiàn)率
由圖3可知,前5個核主成分的累積貢獻(xiàn)率在85% 之上,即可將全部指標(biāo)展示出來,所以選出前5個主要因素來表示動態(tài)貝葉斯網(wǎng)絡(luò)的輸入?yún)?shù)進(jìn)行預(yù)測研究。
將蘇尼特羊肉的價格設(shè)成輸出參數(shù),預(yù)測2020年中所有月份的羊肉價格。在本次預(yù)測網(wǎng)絡(luò)模型中入?yún)⒌那?個作為主成分指標(biāo)。所以輸入?yún)?shù)為5個,輸出參數(shù)為1個,將2020年所有月份的指標(biāo)數(shù)據(jù)作為測試集,2009-2019年整個全月份的指標(biāo)數(shù)據(jù)作為訓(xùn)練集,通過反復(fù)訓(xùn)練顯示,效果最佳的狀態(tài)是入?yún)€數(shù)為6時,展示效果模型如圖4所示。
圖4 模型預(yù)測結(jié)果
由于動態(tài)貝葉斯網(wǎng)絡(luò)在訓(xùn)練中會出現(xiàn)細(xì)小的誤差,并且影響因子的數(shù)據(jù)也是入?yún)⒌囊徊糠?,所以預(yù)測得到的蘇尼特羊肉價格和實際的價格之間會顯示固定范圍內(nèi)的誤差。通過圖4也可以發(fā)現(xiàn),價格的預(yù)測值可以高效地顯示出蘇尼特羊肉的價格在每個月的浮動變化。
在機(jī)器學(xué)習(xí)模型的效果評價中,預(yù)測誤差的分析是重中之重。對于現(xiàn)有的誤差測量技術(shù),如果方法使用不當(dāng),會得出非常誤導(dǎo)的結(jié)論。這些結(jié)論會誤導(dǎo)模型設(shè)計者去設(shè)計一個過擬合的模型。過擬合是指訓(xùn)練后的模型對訓(xùn)練集擬合得很好,但對新樣本集的預(yù)測效果很差。如何正確測量模型誤差以避免此類問題,相對于預(yù)測模型來比較的話,更加準(zhǔn)確地預(yù)測出正確的樣本顯得更為重要。因此,在測量誤差時必須考慮到這一點(diǎn)。
將蘇尼特羊肉價格作為輸出參數(shù),其未經(jīng)核PCA降維的氣象影響因子作為輸入?yún)?shù),建設(shè)動態(tài)貝葉斯網(wǎng)絡(luò)模型進(jìn)行預(yù)測,相關(guān)誤差分析結(jié)果展示見表1。
表1 相對誤差分析結(jié)果
將蘇尼特羊肉價格的預(yù)測值與其真實值比對驗證,可發(fā)現(xiàn)前面的均相對誤差為4.83% ,未使用降維的均相對誤差為10.23% ,顯然核PCA-DBN具有比較高的預(yù)測精準(zhǔn)度。
導(dǎo)致蘇尼特羊肉價格變化的氣象因子眾多,本文通過使用核PCA降維的方法對其數(shù)據(jù)降維處理,減少了數(shù)據(jù)維度對于預(yù)測的影響,并增加了預(yù)測的效率。核PCA是對維數(shù)處理、解決非線性問題的一個高效便捷的方法。
由于對蘇尼特羊肉價格的預(yù)測主要是通過影響氣象因子作為入?yún)?shù),但因為導(dǎo)致蘇尼特羊肉價格的氣象因子不止這一種,且收集到的影響因子僅能表示蘇尼特羊肉價格其中某一部分的特性,所以也需要再進(jìn)行詳細(xì)的后續(xù)研究。
為了更好地給蘇尼特左旗牧民帶來更大的經(jīng)濟(jì)效益,要對其價格作出相關(guān)預(yù)測,通過分析影響價格的氣象因素,調(diào)整放牧策略來達(dá)到利益最大化。本文通過使用核PCA-DBN模型對蘇尼特羊肉的價格作出預(yù)測,研究結(jié)果顯示此模型具有較高的精度和比較小的擬合誤差。