溫彥博,王 卓,白曉平
(1.中國科學院 沈陽自動化研究所,沈陽 110000;2.中國科學院 機器人與智能制造創新研究院,沈陽 110169;3.中國科學院大學,北京 100049)
當前,農機產業進入了信息發展的新時期,發展面向農機服務網點的農機運維服務是提高農機產業信息化水平的重要舉措。其中,實現各農機服務網點的農機服務備件配置精準預測是農機運維服務中最為重要的一環。然而,由于目前各農機服務網點對農機資源備件配置預測不準確,導致農機配件缺貨或過度配置,進而使得面向農機服務網點的農機資源運維服務方面存在著大量的浪費和效率低下情況。例如,在農機損壞的情況下無法做到及時的維修處理,導致了在寶貴的農忙時期耽誤了大量時間,使得農機作業效率降低,造成了較大的成本損失。所以,對農機服務備件配置精準預測,對于發展面向農機服務網點的農機運維服務和提高農機產業信息化水平進行具有重要意義。
近年來,隨著我國農業信息化現代化的發展,一部分的學者也把目光放在了農機服務資源的備件預測問題上。孫碩將AHP層次分析法與傳統的ABC分類相結合,并將經BP神經網絡訓練合格的網絡用于備件需求量的預測[1]。周瑞基于遺傳算法優化的灰色神經網絡方法構建需求預測模型,預測了運維服務需求數量[2]。郭政杰基于知識挖掘為農機資源備件的預測提供了數據準備,并用貝葉斯網絡對農機裝備進行故障維修服務決策[3]。肖沙沙基于平衡計分卡和網絡分析法構建應急服務站選址和服務車優化的數學模型,并運用改進的模擬退火算法進行問題求解[4]。通過對國內外農機服務資源備件預測方法的研究可以看出:國內對于農機領域的備件預測方法處在一個初步探索的階段,仍有很大的發展空間,無論是數據集的構建,還是算法的選擇,并沒有因地制宜選擇符合農機作業時限性、環境復雜性及地理位置分布性的算法[5-11]。
農機服務資源的備件預測問題歸根結底是一個回歸問題,而當今機器學習領域的熱門研究方向集成學習[12]對于處理該類回歸問題有較好的表現。它將一組弱學習器組合起來,后面的學習器對前面的學習器的錯誤進行更多的關注,達到比單一的強學習器更好的擬合效果,且效率更高。LightGBM作為集成學習的一員,在LGBT和XGBoost[13-14]的基礎上進行改進,以更快的訓練效率、更低內存使用得到更高的準確率[15-16]。為了更加高效且精確地對農機服務資源進行備件預測,將LightGBM模型引入農機服務資源備件預測領域。首先,分析并采集可能影響農機服務資源備件量的特征變量,并對這些特征數據與備件量的相關性分析處理,選取與預測結果相關性較大的特征建立數據集;然后,對基于LightGBM模型進行訓練和測試,對農機服務資源進行備件預測。由于LightGBM超參數繁多且對參數的調整極大程度上影響了預測結果,故在LightGBM的基礎上對于LightGBM的超參數使用PSO進行優化求解。這種改進相比于手動調參和網格搜索法調參能大大縮減參數尋優時間,并使得預測結果會更加精準。最后,通過測試對改進的LightGBM模型和原來的LightGBM模型的結果進行對比,采用均方根誤差(RMSE)作為評價指標對結果進行總結。將LightGBM引入農機服務資源備件預測領域,顛覆了傳統的農機備件方法,對于提高農機作業的效率、農機運維的信息化和智能化水平具有一定的意義。
LightGBM是一種基于分布式的GBDT梯度決策提升樹的boosting高效算法,前一個決策樹的殘差用損失函數的負梯度來擬合下一個決策樹。其相較于XGBoost,速度更快,精度更高,能使用更多的數據且速度不降低,同時能夠在多機并行工作時做到線性加速。對于農機服務資源備件預測的多數據、多特征輸入以及特征多為離散型高基數特征的情況,無需獨熱編碼,避免了產生大量的新特征及維數災難。在GBDT梯度決策提升樹的基礎上,LightGBM做了以下改進:基于Histogram的決策樹算法,帶深度限制的Leaf-wise的葉子生長策略,基于單邊梯度采樣(GOSS)和互斥特征捆綁(EFB)的特征數據處理。
Histogram也就是直方圖算法,其示意圖如圖1所示。圖1中,左邊直方圖算法將每一個連續的特征數據重新按取值范圍分組,映射成n個離散的整數,稱為bin,這樣就將存儲降了下來;右邊直方圖通過特征對每一個bin數據進行統計并做梯度累加構建而成,并找到最佳切分點。

圖1 Histogram的決策樹算法示意圖Fig.1 Schematic diagram of Histogram decision tree algorithm
LightGBM中直方圖構建算法流程如下:將訓練數據、樹的深度和特征維度作為輸入數據,因為要對樹中的每一個節點構建直方圖,所以遍歷每棵樹的深度,再遍歷每一個節點,從中得到要使用的數據集,再遍歷所有的特征并構建節點的直方圖;然后,在數據集中遍歷所有的數據,將直方圖中每一個分桶作為bin,得到bins之后把梯度和個數相加,由此找到最佳的切分點;最后,根據最佳切分點更新節點集。
直方圖做差如圖2所示。LightGBM在構建葉子節點的直方圖時,只計算一個葉子節點2的直方圖,其兄弟節點3的直方圖通過其父節點1的直方圖和該節點的差作為直方圖,這樣就用更小的代價得到了子節點的直方圖,速度為原來的兩倍。
LightGBM為了尋求最佳切分點,首先遍歷每一個bin并累加所有左節點的梯度SL和數量nL,如式(1)、式(2)所示。通過上述直方圖做差的方法得到右節點的梯度和數量,再帶入式(3)中求得增益,選擇最大的增益節點作為最佳切分點。
SR=SP-SL
(1)
nR=nP-nL
(2)
(3)
雖然直方圖算法在特征值離散化處理后找不到最精確的切分點,但實際上由于梯度決策樹本身就是弱學習器,故采用直方圖算法反而會起到正則化的效果,并且避免了模型的過擬合作用,即離散化的切分點對最終的精度反而更有利。

圖2 直方圖做差Fig.2 Histogramsubtraction
單邊梯度采樣算法(GOSS)和互斥特征捆綁(EFB)都是LightGBM降低特征數量以及樣本數量的降維方法。在計算增益時,LightGBM采用的是一階梯度和二階梯度。本算法認為梯度越小時其誤差越小,即表明此部分的樣本已經訓練完備;但是,如果直接丟棄這些樣本會影響數據分布,而本模型中采用的是單邊采樣方式適配,即GOSS算法。其采樣方式為:在進行最佳節點劃分時,使用所有的大梯度樣本以及一部分的小梯度樣本。
GOSS的步驟如下:首先,計算增益并對其排序,選取其中a×100%的大梯度樣本數據A,再從剩余的(1-a)×100%樣本中選取b×100%小梯度樣本數據B;由于小梯度樣本整體分布減少,將小梯度樣本數據放大(1-a)/b×100%倍,合并兩者進行訓練。
在原來的直方圖算法中,若O為弱學習器在某一個分裂節點的數據集,則在j個特征、分割點d處的增益為
(4)

在GOSS算法中,若O為弱學習器在某一個分裂節點的數據集,則在j個特征、分割點d處的增益為

(5)
其中,A為上述的大梯度樣本Al=xi∈A:xij≤d,Ar=xi∈A:xij>d;B為小梯度樣本Bl=xi∈B:xij≤d,Br=xi∈B:xij>d。
LightGBM根據高維數據的特征有很多稀疏且互斥的特性提出了互斥特征捆綁算法(EFB)。EFB為了特征的維度降低,將互斥的特征合并成一個特征“束”,稱為bundle。通過貪心算法找到可以進行合并的特征,再通過互斥特征合并MEF(Merge Exclusive feature)算法將特征合并成一個bundle。
EFB算法通過貪心算法的圖著色原理找到可以進行合并的特征。首先,對特征按從大到小的順序排序;然后,新建一個bundle對圖遍歷。如果沖突很小,就劃分到一個bundle中;如果沖突很大,就新建一個bundle。
MEF算法將特征合并成一個bundle,關鍵在于要確保原始特征可以從bundle中識別出來,如圖3所示。由于直方圖的算法存儲的是離散的bin,而不是特征的連續值,所以可以通過向特征的原始值添加偏移量來實現。

圖3 MEF算法原理示意圖Fig.3 Schematic diagram of MEF algorithm
原來的決策樹以Level-wise方法為生長策略,即對每一層的節點都進行一次分裂然后再剪枝。其優點在于容易進行多線程的并行化,而且不容易發生過擬合,如圖4所示。但是,實際上有很多節點的分裂增益并沒有那么高,對每個節點分裂搜索勢必會導致決策樹的生長效率降低。
LightGBM為了降低損失,對決策樹的生長策略為Leaf-wise,即以每1個葉子節點的增益作為劃分依據,如圖5所示。在第一次分裂時,生成2、3兩節點,3節點增益更大,故選取3作為下一個分裂點;比較剩余節點2、4、5等3個節點,4節點增益更大,故選取4作為下一個分裂點;比較剩余節點2、5、6、7節點,2節點增益更大,故選取2作為下一個分裂點。

圖4 Level-wise生長策略Fig.4 Level-wisegrowth strategy

圖5 Leaf-wise生長策略Fig.5 Leaf-wisegrowth strategy
LightGBM算法針對leaf-wise樹的參數優化及更快的訓練速度,旨在獲取更好的準確率,緩解過擬合有繁多的超參數。這些參數直接影響了算法的計算效率與準確度,故將PSO算法引進LightGBM中優化該算法中的超參數。
PSO算法作為一種群體智能優化算法,用粒子模擬鳥群中的鳥,粒子具有速度v和位置x兩個屬性。每一個粒子搜尋自己的個體最優解,然后把個體最優解與其他粒子共享,整個粒子群中的最優的個體最優解為當前全局最優解,所有粒子根據個體最優解和全局最優解來調整速度和位置。速度更新和位置更新的公式為
Vid=ωVid+C1random()(Pid-Xid)+
C1random()(Pgd-Xid)
(6)
Xid=Xid-Vid
(7)
其中,C1、C2為學習因子;Vid為粒子速度;Pid為第i個變量第d維的個體最優解;Pgd為第d維的群體最優解;ω為慣性因子,該值越大全局收斂能力越強,相應的局部收斂能力越弱。通常在算法初期選擇較大的ω,以快速地尋找全局最優。該值越小,全局收斂能力越弱,相應的局部收斂能力越強。通常在算法后期選擇較小的ω,以精細地尋找極值點。動態ω的更新公式為
ω(t)=(ωini-ωend)(Gk-g)/Gk+ωend
(8)
將LightGBM超參數作為PSO算法的輸入,將其結果的MSE均方誤差計算出來,作為PSO的適應度函數,尋求RMSE的最低值。
農機作業環境復雜,種類繁多,影響農機服務資源儲備的因素很多,且有很多類別型數據,無疑加大了精準預測的難度。為了更加全面地分析農機服務資源備件的影響特征,從農機作業環境信息、服務網點信息和備件信息3個方面綜合全面地選擇影響備件量的特征。
在農機作業環境信息方面,一般來說溫度越高、濕度越高對農機的自然損耗越大,越容易造成農機零部件的需求量增加;反之,氣候越干燥,對農機的自然損耗越小,越容易造成農機零部件需求量的減少。地理條件越惡劣的地方,越容易造成備件需求量的增加;地理條件越優越的地方,越不容易造成備件需求量的增加。
在服務網點信息方面,按照經驗,每個農機服務網點所覆蓋的農機作業面積與備件需求量成線性關系。例如,農機持有量越多,農機的作業強度越大,對備件的需求量也越大,應作為主要的參考特征。同時,農機類型以及農機的作業類型也與備件量有著千絲萬縷的聯系。
在零部件信息方面,本文選取了配件類型、配件名稱、配件型號、配件價格、制造廠商、配件市場需求量、配件在服務網點的消耗量等多維信息作為特征輸入。
對于對照組的其他算法,需要對數值型數據進行歸一化處理,如式(9)所示。其中,x為原始數據,x′為歸一化處理后的數據。對于氣候信息、地理環境等信息,將其分為[好 壞]等類別型數據,并進行獨熱編碼處理。對于LightGBM模型來說,本質是上文提到的直方圖算法,不需要對數據進行歸一化和獨熱編碼處理。直方圖算法對于數值型特征以及類別性特征有著不一樣的分bin策略。對于數值型特征而言,首先對特征進行去重,并按從大到小的順序排序對每一個特征值統計個數;然后,比較最大的分bin個數和去重后的特征值個數,選取更小的那個作為直方圖分bin的數目;最后,計算每一個bins中的平均樣本個數,即用特征值個數與分bin的數目相除。如果有某一個bins中的個數大于平均樣本個數,就取該值作為bins上限,并選取小于平均樣本個數的第1個值作為bins下限;如果有某一個bins的個數小于平均樣本個數,那么需要對其累加并分組。對類別型的特征用數值進行排序,首先對特征值統計出現的次數,并按從大到小的次序進行排序;然后,和數值型特征一樣,比較最大的分bin個數和去重后的特征值個數,選取更小的那個作為直方圖分bin的數目;最后,將特征值和bin結合起來進行最佳點的劃分。
(9)
對于有空缺值的數據采用折中法,即對于數值類型特征取中位數,如式(10)所示。其中,m為所有不為空值數據的數量,對于分類類型特征取None。
(10)
遍歷每一個類別型特征,對于有某一種類別占該特征總類別數大于70%的特征,認為該特征不具有有效性,刪除該特征不進行訓練。
查看訓練集數據各特征之間的相關性,并對其分析可發現:對于數值型數據(見圖6~8),農機作業面積、農機作業強度以及農機保有量有較強的相關性,即農機作業面積越大、農機作業強度越強、農機保有量越多,所需要的備件量越大,反之亦然,基本符合上文對備件量影響因素的分析。

圖6 農機作業面積與備件量相關性示意圖Fig.6 Schematic diagram of correlation between cultivated area and count

圖7 農機作業強度與備件量相關性示意圖Fig.7 Schematic diagram of correlation between cultivated force and count

圖8 農機保有量與備件量相關性示意圖Fig.8 Schematic diagram of correlation between machinery count and count
類別型數據(見圖9~圖12)分別為氣候因素、地理環境、農機維修次數以及農機工作年限對備件量的影響,可以看出:氣候潮濕、地理環境惡劣、農機維修次數越多,農機工作時間越長,對農機零部件消耗量越大,反之亦然,也符合上文對備件量影響因素的分析。

圖9 氣候因素與備件量相關性示意圖Fig.9 Schematic diagram of correlation between climate and count

圖10 地理環境因素與備件量相關性示意圖Fig.10 Schematic diagram of correlation between environment and count

圖11 農機保養情況與備件量相關性示意圖Fig.11 Schematic diagram of correlation between service cod and count

圖12 農機工作年限與備件量相關性示意圖Fig.12 Schematic diagram of correlation between work life and count
實驗選用1460條備件數據,將農機作業環境、服務點信息以及備件信息三大維度內的多個上述特征作為輸入,將訓練集與測試集以3:1的比例劃分,用LightGBM算法完成對備件量的擬合預測,以均方根誤差RMSE作為評價標準。選用線性回歸、隨機森林、XGBoost算法作為對比驗證,則
(10)
模型驗證結果如表1所示。由表1可以看出:集成學習的算法隨機森林、XGBoost、LightGBM的RMSE值28.63、28.43、27.67遠小于線性回歸的RMSE值41.94,在本問題的求解上有較好的表現;而對比LightGBM與隨機森林、XGBoost,LightGBM的RMSE值27.67比隨機森林和XGBoost的RMSE值28.63和28.43有一定的進步。

表1 模型驗證結果
LightGBM算法的超參數繁多,合理地調整超參數能使模型的預測結果更加精確。因此,將LightGBM的超參數分為兩大類,即核心參數和默認參數。核心參數的調整對于結果的準確性有較大的影響;默認參數使用模型默認的值就可以有很好的效果,故使用默認值,如min_split_gain,min_child_sample,min_child_weight。在此,核心參數被分成根據經驗確定的超參數以及通過算法調優確定的超參數。根據經驗確定的超參數n_estimators迭代次數設置成1000,boosting_type經驗證設置成gbdt在本模型上效果更好。通過算法調優確定的超參數及取值范圍表2所示。

表2 超參數取值范圍
在進行參數調優時,人們常常采用網格搜索法grid search進行尋優。雖然用網格搜索法能找到最高的精確率,但對于像本模型如此大的算例和多維的特征時往往很耗費時間,而使用PSO的群智能啟發算法就可以避免使其遍歷所有的點就可以找到最佳參數。工作時,使用PSO算法對LightGBM參數進行調優。先初始化表2中的LightGBM超參數初始值,將RMSE評價標準作為PSO的適應度函數,不斷更新每個粒子的個體最優值和群體最優值,直到找到使RMSE達到最小的參數,流程如圖13所示。
將上述超參數作為輸入,維數為8,粒子群的種群規模設置為40,最大迭代次數為200,ω慣慣性權重設為0.8,個體記憶c1為0.5,群體記憶c2為0.5,迭代直到找到使RMSE達到最小的參數,結果如表3所示。
通過PSO的超參數尋優求解,得出PSO-LightGBM的RMSE,并用貝葉斯優化算法Bayesian Optimization參數調優作為對照,結果如表4所示。

圖13 PSO-LightGBM流程圖Fig.13 PSO-LightGBMflow chart

表3 PSO-LightGBM超參數尋優結果Table 3 PSO-LightGBM hyper-parameter results

表4 模型驗證對照表

續表4
表4中,對比LightGBM和BO-LightGBM、PSO-LightGBM,可以看出:BO-LightGBM、PSO-LightGBM的RMSE值25.84和24.74小于LightGBM的27.67。通過超參數調優后,LightGBM算法的RMSE值有明顯的降低,大大提高了LightGBM算法的精度。
對比可知:BO-LightGBM的RMSE值24.74小于PSO-LightGBM的RMSE值25.84。因此,使用PSO調優的結果比貝葉斯優化的結果更好。
根據農機在服務網點備件配置預測不準確導致農機服務資源備件浪費的問題,提出了一種基于改進LightGBM的農機服務資源的備件預測方法。確定了農機作業環境信息、服務點信息以及備件信息三大維度內的多個特征,驗證了影響農機服務資源需求量的主要影響因素。基于LightGBM建立了農機服務資源備件預測模型,并使用PSO算法對模型的超參數進行調優。實驗驗證表明:與隨機森林、XGBoost等算法相比,LightGBM模型有更好的效果,RMSE值為27.67。通過PSO的超參數調優,LightGBM備件預測的精確性更進一步,RMSE值為24.74,能夠較為準確地預測農機服務資源在服務網點的備件需求。今后,在獲得更多精準數據的基礎上,將會不斷優化該算法模型,主要方向是提升算法的優化速度。