文/黃成明 胡堅
隨著“互聯(lián)網(wǎng)+”的不斷發(fā)展,農(nóng)產(chǎn)品電商發(fā)展迅速。但當(dāng)前農(nóng)產(chǎn)品冷鏈物流面臨調(diào)度效率低下問題,這不但對企業(yè)效益造成損失,還會引發(fā)農(nóng)產(chǎn)品健康安全問題,如何提升農(nóng)產(chǎn)品冷鏈物流智能化程度,是全社會亟需解決的問題。針對上述問題,本文提出了一種基于改進(jìn)GBDT(Gradient Boosting Decision Tree,梯度提升決策樹)算法的農(nóng)產(chǎn)品冷鏈物流資源需求預(yù)測模型,創(chuàng)新性的提出了一種新的-Huber損失函數(shù),能在提高收斂速度的同時,降低對異常值的懲罰,從而提高預(yù)測精度。通過實驗證明該模型能對物流節(jié)點的需求進(jìn)行精準(zhǔn)預(yù)測。
近年來,隨著消費(fèi)升級步伐的加快,農(nóng)產(chǎn)品質(zhì)量的新鮮與健康,成為消費(fèi)者對農(nóng)產(chǎn)品選購的主要要求。而傳統(tǒng)以地區(qū)為主的農(nóng)產(chǎn)品運(yùn)輸、銷售與保存模式,會在基礎(chǔ)物流環(huán)節(jié)損失25%~30%的經(jīng)濟(jì)利益,大量保鮮期短的肉類、含水量高的蔬果等農(nóng)產(chǎn)品在物流運(yùn)輸過程中腐爛變質(zhì),對廣大人民的利益造成損失、健康造成威脅。在此背景下,農(nóng)產(chǎn)品流通對冷鏈物流的要求和依賴越來越高。在引入專業(yè)的農(nóng)產(chǎn)品冷鏈物流儲藏設(shè)備的基礎(chǔ)上,還要不斷研發(fā)新技術(shù),不斷形成與優(yōu)化冷鏈物流建設(shè)體系,以保障農(nóng)產(chǎn)品在物流運(yùn)輸中的新鮮、健康與安全。
隨著近年來移動互聯(lián)網(wǎng)的崛起和大數(shù)據(jù)技術(shù)的發(fā)展,在房價預(yù)測、各電商平臺銷售額預(yù)測、電影票房預(yù)測、人口增長分析等問題上預(yù)測算法具有很高的預(yù)測精確度和泛化能力。當(dāng)前,在需求預(yù)測上主要采用的算法有線性回歸、時間序列算法、BP神經(jīng)網(wǎng)絡(luò)算法、GBDT算法等。而GBDT算法在實際應(yīng)用中由于表現(xiàn)出突出的預(yù)測精確度和泛化能力,被業(yè)界使用最為廣泛,在改進(jìn)GBDT算法方面的相關(guān)研究也一直在進(jìn)行。有研究者提出了一種改進(jìn)GBDT算法,即使用多棵決策樹和Boosting算法結(jié)合彌補(bǔ)單棵決策樹算法的缺陷,有效的提升了分類的精確[1];貴州大學(xué)電氣工程學(xué)院的學(xué)者基于LightGBM梯度提升框架結(jié)合histogram決策樹算法尋找決策樹的最優(yōu)分割點應(yīng)用于短期負(fù)荷預(yù)測和數(shù)據(jù)挖掘領(lǐng)域,有效提高了預(yù)測精度和運(yùn)行速度[2];華北電力大學(xué)的研究者將灰色投影法和GBDT算法結(jié)合創(chuàng)造了PG相似日選法用于解決在天氣因素導(dǎo)致的光伏發(fā)電功率預(yù)測不準(zhǔn)確問題,同時提升了算法的預(yù)測精度和防止過擬合的能力[3];廣西大學(xué)的研究者提出了一種在隨機(jī)森林算法和GBDT算法的基礎(chǔ)上構(gòu)建的RF-GB算法,并與多因子模型相結(jié)合,一定程度上提升了GBDT算法的性能[4]。
梯度提升樹GBDT算法屬于集成學(xué)習(xí),是擬合殘差作為提升樹,并將多個弱學(xué)習(xí)器進(jìn)行線性組合的加法模型。而在基學(xué)習(xí)器的選取上,梯度提升樹GBDT算法以決策樹作為基分類器,而其中C4.5、ID3、CART是三種較為常見的決策樹算法,且由于CART(Classification and Regression Tree)算法具有無需進(jìn)行特征標(biāo)準(zhǔn)化、可以不必計算特征之間的相關(guān)性而自動挑選特征進(jìn)行訓(xùn)練,故通常以CART算法作為GBDT算法的基學(xué)習(xí)器。CART回歸樹的生成過程是以損失函數(shù)的最小化為衡量標(biāo)準(zhǔn),假定數(shù)據(jù)集為
其中和分別表示樣本空間中的輸入和輸出變量。我們將樣本空間分為訓(xùn)練集和測試集后,遞歸地將訓(xùn)練數(shù)據(jù)集的輸入空間劃分為兩個子區(qū)域,計算每個子區(qū)域的輸出值,構(gòu)建出一顆決策樹。在這個過程中,通常以平方損失函數(shù)作為選擇最優(yōu)切分變量j與切分點s的依據(jù),通過求解:
其中,c1、c2分別為訓(xùn)練數(shù)據(jù)集的兩個子區(qū)域R1、R2的均值。找到使式(1)取最小值的參數(shù)(j,s),即為最優(yōu)的切分變量j與切分點s。使用(j,s)進(jìn)行區(qū)域劃分并計算對應(yīng)的子區(qū)域的輸出值,迭代這個過程,直到達(dá)到誤差最小或樹的深度滿足停止條件時結(jié)束,最終生成決策回歸樹。GBDT算法首先初始化弱學(xué)習(xí)器,再對每個樣本計算負(fù)梯度即殘差,并將殘差作為樣本新的真實值構(gòu)成新的訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練,由此得到一棵新的回歸樹。由于GBDT算法在迭代過程中擬合的是負(fù)梯度,所以使用CART回歸樹作為基學(xué)習(xí)器。然后對該回歸樹葉子區(qū)域計算最佳擬合值并更新強(qiáng)學(xué)習(xí)器得到最終學(xué)習(xí)器。最終學(xué)習(xí)器表達(dá)式為決策樹的加法模型:
其中f(x)為梯度提升樹函數(shù)表達(dá)式;I為決策回歸樹函數(shù)表達(dá)式,由擬合殘差計算得到;Rm為樣本空間;cm為樣本空間中輸入樣本xi對應(yīng)的輸出yi的均值;M為決策回歸樹的棵數(shù)。GBDT是一種提升思想的算法,可以應(yīng)用于分類問題和回歸問題。在實際中采用此算法時主要有三個難點問題,第一是每次學(xué)習(xí)得到一個基學(xué)習(xí)器后,在下一次迭代前需要考慮改變樣本的權(quán)重;第二是如何計算基學(xué)習(xí)器的權(quán)重并累加成為強(qiáng)學(xué)習(xí)器;第三是如何選取合適的損失函數(shù)。本文主要解決第三個問題,提出一種改進(jìn)的損失函數(shù)以提升GBDT算法的預(yù)測精度。
為了提高算法的魯棒性,降低異常值對損失函數(shù)的影響,1964年P(guān).J.Huber等人提出了Huber損失函數(shù),其定義如下:
其中參數(shù)δ是一個非負(fù)數(shù),當(dāng)樣本值和預(yù)測值之差的絕對值即殘差小于該參數(shù)時,Huber損失函數(shù)即為平方損失函數(shù),當(dāng)殘差大于等于該參數(shù)時,Huber損失函數(shù)即為平均絕對誤差,這是兩個常用的損失函數(shù)的表達(dá)形式。因此,Huber損失函數(shù)兼具了兩者的優(yōu)點。本文基于γ-Huber損失函數(shù)改進(jìn)GBDT算法,即在構(gòu)建GBDT算法的決策回歸樹的過程中,使用γ-Huber損失函數(shù)作為選擇最優(yōu)切分變量j與切分點s的依據(jù)。此時,在式(1)所表示的數(shù)據(jù)集下,我們需要求解表達(dá)式(6):
通過式(6)求得最優(yōu)切分變量j與切分點s,生成GBDT算法中的決策回歸樹。
本文將在農(nóng)產(chǎn)品冷鏈物流的資源需求預(yù)測上使用基于-Huber損失函數(shù)的改進(jìn)GBDT算法。通過采集物流節(jié)點的農(nóng)產(chǎn)品冷鏈物流歷史數(shù)據(jù),進(jìn)行數(shù)據(jù)清洗、特征工程、建立模型、需求預(yù)測等步驟,對物流節(jié)點未來一段時間內(nèi)的資源需求進(jìn)行預(yù)測分析。本文通過爬蟲等多種方式采集了某物流節(jié)點馬鈴薯產(chǎn)品相關(guān)數(shù)據(jù),數(shù)據(jù)集包含了疫情狀況、產(chǎn)品價格、產(chǎn)量、氣候、歷年各月份產(chǎn)品物流量等數(shù)據(jù)。其中歷年各月份產(chǎn)品物流量數(shù)據(jù)作為數(shù)據(jù)集中的標(biāo)簽數(shù)據(jù),在數(shù)據(jù)清洗階段我們?nèi)《鄠€年份的產(chǎn)品物流量數(shù)據(jù)的平均值作為標(biāo)簽數(shù)據(jù)。為了驗證本文提出方法的有效性,本文在構(gòu)建GBDT算法的決策回歸樹過程中使用-Huber損失函數(shù)并取不同的值進(jìn)行實驗,實驗獲得參數(shù)γ取不同值時GBDT算法的預(yù)測準(zhǔn)確率如表1所示。
表1參數(shù)取不同值時GBDT算法的預(yù)測準(zhǔn)確率
在具有相同的決策回歸樹深度時,實驗結(jié)果表明,-Huber損失函數(shù)改進(jìn)GBDT算法在預(yù)測效果上有較高的預(yù)測準(zhǔn)確率,且隨著參數(shù)的取值不同而略有不同,在參數(shù)取值為1時具有較好的預(yù)測效果。
我們在本文中提出了一種新的可以降低傳統(tǒng)平方損失函數(shù)懲罰的-Huber損失函數(shù)并基于此損失函數(shù)對GBDT算法進(jìn)行了改進(jìn)。通過采集冷鏈物流節(jié)點的物流商品數(shù)據(jù),并利用基于-Huber損失函數(shù)的改進(jìn)GBDT算法對數(shù)據(jù)進(jìn)行訓(xùn)練。最后算法模型預(yù)測結(jié)果顯示,基于-Huber損失函數(shù)的改進(jìn)GBDT算法在有異常值的情況下能明顯降低損失函數(shù)對異常值的懲罰強(qiáng)度且具有更優(yōu)的預(yù)測效果和算法魯棒性。