童曉星 孟 梁 張凌志
(1嘉興技師學(xué)院電氣工程系,浙江嘉興 314000;2上海師范大學(xué)環(huán)境與地理科學(xué)學(xué)院,上海 200234)
2020 年初,全球暴發(fā)了新冠肺炎疫情,由于新冠病毒傳染力強,導(dǎo)致傳播范圍廣、感染人數(shù)多。2020 年4 月初,全球多國發(fā)布申明,為確保本國糧食供給,停止糧食出口。在疫情下,準(zhǔn)確預(yù)測當(dāng)年糧食產(chǎn)量可以幫助國家或地區(qū)更好地掌握農(nóng)業(yè)生態(tài)發(fā)展趨勢、保障人們生活的基本要求。雖然當(dāng)前已有不少糧食預(yù)測的方法,如Nerlove 模型[1]、系統(tǒng)動力學(xué)模型[2]、IPSO-BP 模型[3]、時間序列模型等[4],但對于大型傳染病疫情下的地區(qū)糧食產(chǎn)量預(yù)測的研究仍然較少。
近些年來,隨著人工智能、機器學(xué)習(xí)技術(shù)的發(fā)展,SVM支持向量機這種具備較強泛化能力和廣泛適用性的算法已被普遍應(yīng)用到農(nóng)業(yè)生產(chǎn)預(yù)測、分類和圖像識別等領(lǐng)域,如滴灌灌水器流量預(yù)測[5],玉米、大豆、水稻識別[6],現(xiàn)代農(nóng)業(yè)氣象分析[7],灌溉耕地研究[8],茶園地形數(shù)據(jù)研究等[9],而SVM最終解決的是凸二次規(guī)劃問題[10],在處理局部極限極值的問題上優(yōu)于神經(jīng)網(wǎng)絡(luò)。在本次研究課題中,由于新冠肺炎疫情的發(fā)生,存在個別地區(qū)暴發(fā)較嚴(yán)重,個別地區(qū)暴發(fā)較緩和等特點,SVM算法更易得到全局最優(yōu)解。傳統(tǒng)的SVM算法僅局限于二元分類,ε-SVR是在傳統(tǒng)二元分類的基礎(chǔ)上可對回歸問題進(jìn)行拓展的算法[11]。
SVM作為一種二值分類模型(非0即1),模型建立在特征空間上的間隔最大的線性分類器之上,為使SVM可對連續(xù)性數(shù)值作回歸預(yù)測,通過多次分類迭代的方式優(yōu)化后提出了SVR模型。本文經(jīng)過多次試驗,確定徑向基函數(shù)(RBF)為本數(shù)據(jù)建立模型的最佳核函數(shù)。相關(guān)計算公式如下:
徑向基分類器的特點是每個基函數(shù)的中心對應(yīng)于一個支持向量,輸出權(quán)值都是由算法自動確定。其內(nèi)積函數(shù)類似人腦的神經(jīng)中樞特性,不同的S 參數(shù)值相應(yīng)的分類面差別較大。
Christopher J.C.Burges 曾對線性核函數(shù)、多項式核函數(shù)和徑向基核函數(shù)進(jìn)行了試驗比較,不同的核函數(shù)對不同的數(shù)據(jù)庫各有優(yōu)劣[12],也有基于UCI基準(zhǔn)庫上的數(shù)據(jù)分析的研究表明徑向基核函數(shù)性能略為優(yōu)良[13]。
γ:設(shè)置核函數(shù)中γ的值,隨著γ的增大,存在對于測試集分類效果差而對訓(xùn)練分類效果好的情況,并且容易泛化誤差出現(xiàn)過擬合,一般取值在0.01[14]附近。本文通過迭代運算,得出最佳值為0.031。
C:懲罰因子。C表征對離群點的重視程度,C值大時對誤差分類的懲罰增大,C值小時對誤差分類的懲罰減小。本研究中由于樣本較小,而大規(guī)模傳染病造成的影響不可忽視性,故C值取值較大,當(dāng)取值5.0E+4時,模型預(yù)測值和原始值的擬合度最高。
P代表SVM 中損失函數(shù)中的參數(shù)b。SVM 中的損失函數(shù)定義為合頁(hinge)損失函數(shù)和正則化項之和,可用以下公式表示:
式中:代表取正值函數(shù)。
本文通過GA算法實現(xiàn)SVR核函數(shù)中γ、C、P的選值,GA算法旨在某個范圍內(nèi)取最優(yōu)解,而不是全局最優(yōu)解,通過對γ分成0~0.001、0.001~0.01、0.01~0.1、0.1~1等4個范圍,C分成0~0.1、0.1~1、1~10、10~100、100~1 000、1 000~1.0 E+4、1.0 E+4~1.0 E+5共7 個范 圍,P分 成0~1.0E-5、1.0E-5~1.0E-4、1.0E-4~1.0E-3、0.001~0.01、0.01~0.1、0.1~1 共6個范圍,γ、C、P的默認(rèn)值分別為0.1、1、0.1,設(shè)置GA的第1 個節(jié)點為改變γ的取值,分別取值0、0.001、0.01、0.1、1,第2個節(jié)點為C的7個取值,第3個節(jié)點為P的6 個取值,這樣平均誤差最小的即為最優(yōu)的γ、C、P的取值/取值范圍。這里,對C的取值需要特別注意,以往對于C值的取值往往是遍歷、迭代的方法,通常C越大說明錯誤懲罰越高,得出的模型擬合度高,容易出現(xiàn)過擬合的情況,這種情況對于新數(shù)據(jù)的適用性較低。本文通過GA算法,得出在C在一定閉合區(qū)域下的最優(yōu)解,避免過擬合的現(xiàn)象。
本文選取2020年新冠肺炎疫情期間的北京、天津等29個?。ㄊ小⒆灾螀^(qū)),2003年SARS期間發(fā)生傳播的北京、天津等21 個?。ㄊ?、自治區(qū))糧食產(chǎn)量數(shù)據(jù),1961年霍亂發(fā)生傳播的廣東省糧食產(chǎn)量數(shù)據(jù)以及1986 年戊型肝炎發(fā)生傳播的新疆維吾爾自治區(qū)糧食產(chǎn)量數(shù)據(jù)作為訓(xùn)練樣本。2020年山東、廣東新冠肺炎病毒感染人數(shù)分別達(dá)10 165 人、12 624 人,2003年北京SARS病毒感染人數(shù)達(dá)2 434人,1961年廣東省霍亂感染人數(shù)達(dá)4 319 人,1986 年新疆戊型肝炎感染人數(shù)達(dá)119 280 人,傳染病感染絕對數(shù)較大,可驗證模型的廣泛適用性。
本文選取了2020年新冠肺炎期間的浙江、湖北省,2003年SARS疫情期間的廣東、陜西、甘肅3個省份糧食產(chǎn)量數(shù)據(jù)以及1978 年登革熱疫情流行的廣東省糧食產(chǎn)量數(shù)據(jù)作為預(yù)測樣本。2020 年湖北新冠肺炎病例達(dá)6.8 萬,1978 年廣東登革熱病例達(dá)2.2萬,比較能驗證模型的適應(yīng)性。
根據(jù)現(xiàn)有研究,對于機器學(xué)習(xí)方法研究糧食產(chǎn)量的影響因素,主要考慮糧食作物播種面積、化肥施用量、糧食作物有效灌溉面積等因素[15-16]。考慮到本文主要是研究疫情下的糧食產(chǎn)量預(yù)測,故加入了疫情程度因素和當(dāng)?shù)貏?wù)農(nóng)人數(shù)(農(nóng)村從業(yè)人員數(shù))及變化趨勢,近些年糧食產(chǎn)量發(fā)展趨勢可涵蓋化肥施用量等其他次要因素。
綜上,本文將主要因素歸為以下4類:①疫情影響力。由于各省份的人口數(shù)存在差異,故感染人口和死亡人口2 個維度不能準(zhǔn)確說明疫情的嚴(yán)重性,所以選取了感染人口和死亡人口占年底總?cè)丝跀?shù)的比重作為疫情嚴(yán)重程度的指標(biāo);②糧食播種面積因素。近些年根據(jù)政策播種面積有所變化,帶來的糧食產(chǎn)量影響也是很直觀、明顯的,所以選取了近5年的糧食播種面積;③務(wù)農(nóng)人口。此處用“農(nóng)村從業(yè)人口”來代替,近5年的農(nóng)村從業(yè)人口可更好地反映務(wù)農(nóng)人口變化趨勢;④當(dāng)?shù)丶Z食產(chǎn)量。前一年當(dāng)?shù)丶Z食產(chǎn)量可作為當(dāng)年糧食產(chǎn)量預(yù)估的最直接依據(jù)之一,為了更好地體現(xiàn)糧食產(chǎn)量變化的趨勢,選取了近4年的當(dāng)?shù)丶Z食產(chǎn)量數(shù)據(jù)。
對本模型建立的數(shù)據(jù)處理如下:①感染人口和亡人口占比2 個參數(shù)。由于疫情差異,如2003 年SARS 時期遼寧僅3 例,而1986 年新疆戊型肝炎發(fā)病近12 萬例,為體現(xiàn)不同地區(qū)疫情影響程度的差異,對該2 個參數(shù)保留原格式;②糧食播種面積、農(nóng)村從業(yè)人口。以第n-4 年的糧食播種面積和農(nóng)村從業(yè)人口作為基準(zhǔn),對第n-3 年、第n-2 年、第n-1年和當(dāng)年的數(shù)據(jù)做歸一化處理(如疫情發(fā)生在2000年,則第n-4 年、第n-3 年、第n-2 年、第n-1 年和當(dāng)年分別代表1996 年、1997 年、1998 年、1999 年和2000 年);③糧食產(chǎn)量。以第n-4 年的糧食產(chǎn)量作為基準(zhǔn),對第n-3 年、第n-2 年、第n-1 年的產(chǎn)量做歸一化處理。模型訓(xùn)練樣本數(shù)據(jù)見表1。
表1 模型訓(xùn)練樣本數(shù)據(jù)
經(jīng)過試驗,通過GA 算法對核函數(shù)參數(shù)取值,當(dāng)γ在0.01~0.1、C在1.0E+4~1.0E+5和P在1.0E-4~1.0E-3 范圍內(nèi),平均相對誤差最小,再進(jìn)一步調(diào)整,當(dāng)γ=0.031 時,訓(xùn)練樣本平均相對誤差在2%左右,當(dāng)γ>0.031并逐步增大時,訓(xùn)練樣本平均相對誤差仍然在2%左右,但預(yù)測樣本平均相對誤差明顯增大,當(dāng)γ<0.031并繼續(xù)減小時,訓(xùn)練樣本平均相對誤差逐步上升,說明擬合度下降。
對懲罰因子C進(jìn)行調(diào)整,當(dāng)C<1.0E+4 時,訓(xùn)練樣本平均相對誤差在5%左右,且C越小擬合度越低,當(dāng)C>1.0E+4 并逐步增大時,訓(xùn)練樣本平均相對誤差逐步減小,當(dāng)C取值5.0E+4時,訓(xùn)練樣本平均相對誤差為0.92%,預(yù)測樣本平均相對誤差為3.11%,當(dāng)C取值>5.0E+4且繼續(xù)增大時,訓(xùn)練樣本平均相對誤差略微減小,但是預(yù)測樣本平均相對誤差的增加幅度較大,說明預(yù)測效果下降。
P代表對損失函數(shù)中的參數(shù)b,對P進(jìn)行調(diào)整,當(dāng)P>0.000 98 且逐步增大時,訓(xùn)練樣本平均相對誤差逐步變大,擬合度下降,當(dāng)P<0.000 98且逐步減小時,訓(xùn)練樣本平均相對誤差逐步變小,但預(yù)測樣本平均相對誤差的增加幅度較大,說明預(yù)測效果下降。
事實表明,當(dāng)γ=0.031、C=5.0E+4、P=0.000 98時,模型擬合度較好,訓(xùn)練樣本的平均相對誤差為0.92%,決定系數(shù)達(dá)0.99,同時預(yù)測樣本平均相對誤差為3.11%,滿足對傳染病發(fā)生當(dāng)年的地區(qū)糧食產(chǎn)量預(yù)測需求,而GA-SVR 由于其對少量樣本的案例模型建模,可通過參數(shù)優(yōu)化設(shè)置,使其泛化能力較強,所以基于GA-SVR 的糧食產(chǎn)量模型可對地區(qū)短期糧食產(chǎn)量預(yù)測提供準(zhǔn)確的參考數(shù)據(jù)。訓(xùn)練樣本結(jié)果見表2,預(yù)測結(jié)果見表3。
表2 訓(xùn)練樣本結(jié)果
表3 預(yù)測結(jié)果
為了研究大型傳染病是否對當(dāng)年的糧食產(chǎn)量具有重大影響,本文對于原有樣本去除疫情程度的2 個參數(shù)(感染人口占比、死亡人數(shù)占比)后再次進(jìn)行建模發(fā)現(xiàn),訓(xùn)練樣本擬合平均相對誤差為0.97%,預(yù)測樣本平均相對誤差為3.52%,決定系數(shù)同樣達(dá)到0.99。事實表明,該模型對地區(qū)短期糧食產(chǎn)量預(yù)測同樣具有較好的參考性。含疫情因素和不含疫情因素預(yù)測結(jié)果見表4。
表4 含疫情因素和不含疫情因素預(yù)測結(jié)果
由于國內(nèi)大型傳染病樣本有限,屬于小樣本數(shù)據(jù)分析,GA-SVR方法對于少量樣本擬合、泛化能力均較優(yōu)秀,通過參數(shù)的優(yōu)化設(shè)置,模型建立和驗證得到以下結(jié)論:①在γ=0.031、C=5.0E+4、P=0.000 98時,模型可以較好地對樣本數(shù)據(jù)進(jìn)行擬合,預(yù)測效果也比較好,說明基于GA-SVR 的大型傳染病糧食產(chǎn)量模型準(zhǔn)確、可靠。②在除去表示疫情程度的感染人口占比和死亡人口占比2 個參數(shù)后重新建模,新模型仍然可以較好地對建模樣本數(shù)據(jù)擬合,對目標(biāo)樣本進(jìn)行預(yù)測,雖然較含疫情參數(shù)的模型平均相對誤差略大,但在基于現(xiàn)有國內(nèi)大型傳染病疫情數(shù)據(jù)建模,疫情對當(dāng)年地區(qū)糧食產(chǎn)量的影響有限。
該方法可以在大型傳染病疫情環(huán)境下,提供當(dāng)年各省糧食產(chǎn)量預(yù)測,為國家糧食宏觀調(diào)控提供參考。