李晉澤, 趙素娟, 李寧, 李俊成 , 劉森 , 馬繼東*
(1.東北林業(yè)大學(xué)機(jī)電工程學(xué)院, 哈爾濱 150040; 2.太原理工大學(xué)礦業(yè)工程學(xué)院, 太原 030024)
在中國(guó)發(fā)生新冠疫情以來(lái),人們更傾向于選擇有營(yíng)養(yǎng)價(jià)值的水果來(lái)提高自身免疫力,而紅棗內(nèi)含有眾多微量元素以及營(yíng)養(yǎng)元素成為人們的首選,在后疫情時(shí)代紅棗的重要性日漸明顯,因此精準(zhǔn)預(yù)測(cè)紅棗的產(chǎn)量及變化趨勢(shì)是迫在眉睫的。但由于氣候、自然災(zāi)害、市場(chǎng)環(huán)境等一系列不可控因素的影響,紅棗產(chǎn)量的預(yù)測(cè)具有極大的復(fù)雜性和不確定性。
目前產(chǎn)量預(yù)測(cè)方法主要包括時(shí)間序列分析法、回歸分析法、灰色理論分析法以及神經(jīng)網(wǎng)絡(luò)等智能算法[1]。但單一預(yù)測(cè)模型所用的數(shù)學(xué)原理不同,且容易產(chǎn)生較大誤差,因此以組合模型進(jìn)行預(yù)測(cè)研究。李欣等[2]以灰色預(yù)測(cè)模型GM(1,1)、多元回歸預(yù)測(cè)模型、時(shí)間序列預(yù)測(cè)模型為基礎(chǔ)模型,分別對(duì)其賦予權(quán)重,得到組合預(yù)測(cè)模型。文彥飛等[3]利用螢火蟲算法對(duì)支持向量機(jī)回歸(support vector regression,SVR)以及長(zhǎng)短時(shí)記憶神經(jīng)網(wǎng)絡(luò)(long short-term memory neural network,LSTM)進(jìn)行參數(shù)尋優(yōu),構(gòu)建組合預(yù)測(cè)模型。李鵬飛等[4]以陜西蘋果產(chǎn)量為例,將反向傳播(back propagation,BP)神經(jīng)網(wǎng)絡(luò)、移動(dòng)平均自回歸(autoregressive integrated moving average,ARIMA)和最小二乘支持向量回歸(least squares support vector regression,LSSVR)模型分別賦予權(quán)重進(jìn)行集成研究。范小虎等[5]將極限學(xué)習(xí)機(jī)(extreme learning machine, ELM)模型與SVR模型融合,最大限度地提升了武器系統(tǒng)剩余壽命預(yù)測(cè)的泛化能力。在人工神經(jīng)網(wǎng)絡(luò)方面,文獻(xiàn)[6-7]使用神經(jīng)網(wǎng)絡(luò)對(duì)河南省的糧食產(chǎn)量進(jìn)行預(yù)測(cè)。高心怡等[8]提出混合智能算法的支持向量機(jī)預(yù)測(cè)模型并以此來(lái)預(yù)測(cè)糧食產(chǎn)量。陳燦虎等[9]以BP神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)模型,利用差分進(jìn)化改進(jìn)灰狼算法,建立了糧食預(yù)測(cè)模型。楊培紅等[10]為緩解停車難現(xiàn)象,建立了基于輕量級(jí)梯度提升機(jī)(light gradient boosting machine,LightGBM)-SVR-LSTM的停車區(qū)剩余車位預(yù)測(cè)模型,并用3種評(píng)估指標(biāo)進(jìn)行效果驗(yàn)證。路思恒等[11]以影響糧食產(chǎn)量的8個(gè)指標(biāo)為基礎(chǔ),建立了基于云南省糧食產(chǎn)量預(yù)測(cè)的BP神經(jīng)網(wǎng)絡(luò)模型。廖志豪等[12]、梁琪堯[13]采用遺傳算法對(duì)傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)的超參數(shù)進(jìn)行優(yōu)化,構(gòu)建組合預(yù)測(cè)模型(genetic algorithm-back propagation,GA-BP)預(yù)測(cè)模型。郭利進(jìn)等[14]建立灰色預(yù)測(cè)和BP神經(jīng)網(wǎng)絡(luò)模型,構(gòu)建基于誘導(dǎo)有序加權(quán)算術(shù)平均算子(induced ordered weighted arithmetic,IOWA)組合灰色神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型。曾慶揚(yáng)等[15]構(gòu)建了PCA與BP神經(jīng)網(wǎng)絡(luò)組合模型。由于SVR對(duì)于小樣本預(yù)測(cè)具有良好的效果,Fan等[16]利用FOA搜索SVR的最優(yōu)參數(shù),提出了車位預(yù)測(cè)的FOA-SVR組合模型。時(shí)雷等[17]結(jié)合灰色系統(tǒng)和機(jī)器學(xué)習(xí)模型的優(yōu)點(diǎn),提出了基于SVR殘差修正的灰色BP神經(jīng)網(wǎng)絡(luò)模型。由于影響糧食產(chǎn)量的因素很多,并且隨機(jī)性較強(qiáng),趙桂芝等[18]采用混沌理論將原始樣本進(jìn)行了空間重構(gòu),發(fā)揮粒子群算法(particle swarm optimization,PSO)全局搜索能力強(qiáng)的特點(diǎn),對(duì)支持向量機(jī)(support vector machine,SVM)進(jìn)行參數(shù)優(yōu)化,從而組合建立模型,但是存在著容易陷入局部最優(yōu)的問(wèn)題。王林生等[19]利用主成分分析法選取6個(gè)主控因素,建立了PSO-ELM瑪湖油田水平井產(chǎn)量預(yù)測(cè)模型并得到了較好的應(yīng)用效果。由于目前針對(duì)產(chǎn)量預(yù)測(cè)的研究大都是以歷史數(shù)據(jù)、天氣等因素為導(dǎo)向來(lái)預(yù)測(cè)長(zhǎng)期的結(jié)果。尹麗春等[20]、Zhao等[21]引入隨機(jī)森林算法,設(shè)計(jì)出一種關(guān)于糧食產(chǎn)量短期預(yù)測(cè)的模型。李曄等[22]結(jié)合灰色預(yù)測(cè)模型和馬爾可夫理論,同時(shí)利用新信息優(yōu)先的思想,構(gòu)建新維無(wú)偏灰色馬爾可夫模型,以此來(lái)對(duì)小麥產(chǎn)量進(jìn)行中長(zhǎng)期預(yù)測(cè)。
SVR作為一種新型的機(jī)器學(xué)習(xí)算法,它可以有效地避免神經(jīng)網(wǎng)絡(luò)存在著學(xué)習(xí)記憶不穩(wěn)定,容易陷入局部極值、網(wǎng)絡(luò)泛化能力與預(yù)測(cè)能力存在矛盾等問(wèn)題,為此,采用SVR為基礎(chǔ)模型,用果蠅優(yōu)化算法(fruit fly optimization algorithm,FOA)來(lái)優(yōu)化其參數(shù)。由于目前針對(duì)紅棗產(chǎn)量預(yù)測(cè)的研究方法較少,且紅棗已經(jīng)是人們?nèi)粘I钪胁豢煞指畹囊徊糠?。鑒于此,主要以預(yù)測(cè)紅棗產(chǎn)量為主要目標(biāo),以1992—2020年山西地區(qū)紅棗產(chǎn)量數(shù)據(jù)為例,建立基于主成分分析的果蠅算法優(yōu)化支持向量回歸的預(yù)測(cè)模型 (principal component analysis fruit fly optimization algorithm support vector regression,PCA-FOA-SVR),將該模型與SVR、基于主成分分析的果蠅算法優(yōu)化反向傳播神經(jīng)網(wǎng)絡(luò)(principal component analysis fruit fly optimization algorithm back propagation,PCA-FOA-BP)等做對(duì)比,用評(píng)價(jià)指標(biāo)來(lái)確定算法的優(yōu)劣,最后通過(guò)GM(1,1)預(yù)測(cè)未來(lái)數(shù)據(jù),并用PCA-FOA-SVR模型對(duì)未來(lái)產(chǎn)量的進(jìn)行預(yù)測(cè),對(duì)基于機(jī)器學(xué)習(xí)的智能預(yù)測(cè)方法提供一定的參考。
數(shù)據(jù)取自《中國(guó)農(nóng)村統(tǒng)計(jì)年鑒》,共有27個(gè)樣本,其中取前17個(gè)樣本作為訓(xùn)練集,剩余10個(gè)樣本作為測(cè)試集,其中以鄉(xiāng)村人口、小型拖拉機(jī)、農(nóng)用水泵、節(jié)水灌溉類機(jī)械、鄉(xiāng)村辦水電站、灌溉面積等17個(gè)特征值作為輸入變量,以紅棗產(chǎn)量作為輸出變量。因數(shù)據(jù)維度較大,為避免造成預(yù)測(cè)不精準(zhǔn)的現(xiàn)象,因此對(duì)其進(jìn)行主成分分析(principal component analysis,PCA)降維,所選取的特征值k取5,于是便得到了27×5的一組數(shù)據(jù),將其放入FOA-SVR模型中訓(xùn)練。
PCA主成分分析可以有效去除對(duì)紅棗產(chǎn)量影響較小的因素,消除冗余信息,使問(wèn)題簡(jiǎn)單化,具體求解步驟如下。
步驟1確定分析變量,收集數(shù)據(jù)。假設(shè)有m個(gè)樣本、n個(gè)變量,用m×n的矩陣Z表示樣本集。
步驟2計(jì)算標(biāo)準(zhǔn)化轉(zhuǎn)換后的協(xié)方差矩陣C。
(1)
步驟3計(jì)算協(xié)方差矩陣C的單位正交的特征向量與對(duì)應(yīng)的特征值。
步驟4根據(jù)降維要求,確定k的大小,將C的特征值從大到小排列,選取前k個(gè)特征值所對(duì)應(yīng)的特征向量。
步驟5將這些特征值向量作為行向量,求解出降維矩陣P。
步驟6將降維矩陣P乘以原矩陣Z即可降維,得到Y(jié)=PZ。
支持向量機(jī)回歸其目的是找到一個(gè)多元回歸函數(shù),從給定的數(shù)據(jù)集中預(yù)測(cè)未知對(duì)象的預(yù)期輸出屬性[23]。
它的訓(xùn)練結(jié)構(gòu)設(shè)計(jì)由輸入層、隱藏層和輸出層組成,當(dāng)訓(xùn)練集在輸入層與隱藏層間實(shí)現(xiàn)了非線性變換之后,將能夠在輸出空間中實(shí)現(xiàn)線性回歸。因此,假設(shè)如果隱藏層的維度夠大,則SVR將能夠趨近于任何一個(gè)非線性的映射關(guān)系,其SVR的基礎(chǔ)模型為[24]
f(x)=ωTφ(x)+b
(2)
式(2)中:f(x)為線性回歸函數(shù);φ(x)為映射函數(shù);ωT為ω的轉(zhuǎn)置,ω與b均為未確定的參數(shù)。
由于對(duì)實(shí)際問(wèn)題進(jìn)行預(yù)測(cè)時(shí),不可避免地會(huì)出現(xiàn)偏差,因此,SVR允許因此存在ε的最大誤差,則回歸問(wèn)題轉(zhuǎn)換為
(3)
式(3)中:lε為引入的不敏感損失函數(shù);C為常數(shù);m為自變量的個(gè)數(shù);f(xi)為預(yù)測(cè)值;yi為真實(shí)值。
(4)
(5)
式(5)中:K(x,xi)為核函數(shù),選取高斯徑向基函數(shù)為核函數(shù)。
σ為高斯徑向基函數(shù)的帶寬,可表示為
(6)
SVR的參數(shù)一般包括不敏感系數(shù)、懲罰因子和核函數(shù)參數(shù),它們的參數(shù)對(duì)于模型的精度以及推廣能力具有至關(guān)重要的作用,如表1所示。因此如果參數(shù)選取合適,就會(huì)得到穩(wěn)定且準(zhǔn)確的模型[25]。
表1 參數(shù)選擇對(duì)SVR的影響Table 1 Impact of parameter selection on SVR
利用果蠅優(yōu)化算法對(duì)SVR的參數(shù)進(jìn)行尋優(yōu),并通過(guò)不斷迭代尋找最優(yōu)的參數(shù)(c,g),其中,c為懲罰因子g為核函數(shù)參數(shù),從而使目標(biāo)函數(shù)的值最小,具體步驟如下。
步驟1初始化參數(shù)。設(shè)置算法的最大迭代次數(shù)50次,種群數(shù)量為100,搜索區(qū)間[-1 000,1 000]。
步驟2隨機(jī)初始化果蠅群體的位置。隨機(jī)初始化果蠅種群位置InitXi和InitYi。
步驟3賦予果蠅個(gè)體利用嗅覺(jué)搜尋食物的隨即距離和方向R,可表示為
(7)
步驟4計(jì)算味道濃度判定值。由于無(wú)法得知食物位置,因此先估計(jì)與原點(diǎn)的距離Di,再計(jì)算味道濃度判定值Si,此值為距離倒數(shù)。
(8)
步驟5適應(yīng)度評(píng)估。計(jì)算果蠅個(gè)體位置的味道濃度Qi,可表示為
Qi=Fitness(Si)
(9)
步驟6確定最優(yōu)個(gè)體。找出該果蠅群體中味道濃度最低B和最佳索引I的果蠅。
(10)
式(10)中:Q為味道濃度。
步驟6飛行。保留最佳味道濃度值與其坐標(biāo)XI、YI,其他果蠅均飛向該位置。
(11)
步驟8循環(huán)。循環(huán)執(zhí)行食物搜索直到算法迭代次數(shù)達(dá)到50次。
在GM (1,1)模型中,首先要對(duì)原始序列進(jìn)行一次累加生成,使構(gòu)造處理的數(shù)據(jù)具有一定的規(guī)律性,進(jìn)而構(gòu)建一階常微分方程,進(jìn)行求解,具體建模過(guò)程如下。
步驟1給定觀測(cè)序列,設(shè)序列有N個(gè)觀測(cè)值。
x(0)={x(0)(1),x(0)(2),…,x(0)(N)}
(12)
步驟2通過(guò)一次累加形成新序列。
x(1)={x(1)(1),x(1)(2),…,x(1)(N)}
(13)
步驟3設(shè)年份t和累加生成序列x(1)的一階常微分方程。
(14)
式(14)中:a為常數(shù);u為發(fā)展灰度。
步驟4當(dāng)t=t0時(shí),x(1)=x(1)(t0),此時(shí)微分方程的解為
(15)
步驟5將k+1替換t可得
(16)
利用PCA-FOA-SVR模型對(duì)紅棗產(chǎn)量預(yù)測(cè)的流程如圖1所示,具體建模步驟如下。
圖1 PCA-FOA-SVR預(yù)測(cè)模型Fig.1 PCA-FOA-SVR prediction model
步驟1選取訓(xùn)練樣本,確定影響紅棗產(chǎn)量的因素,并對(duì)樣本進(jìn)行數(shù)據(jù)預(yù)處理。
步驟2對(duì)樣本進(jìn)行主成分分析,消除掉冗余信息,選取主成分維度,得出降維矩陣。
步驟3確定SVR模型的超參數(shù),包括核函數(shù)類型為RBF、核函數(shù)參數(shù)g、懲罰因子c等。
步驟4將SVR模型的超參數(shù)作為FOA的搜索空間,并對(duì)其進(jìn)行初始化,生成隨機(jī)果蠅個(gè)體100個(gè)。
步驟5計(jì)算每個(gè)果蠅個(gè)體的適應(yīng)度,即使用SVR模型計(jì)算出該個(gè)體的誤差值,并將誤差值轉(zhuǎn)化為適應(yīng)度值。
步驟6根據(jù)每個(gè)果蠅的個(gè)體適應(yīng)度值,更新果蠅個(gè)體的位置和速度,模擬果蠅在搜索食物時(shí)的行為。
步驟7根據(jù)每個(gè)果蠅個(gè)體的位置和速度,確定SVR模型的超參數(shù),并進(jìn)行模型訓(xùn)練,更新SVR模型的參數(shù)。
步驟8重復(fù)步驟4~步驟7,直到達(dá)到預(yù)設(shè)的停止條件。
步驟9利用最優(yōu)參數(shù)建立PCA-FOA-SVR模型,并對(duì)山西省紅棗產(chǎn)量進(jìn)行預(yù)測(cè)。
SVR模型為網(wǎng)格搜索,范圍為[-1 000,1 000],且以10的倍數(shù)進(jìn)行搜索,搜索空間較大。因此通過(guò)FOA對(duì)SVR的懲罰因子與核函數(shù)參數(shù)進(jìn)行尋優(yōu)處理,不斷訓(xùn)練模型得出懲罰因子c為190,核函數(shù)參數(shù)g為137時(shí),迭代次數(shù)達(dá)到最小,預(yù)測(cè)值與真實(shí)值最為接近,模型達(dá)到最優(yōu),預(yù)測(cè)結(jié)果如圖2所示。
圖2 PCA-FOA-SVR預(yù)測(cè)結(jié)果Fig.2 PCA-FOA-SVR prediction results
從圖2中可以看出:PCA-FOA-SVR的預(yù)測(cè)走勢(shì)與真實(shí)值走勢(shì)一致,且誤差值較小,預(yù)測(cè)的效果較好。
選取SVR、PCA-SVR、BP、PCA-FOA-BP作為對(duì)比模型,設(shè)置BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練次數(shù)為1 000,學(xué)習(xí)速率為1×10-2,訓(xùn)練目標(biāo)最小誤差為1×10-5,神經(jīng)網(wǎng)絡(luò)層數(shù)為五層神經(jīng)網(wǎng)絡(luò)。用前80%的數(shù)據(jù)作為訓(xùn)練樣本,后20%的數(shù)據(jù)作為測(cè)試樣本,PCA-FOA-SVR與PCA-FOA-BP的目標(biāo)值隨迭代次數(shù)的變化情況對(duì)比結(jié)果如圖3所示。
圖3 迭代次數(shù)的變化情況對(duì)比Fig.3 Comparison graph of changes in the number of iterations
由圖3可知,在算法迭代初期,PCA-FOA-SVR的目標(biāo)值就斷崖式下降,并且隨著迭代次數(shù)的不斷增加,目標(biāo)值在趨于穩(wěn)定后再次下降,并最終在迭代次數(shù)達(dá)到第20代的時(shí)候逼近于算法的最優(yōu)值;PCA-FOA-BP的迭代次數(shù)在第23代的時(shí)候達(dá)到最優(yōu),因此PCA-FOA-BP的收斂能力和全局尋優(yōu)能力均弱于PCA-FOA-SVR,SVR、PCA-SVR、BP、PCA-FOA-BP對(duì)比結(jié)果如圖4所示。
圖4 各模型單獨(dú)對(duì)比結(jié)果Fig.4 Individual comparison results of each model
觀察圖4可知,4種模型的預(yù)測(cè)值均與真實(shí)值的走勢(shì)相似,且PCA-FOA-SVR的預(yù)測(cè)結(jié)果與真實(shí)值最為貼近,整體效果最優(yōu),這說(shuō)明在多種因素的影響下,該模型表現(xiàn)出良好的適用性,能夠直觀的展現(xiàn)出各年份山西地區(qū)紅棗產(chǎn)量的變化規(guī)律。
用均方根誤差(root mean square error,RMSE)、平均絕對(duì)誤差(mean absolute error,MAE)、決定系數(shù)R2作為評(píng)價(jià)指標(biāo)來(lái)評(píng)估模型的有效性,其計(jì)算公式分別為
(17)
(18)
(19)
各模型的評(píng)估指標(biāo)對(duì)比結(jié)果如表2所示??梢钥闯?PCA-FOA-SVR模型的RMSE要顯著低于SVR、PCA-SVR、BP、PCA-FOA-BP,這說(shuō)明經(jīng)過(guò)PCA主成分分析對(duì)原始數(shù)據(jù)進(jìn)行降維處理,通過(guò)果蠅優(yōu)化算法對(duì)SVR的懲罰因子和核參數(shù)進(jìn)行尋優(yōu)后,對(duì)SVR模型具有一定程度的優(yōu)化。由RMSE可以看出,PCA-FOA-SVR模型的誤差離散性最小,多次差異較小,相對(duì)比SVR、PCA-SVR、BP、PCA-FOA-BP模型來(lái)說(shuō),PCA-FOA-SVR模型的RMSE分別提高了41.7%、46.9%、54.1%、33.5%。從MAE指標(biāo)來(lái)看,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達(dá)到0.96,說(shuō)明模型擬合優(yōu)度最好。
表2 各模型評(píng)估指標(biāo)對(duì)比Table 2 Comparison of evaluation indexes of each model
因?yàn)镻CA-FOA-SVR相對(duì)SVR、PCA-SVR以及BP、PCA-FOA-BP來(lái)說(shuō)具有較高的預(yù)測(cè)精度,且穩(wěn)定性較強(qiáng),因此使用該模型對(duì)未來(lái)10年的產(chǎn)量進(jìn)行預(yù)測(cè)。但是因?yàn)槲磥?lái)各變量均為未知,因此首先根據(jù)GM(1,1)模型對(duì)2020—2030年的山西省紅棗產(chǎn)量的影響因素進(jìn)行預(yù)測(cè),再用PCA-FOA-SVR模型對(duì)產(chǎn)量預(yù)測(cè),預(yù)測(cè)結(jié)果如圖5所示。
圖5 未來(lái)產(chǎn)量預(yù)測(cè)Fig.5 Future production forecast chart
從圖5中可以看出,山西省紅棗產(chǎn)量會(huì)在未來(lái)5年內(nèi)持續(xù)上升并在2025年達(dá)到頂峰,然后呈現(xiàn)下降趨勢(shì),具有一定的波動(dòng)性,可能是紅棗內(nèi)含有眾多營(yíng)養(yǎng)成分,人們對(duì)于紅棗的需求開始增加;其次灰色預(yù)測(cè)對(duì)于未來(lái)數(shù)據(jù)的獲取存在一定量的偏差。
以山西省1993—2020年的紅棗產(chǎn)量及17個(gè)維度的因素作為基礎(chǔ)數(shù)據(jù),建立基于主成分分析的果蠅算法優(yōu)化支持向量機(jī)回歸的紅棗產(chǎn)量預(yù)測(cè)模型,并分別與SVR、PCA-SVR、BP、PCA-FOA-BP4模型進(jìn)行對(duì)比,以RMSE、MAE、R2作為評(píng)價(jià)指標(biāo)得出以下結(jié)論。
(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%,由此可以看出基于主成分分析的果蠅算法優(yōu)化支持向量機(jī)回歸紅棗產(chǎn)量預(yù)測(cè)模型誤差離散性小,精度最高且擬合優(yōu)度最好。
(2)通過(guò)GM(1,1)對(duì)未來(lái)數(shù)據(jù)進(jìn)行預(yù)測(cè),利用PCA-FOA-SVR模型對(duì)未來(lái)10年山西省紅棗產(chǎn)量進(jìn)行預(yù)測(cè),并得到在2025年紅棗產(chǎn)量會(huì)達(dá)到一個(gè)峰值。
本次研究中考慮了17個(gè)維度的指標(biāo)作為輸入變量,但未考慮人們的消費(fèi)習(xí)慣、極端天氣等多種因素,后續(xù)研究可考慮加入變量,完善數(shù)據(jù)量,對(duì)產(chǎn)量作為更精準(zhǔn)的預(yù)測(cè)。