李晉澤, 趙素娟, 李寧, 李俊成 , 劉森 , 馬繼東*
(1.東北林業大學機電工程學院, 哈爾濱 150040; 2.太原理工大學礦業工程學院, 太原 030024)
在中國發生新冠疫情以來,人們更傾向于選擇有營養價值的水果來提高自身免疫力,而紅棗內含有眾多微量元素以及營養元素成為人們的首選,在后疫情時代紅棗的重要性日漸明顯,因此精準預測紅棗的產量及變化趨勢是迫在眉睫的。但由于氣候、自然災害、市場環境等一系列不可控因素的影響,紅棗產量的預測具有極大的復雜性和不確定性。
目前產量預測方法主要包括時間序列分析法、回歸分析法、灰色理論分析法以及神經網絡等智能算法[1]。但單一預測模型所用的數學原理不同,且容易產生較大誤差,因此以組合模型進行預測研究。李欣等[2]以灰色預測模型GM(1,1)、多元回歸預測模型、時間序列預測模型為基礎模型,分別對其賦予權重,得到組合預測模型。文彥飛等[3]利用螢火蟲算法對支持向量機回歸(support vector regression,SVR)以及長短時記憶神經網絡(long short-term memory neural network,LSTM)進行參數尋優,構建組合預測模型。李鵬飛等[4]以陜西蘋果產量為例,將反向傳播(back propagation,BP)神經網絡、移動平均自回歸(autoregressive integrated moving average,ARIMA)和最小二乘支持向量回歸(least squares support vector regression,LSSVR)模型分別賦予權重進行集成研究。范小虎等[5]將極限學習機(extreme learning machine, ELM)模型與SVR模型融合,最大限度地提升了武器系統剩余壽命預測的泛化能力。在人工神經網絡方面,文獻[6-7]使用神經網絡對河南省的糧食產量進行預測。高心怡等[8]提出混合智能算法的支持向量機預測模型并以此來預測糧食產量。陳燦虎等[9]以BP神經網絡為基礎模型,利用差分進化改進灰狼算法,建立了糧食預測模型。楊培紅等[10]為緩解停車難現象,建立了基于輕量級梯度提升機(light gradient boosting machine,LightGBM)-SVR-LSTM的停車區剩余車位預測模型,并用3種評估指標進行效果驗證。路思恒等[11]以影響糧食產量的8個指標為基礎,建立了基于云南省糧食產量預測的BP神經網絡模型。廖志豪等[12]、梁琪堯[13]采用遺傳算法對傳統BP神經網絡的超參數進行優化,構建組合預測模型(genetic algorithm-back propagation,GA-BP)預測模型。郭利進等[14]建立灰色預測和BP神經網絡模型,構建基于誘導有序加權算術平均算子(induced ordered weighted arithmetic,IOWA)組合灰色神經網絡預測模型。曾慶揚等[15]構建了PCA與BP神經網絡組合模型。由于SVR對于小樣本預測具有良好的效果,Fan等[16]利用FOA搜索SVR的最優參數,提出了車位預測的FOA-SVR組合模型。時雷等[17]結合灰色系統和機器學習模型的優點,提出了基于SVR殘差修正的灰色BP神經網絡模型。由于影響糧食產量的因素很多,并且隨機性較強,趙桂芝等[18]采用混沌理論將原始樣本進行了空間重構,發揮粒子群算法(particle swarm optimization,PSO)全局搜索能力強的特點,對支持向量機(support vector machine,SVM)進行參數優化,從而組合建立模型,但是存在著容易陷入局部最優的問題。王林生等[19]利用主成分分析法選取6個主控因素,建立了PSO-ELM瑪湖油田水平井產量預測模型并得到了較好的應用效果。由于目前針對產量預測的研究大都是以歷史數據、天氣等因素為導向來預測長期的結果。尹麗春等[20]、Zhao等[21]引入隨機森林算法,設計出一種關于糧食產量短期預測的模型。李曄等[22]結合灰色預測模型和馬爾可夫理論,同時利用新信息優先的思想,構建新維無偏灰色馬爾可夫模型,以此來對小麥產量進行中長期預測。
SVR作為一種新型的機器學習算法,它可以有效地避免神經網絡存在著學習記憶不穩定,容易陷入局部極值、網絡泛化能力與預測能力存在矛盾等問題,為此,采用SVR為基礎模型,用果蠅優化算法(fruit fly optimization algorithm,FOA)來優化其參數。由于目前針對紅棗產量預測的研究方法較少,且紅棗已經是人們日常生活中不可分割的一部分。鑒于此,主要以預測紅棗產量為主要目標,以1992—2020年山西地區紅棗產量數據為例,建立基于主成分分析的果蠅算法優化支持向量回歸的預測模型 (principal component analysis fruit fly optimization algorithm support vector regression,PCA-FOA-SVR),將該模型與SVR、基于主成分分析的果蠅算法優化反向傳播神經網絡(principal component analysis fruit fly optimization algorithm back propagation,PCA-FOA-BP)等做對比,用評價指標來確定算法的優劣,最后通過GM(1,1)預測未來數據,并用PCA-FOA-SVR模型對未來產量的進行預測,對基于機器學習的智能預測方法提供一定的參考。
數據取自《中國農村統計年鑒》,共有27個樣本,其中取前17個樣本作為訓練集,剩余10個樣本作為測試集,其中以鄉村人口、小型拖拉機、農用水泵、節水灌溉類機械、鄉村辦水電站、灌溉面積等17個特征值作為輸入變量,以紅棗產量作為輸出變量。因數據維度較大,為避免造成預測不精準的現象,因此對其進行主成分分析(principal component analysis,PCA)降維,所選取的特征值k取5,于是便得到了27×5的一組數據,將其放入FOA-SVR模型中訓練。
PCA主成分分析可以有效去除對紅棗產量影響較小的因素,消除冗余信息,使問題簡單化,具體求解步驟如下。
步驟1確定分析變量,收集數據。假設有m個樣本、n個變量,用m×n的矩陣Z表示樣本集。
步驟2計算標準化轉換后的協方差矩陣C。
(1)
步驟3計算協方差矩陣C的單位正交的特征向量與對應的特征值。
步驟4根據降維要求,確定k的大小,將C的特征值從大到小排列,選取前k個特征值所對應的特征向量。
步驟5將這些特征值向量作為行向量,求解出降維矩陣P。
步驟6將降維矩陣P乘以原矩陣Z即可降維,得到Y=PZ。
支持向量機回歸其目的是找到一個多元回歸函數,從給定的數據集中預測未知對象的預期輸出屬性[23]。
它的訓練結構設計由輸入層、隱藏層和輸出層組成,當訓練集在輸入層與隱藏層間實現了非線性變換之后,將能夠在輸出空間中實現線性回歸。因此,假設如果隱藏層的維度夠大,則SVR將能夠趨近于任何一個非線性的映射關系,其SVR的基礎模型為[24]
f(x)=ωTφ(x)+b
(2)
式(2)中:f(x)為線性回歸函數;φ(x)為映射函數;ωT為ω的轉置,ω與b均為未確定的參數。
由于對實際問題進行預測時,不可避免地會出現偏差,因此,SVR允許因此存在ε的最大誤差,則回歸問題轉換為
(3)
式(3)中:lε為引入的不敏感損失函數;C為常數;m為自變量的個數;f(xi)為預測值;yi為真實值。
(4)

(5)
式(5)中:K(x,xi)為核函數,選取高斯徑向基函數為核函數。
σ為高斯徑向基函數的帶寬,可表示為
(6)
SVR的參數一般包括不敏感系數、懲罰因子和核函數參數,它們的參數對于模型的精度以及推廣能力具有至關重要的作用,如表1所示。因此如果參數選取合適,就會得到穩定且準確的模型[25]。

表1 參數選擇對SVR的影響Table 1 Impact of parameter selection on SVR
利用果蠅優化算法對SVR的參數進行尋優,并通過不斷迭代尋找最優的參數(c,g),其中,c為懲罰因子g為核函數參數,從而使目標函數的值最小,具體步驟如下。
步驟1初始化參數。設置算法的最大迭代次數50次,種群數量為100,搜索區間[-1 000,1 000]。
步驟2隨機初始化果蠅群體的位置。隨機初始化果蠅種群位置InitXi和InitYi。
步驟3賦予果蠅個體利用嗅覺搜尋食物的隨即距離和方向R,可表示為
(7)
步驟4計算味道濃度判定值。由于無法得知食物位置,因此先估計與原點的距離Di,再計算味道濃度判定值Si,此值為距離倒數。
(8)
步驟5適應度評估。計算果蠅個體位置的味道濃度Qi,可表示為
Qi=Fitness(Si)
(9)
步驟6確定最優個體。找出該果蠅群體中味道濃度最低B和最佳索引I的果蠅。

(10)
式(10)中:Q為味道濃度。
步驟6飛行。保留最佳味道濃度值與其坐標XI、YI,其他果蠅均飛向該位置。
(11)
步驟8循環。循環執行食物搜索直到算法迭代次數達到50次。
在GM (1,1)模型中,首先要對原始序列進行一次累加生成,使構造處理的數據具有一定的規律性,進而構建一階常微分方程,進行求解,具體建模過程如下。
步驟1給定觀測序列,設序列有N個觀測值。
x(0)={x(0)(1),x(0)(2),…,x(0)(N)}
(12)
步驟2通過一次累加形成新序列。
x(1)={x(1)(1),x(1)(2),…,x(1)(N)}
(13)
步驟3設年份t和累加生成序列x(1)的一階常微分方程。
(14)
式(14)中:a為常數;u為發展灰度。
步驟4當t=t0時,x(1)=x(1)(t0),此時微分方程的解為
(15)
步驟5將k+1替換t可得
(16)
利用PCA-FOA-SVR模型對紅棗產量預測的流程如圖1所示,具體建模步驟如下。

圖1 PCA-FOA-SVR預測模型Fig.1 PCA-FOA-SVR prediction model
步驟1選取訓練樣本,確定影響紅棗產量的因素,并對樣本進行數據預處理。
步驟2對樣本進行主成分分析,消除掉冗余信息,選取主成分維度,得出降維矩陣。
步驟3確定SVR模型的超參數,包括核函數類型為RBF、核函數參數g、懲罰因子c等。
步驟4將SVR模型的超參數作為FOA的搜索空間,并對其進行初始化,生成隨機果蠅個體100個。
步驟5計算每個果蠅個體的適應度,即使用SVR模型計算出該個體的誤差值,并將誤差值轉化為適應度值。
步驟6根據每個果蠅的個體適應度值,更新果蠅個體的位置和速度,模擬果蠅在搜索食物時的行為。
步驟7根據每個果蠅個體的位置和速度,確定SVR模型的超參數,并進行模型訓練,更新SVR模型的參數。
步驟8重復步驟4~步驟7,直到達到預設的停止條件。
步驟9利用最優參數建立PCA-FOA-SVR模型,并對山西省紅棗產量進行預測。
SVR模型為網格搜索,范圍為[-1 000,1 000],且以10的倍數進行搜索,搜索空間較大。因此通過FOA對SVR的懲罰因子與核函數參數進行尋優處理,不斷訓練模型得出懲罰因子c為190,核函數參數g為137時,迭代次數達到最小,預測值與真實值最為接近,模型達到最優,預測結果如圖2所示。

圖2 PCA-FOA-SVR預測結果Fig.2 PCA-FOA-SVR prediction results
從圖2中可以看出:PCA-FOA-SVR的預測走勢與真實值走勢一致,且誤差值較小,預測的效果較好。
選取SVR、PCA-SVR、BP、PCA-FOA-BP作為對比模型,設置BP神經網絡訓練次數為1 000,學習速率為1×10-2,訓練目標最小誤差為1×10-5,神經網絡層數為五層神經網絡。用前80%的數據作為訓練樣本,后20%的數據作為測試樣本,PCA-FOA-SVR與PCA-FOA-BP的目標值隨迭代次數的變化情況對比結果如圖3所示。

圖3 迭代次數的變化情況對比Fig.3 Comparison graph of changes in the number of iterations
由圖3可知,在算法迭代初期,PCA-FOA-SVR的目標值就斷崖式下降,并且隨著迭代次數的不斷增加,目標值在趨于穩定后再次下降,并最終在迭代次數達到第20代的時候逼近于算法的最優值;PCA-FOA-BP的迭代次數在第23代的時候達到最優,因此PCA-FOA-BP的收斂能力和全局尋優能力均弱于PCA-FOA-SVR,SVR、PCA-SVR、BP、PCA-FOA-BP對比結果如圖4所示。

圖4 各模型單獨對比結果Fig.4 Individual comparison results of each model
觀察圖4可知,4種模型的預測值均與真實值的走勢相似,且PCA-FOA-SVR的預測結果與真實值最為貼近,整體效果最優,這說明在多種因素的影響下,該模型表現出良好的適用性,能夠直觀的展現出各年份山西地區紅棗產量的變化規律。
用均方根誤差(root mean square error,RMSE)、平均絕對誤差(mean absolute error,MAE)、決定系數R2作為評價指標來評估模型的有效性,其計算公式分別為
(17)
(18)
(19)

各模型的評估指標對比結果如表2所示??梢钥闯?PCA-FOA-SVR模型的RMSE要顯著低于SVR、PCA-SVR、BP、PCA-FOA-BP,這說明經過PCA主成分分析對原始數據進行降維處理,通過果蠅優化算法對SVR的懲罰因子和核參數進行尋優后,對SVR模型具有一定程度的優化。由RMSE可以看出,PCA-FOA-SVR模型的誤差離散性最小,多次差異較小,相對比SVR、PCA-SVR、BP、PCA-FOA-BP模型來說,PCA-FOA-SVR模型的RMSE分別提高了41.7%、46.9%、54.1%、33.5%。從MAE指標來看,PCA-FOA-SVR模型的MAE分別提高了26%、26.7%、44.8%、19.7%,由此可以看出,PCA-FOA-SVR模型的精度最高。從R2可以看出,PCA-FOA-SVR模型分別提高了6.67%、9.09%、14.29%、4.35%,且PCA-FOA-SVR的R2達到0.96,說明模型擬合優度最好。

表2 各模型評估指標對比Table 2 Comparison of evaluation indexes of each model
因為PCA-FOA-SVR相對SVR、PCA-SVR以及BP、PCA-FOA-BP來說具有較高的預測精度,且穩定性較強,因此使用該模型對未來10年的產量進行預測。但是因為未來各變量均為未知,因此首先根據GM(1,1)模型對2020—2030年的山西省紅棗產量的影響因素進行預測,再用PCA-FOA-SVR模型對產量預測,預測結果如圖5所示。

圖5 未來產量預測Fig.5 Future production forecast chart
從圖5中可以看出,山西省紅棗產量會在未來5年內持續上升并在2025年達到頂峰,然后呈現下降趨勢,具有一定的波動性,可能是紅棗內含有眾多營養成分,人們對于紅棗的需求開始增加;其次灰色預測對于未來數據的獲取存在一定量的偏差。
以山西省1993—2020年的紅棗產量及17個維度的因素作為基礎數據,建立基于主成分分析的果蠅算法優化支持向量機回歸的紅棗產量預測模型,并分別與SVR、PCA-SVR、BP、PCA-FOA-BP4模型進行對比,以RMSE、MAE、R2作為評價指標得出以下結論。
(1)PCA-FOA-SVR的RMSE、MAE、R2分別為3.11、3.01、0.96,較SVR模型分別提高了41.7%、26%、6.7%;較PCA-SVR模型分別提高49.6%、26.7%、9.1%;較PCA-FOA-BP模型分別提高33.5%、19.7%、4.3%,由此可以看出基于主成分分析的果蠅算法優化支持向量機回歸紅棗產量預測模型誤差離散性小,精度最高且擬合優度最好。
(2)通過GM(1,1)對未來數據進行預測,利用PCA-FOA-SVR模型對未來10年山西省紅棗產量進行預測,并得到在2025年紅棗產量會達到一個峰值。
本次研究中考慮了17個維度的指標作為輸入變量,但未考慮人們的消費習慣、極端天氣等多種因素,后續研究可考慮加入變量,完善數據量,對產量作為更精準的預測。