趙亞亞 張澤人 代永富



摘要:時值實施鄉村振興戰略的關鍵時期,農村電商發展出現高峰,為加強其供應鏈體系建設,對農產品進行銷量預測。針對影響銷量的未知因素和干擾項眾多的問題,提出基于K-means聚類的偏二叉樹SVM銷量區間預測模型。用BP神經網絡時間序列對陜西大棗價格進行預測,根據質量、價格、時間三個因素,利用聚類算法對樣本劃分類別,偏二叉樹SVM進行分類,將銷量預測在聚類區間內。實驗結果表明,該模型有著極高的預測精度,可用于農產品銷量預測。
關鍵詞:機器學習;時間序列預測模型;BP神經網絡;K均值法聚類;偏二叉樹svM
中圖分類號:TP181 文獻標識碼:A 文章編號:1006-8228(2020)07-22-04
0引言
當前是實現鄉村振興戰略的關鍵時期,農村電商是一個有力的破局之道,幫助農村電商預測未來農村產業發展方向,使農民及時調整生產方案,實現精準產銷,助力國家全面脫貧。因此,預測各種農產品的銷量顯得尤為重要。
目前國內對農產品銷量預測的研究方法眾多,如人工神經網絡模型、回歸分析、時間序列分析模型和支持向量機模型。這些方法在不同的方面取得了較好的效果,但仍存在局限性。人工神經網絡法易造成過擬合態,且可能與實踐情況偏離較大,陷入局部最優解。回歸分析法其擬合效果與數據量密切相關,對數據不全的農產品預測并不理想。時間序列分析法可能會因為農產品銷量因素多而導致其計算結果的可信度較差。支持向量機法對數據量過大的情況,計算機的求解能力將會減弱。
機器學習在預測方面有著強大的能力,比如說皇冠模型(ICM)。本文在此基礎上,綜合考慮上述的方法的優點和缺點,采用BP神經網絡時間序列對價格進行預測,并提出一種基于聚類算法的偏二叉樹SVM農產品銷量區間預測模型,克服定量估計誤差難以控制的缺陷??紤]到傳統決策樹SVM方法的誤差積累問題,本文運用聚類算法,根據劃分難易程度,按序分割,進一步優化模型,從而盡可能地利用較少的特征信息對產量精準預測,以減少多種干擾因素對產量預測誤差的不確定性,同時將產量預測的準確性控制在可指導生產范圍內,對農民的生產量進行科學引導。
1理論與問題分析
1.1關于大棗價格的分析
1.1.1理論基礎
基于BP神經網絡的時間序列預測:認為時間是決定變化的一個條件,未來與前面m個值之間可以用函數關系進行擬合,以BP神經網絡為工具,將前幾年數據進行滾動排列作為輸入值,后一年作為輸出值。以時序分析為方法來擬合一個函數關系式,變量之間應滿足:
1.1.2問題分析
采集2014-2019陜西大棗的價格數據(單位:元/斤),通過數據分析發現價格隨時間的變化具有動態性、隨機性和復雜性。時間序列分析法可以很好的解決變量于一定區域內隨時間動態變化的自相關問題,BP神經網絡在處理不確定和非線性的問題上,有著極大優勢。所以,通過BP神經網絡對該函數關系進行擬合,建立基于BP神經網絡的時間序列預測模型。
1.2關于大棗銷量的分析
1.2.1理論基礎
偏二叉樹SVM模型:對傳統DT-SVM模型優化。越上層節點的分類器的分類性能對整個分類模型的可推廣性影響越大?;诖耍谏啥鏄溥^程中,優先分割出易分離的類別。同時,各內節點由一個類與其余類構造分割超平面,生成的二叉樹成為偏二叉樹。
1.2.2問題分析
傳統預測模型大多是通過建立數學模型定量預測。結合生活實際情況,影響陜西大棗銷量的因素有很多,如天氣、品牌與包裝、市場建設等等。若直接對其銷量采用定量預測,效果會差強人意。為減少誤差,選取大棗近六年每半個月銷量數據進行區間預測。
把銷量分為若干個區間,去預測未來銷量所在區間,將問題轉化為多分類問題。而一般的決策樹結構涵蓋著誤差積累的缺點;SVM多分類問題的傳統方法one-against-one、one-against-rest可能產生不可分區域導致分類錯誤。對此,采取一種基于聚類算法的偏二叉樹SVM來解決問題。
2模型建立與求解
2.1價格預測模型
2.1.1模型建立
Step 1數據預處理
將不同品質大棗價格(元/斤)隨時間變化的數據整合起來,對樣本數據進行歸一化:
其中,x和x分別為歸一化處理前后值;Xmin和Xmax分別為原數據最小值和最大值。
Step 2網絡構建和訓練
輸入輸出層設計:通過多次試驗發現輸入層為五個神經元效果最好,即依次將連續五年的大棗同一品質的數據作為網絡的實際輸入,其后一年作為網絡的期望輸出,按此方式滾動排列得到32組樣本。
隱層設計:初步擬定四個神經元數,利用試湊法的思想,從而得到一個網絡結構5-8-1,如圖2。
網絡訓練:選取purelin為輸出函數,tansig為隱層函數。使用MATLAB神經網絡工具箱,隨機選取70%的數據樣本,15%驗證樣本,15%測試樣本,運用trainglm函數和L-M算法訓練網絡。
2.1.2模型求解
(1)求解網絡
通過MATLAB2018的神經網絡工具箱對上述構建的模型進行訓練,確定相關參數的選取后,經過9次迭代,訓練完成。
(2)模型檢驗
基于traimlm訓練構神經網絡誤差分布,如圖3所示。
由圖可見,實際輸出在期望輸出附近比較集中,測試樣本誤差控制在0.05以內。結合實際情況,即誤差控制在0.1元以內。說明訓練好的神經網絡預測模型精度較高,可靠性較強。用該模型對2020年上半年大棗價格進行預測,如表1。
2.2銷量預測模型
2.2.1模型建立
(1)數據預處理
使用機器學習原型聚類里的k均值算法將采集的2014年到2019年的陜西普通大棗半月銷量數據進行聚類,得到銷售量可能位于的k個區間。以大棗的三個屬性為:品質、價格和年份為自變量,對這三個特征向量數據歸一化處理在[-1,1]之間,極大減少價格的取值優勢。
(2)建立偏二叉樹SVM模型
定義:兩類的距離等于它們最近的兩個樣本的歐氏距離,即:
其中dp,q。為不同類sp和sq的距離。
以此類距離,利用聚類分析的方法,讓與其他類距離最遠的類最先劃分出來,此時構造的最優超平面具有較好的推廣性。然后在剩余的類中重復該操作,直至不能劃分為止。這時,就生成了一個偏二叉樹。以下為算法流程。
⑤對每個節點使用傳統二值SVM訓練算法最優超平面。將第n1類樣本作為正樣本集,其余樣本作為負樣本集,構造根節點處的SVM子分類器。類似地訓練其余節點,直到生成所有的二值子分類器,得到完整的基于二叉樹多類別SVM分類模型,然后用于大棗產量預測。
⑥算法結束。
(3)SVM訓練
為了增加高維空間的計算能力,同時減少最優參數集搜索空間,我們使用高斯核函數函數進行訓練,即:考慮到模型的性能與常數(c,y)有關,用crossvali-dation的想法選取c和y在{2-5,2-1,…,25}內精度最高下的c和y,若有多種組和精度達到最高,則選取c最小的一組,防止懲罰系數過高導致的過學習態。KKT停止條件的容許誤差設為0.001。對所有SVM子分類器依次進行訓練,形成分類器。
2.2.2模型求解
(1)銷量聚類
使用SPSS軟件確定最佳聚類數,依據試湊法的思想,結合生活經驗,首先選取15個聚類數,然后依次更改聚類數,具體分析每次的聚類效果。最終確定最佳聚類數為10個,如表2。再利用MATLAB軟件導出每組聚類成員,并且將其特征向量數據歸一化處理。
(2)模型求解及檢驗
數據集規模為576個樣本,選取70%的樣本,按照模型思路,采用聚類算法生成決策樹模型。余下30%的樣本進行測試,得到大棗的測試精度為98.53%,這說明該算法的分類精度極高。使用該模型對2020年平均半月銷售量進行預測。如表3。
3結束語
價格的時間序列模型,通過BP神經網絡來實現,算法收斂速度快,學習效率高,并且可以實現復雜的非線性映射,效果較好。
利用偏二叉樹SVM多分類方法的銷量區間預測是一種模糊預測,預測的是一個銷量區間,更準確且符合生活實際。運用機器學習的多分類方法,將原型聚類、支持向量機和決策樹三者有效結合。既解決了傳統的線性不可分問題,又解決了決策樹SVM的誤差累計問題,從而建立可信度極高的預測模型。事實上,可以再結合傳統的定值預測模型,結果會更加精準。
模型利于推廣到其他農產品的銷量預測上,且隨著數據量的加大,模型預測精確性會進一步提高。本文的模型只建立于主要影響因素價格和年份上,其他次要因素和不可抗力因素或者一般化或者忽略。在外界環境發生較大變化時,模型可靠性降低,其實際應用能力也將會減弱,需重新訓練模型。