葉斌,劉杰平,徐金亞
(成都東軟學(xué)院,四川成都 611844)
在第四十七次《中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》中顯示,中國(guó)的網(wǎng)購(gòu)用戶已接近八億,并且中國(guó)已連續(xù)多年成為全球最大的網(wǎng)上零售消費(fèi)國(guó)。而網(wǎng)購(gòu)過(guò)程中快遞延遲等問(wèn)題也越來(lái)越突出[1]。
根據(jù)王連震等在“大學(xué)校園快遞服務(wù)滿意度結(jié)構(gòu)方程模型”論文中的調(diào)查分析,在網(wǎng)絡(luò)購(gòu)物中,快遞的可靠性即在論文中所研究的快遞能否及時(shí)到達(dá)的問(wèn)題,是客戶非常關(guān)注的問(wèn)題,其會(huì)對(duì)用戶的滿意度造成很大的影響[2-3]。甚至因?yàn)榭爝f延遲而給商家差評(píng)的占比達(dá)六成以上,充分說(shuō)明無(wú)論是商家、快遞公司或客戶,對(duì)快遞延遲都是非常關(guān)注的。
在現(xiàn)代快遞企業(yè)中,對(duì)貨物的運(yùn)輸時(shí)間控制會(huì)直接影響到客戶關(guān)系的管理、供應(yīng)鏈的管理和運(yùn)輸決策。如果能提前實(shí)現(xiàn)對(duì)貨運(yùn)時(shí)間的把握,并引用預(yù)警機(jī)制,對(duì)解決當(dāng)前物流行業(yè)中的客戶糾紛、建立企業(yè)的良好信譽(yù)以及調(diào)整運(yùn)輸策略有著重大意義[4]?;诖耍撐膶⒔柚^為成熟的神經(jīng)網(wǎng)絡(luò),對(duì)快遞延遲原因進(jìn)行探究,實(shí)現(xiàn)對(duì)延遲時(shí)間的預(yù)測(cè)。
傳統(tǒng)的原因分析一般是根據(jù)以往的成功經(jīng)驗(yàn),對(duì)企業(yè)中現(xiàn)有的原始資料加以分析,但當(dāng)企業(yè)面臨一個(gè)多變的市場(chǎng),或者面臨著眾多的目標(biāo)顧客時(shí),就常常變得力不從心,而智能預(yù)警也無(wú)法起到其應(yīng)有的效果。究其根本原因,就是企業(yè)無(wú)法高效地收集足夠的數(shù)據(jù),也無(wú)法全面地剖析整個(gè)物流活動(dòng)中所涉及的所有原因。而在當(dāng)今信息量日益擴(kuò)大的信息時(shí)代,獲取數(shù)據(jù)、整合數(shù)據(jù)、解析數(shù)據(jù)的復(fù)雜過(guò)程是傳統(tǒng)的信息處理技術(shù)手段所無(wú)法實(shí)現(xiàn)的。而大數(shù)據(jù)分析等信息技術(shù)的誕生,給真正實(shí)用的物流智能預(yù)警系統(tǒng)發(fā)展帶來(lái)了契機(jī)。其基本模型如圖1所示。
圖1 基于大數(shù)據(jù)快遞延遲預(yù)測(cè)模型
模型主要包括了數(shù)據(jù)收集、數(shù)據(jù)儲(chǔ)存、大數(shù)據(jù)運(yùn)算、數(shù)據(jù)分析應(yīng)用四大階段[5]。在數(shù)據(jù)收集階段,主要利用交通、氣象等公共服務(wù)的網(wǎng)絡(luò)平臺(tái),通過(guò)使用爬蟲(chóng)等手段就能有效收集關(guān)鍵數(shù)據(jù),并利用數(shù)據(jù)收集接口完成數(shù)據(jù)收集[6];數(shù)據(jù)源包括亞馬遜的ETL Manager 及Redshift 數(shù)據(jù)倉(cāng)庫(kù)、阿里天池系統(tǒng)以及彩云科技天氣數(shù)據(jù)API。
在數(shù)據(jù)保存階段,把數(shù)據(jù)分成了結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù),使用了不同數(shù)據(jù)的存儲(chǔ)技術(shù),并分別存放在SQL、Hadoop 服務(wù)器中;在數(shù)據(jù)計(jì)算階段,通過(guò)實(shí)時(shí)的數(shù)據(jù)計(jì)算匯總,并進(jìn)行標(biāo)準(zhǔn)化處理,為下一步數(shù)據(jù)應(yīng)用做準(zhǔn)備;最后,在數(shù)據(jù)應(yīng)用階段,主要將標(biāo)準(zhǔn)化的數(shù)據(jù)連接到已訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型中進(jìn)行計(jì)算,并輸出直觀的結(jié)果,實(shí)現(xiàn)快遞延遲預(yù)測(cè)。
經(jīng)過(guò)問(wèn)卷分析與網(wǎng)絡(luò)調(diào)查,結(jié)合隨機(jī)森林的分類(lèi)算法[7],對(duì)指標(biāo)進(jìn)行分析,實(shí)現(xiàn)特征的優(yōu)化與量化。分析樣本中影響延時(shí)的原因,相對(duì)集中的因素主要有運(yùn)輸距離、沿途主要天氣、客戶要求送達(dá)的時(shí)間、所到達(dá)地區(qū)。這些因素較廣地覆蓋了以上分析的7 大因素;同時(shí),減小了分析指標(biāo),運(yùn)算量相對(duì)較小,更有利于模型的應(yīng)用。最后選取的指標(biāo)體系如表1所示。
表1 優(yōu)化后的分析指標(biāo)描述與量化
在表1 中,運(yùn)輸距離方面,小于100 km,一般為市內(nèi)運(yùn)輸;大于100 km 且小于500 km,主要表示跨市運(yùn)輸;大于500 km 且小于1 000 km,主要表示跨省運(yùn)輸;大于1 000 km,則為超遠(yuǎn)距離運(yùn)輸。要求時(shí)間指標(biāo)中,時(shí)間為周二至周五,且無(wú)重大節(jié)假日,一般此時(shí)段為正常貨運(yùn)時(shí)間;周一有一定特殊性,一般為貨運(yùn)較為集中的時(shí)間;周六與周日,由于客戶外出,或休假造成延時(shí)的可能性較大;重大節(jié)假日中,由于客戶外出,或休假造成延時(shí)的可能性較大;天氣狀況指標(biāo)中,分為較好,即溫度適中,天氣晴朗或多云等正常狀況;一般,即小雨或小霧,中低溫或中高溫天氣等稍差天氣;較差,即為偶遇大雨、大霧、大風(fēng)雪,雷電等惡劣天氣。每一種定量值代表這個(gè)分析所對(duì)應(yīng)的一種狀態(tài),雖然定量值有相同的,但代表的是神經(jīng)網(wǎng)絡(luò)的不同輸入層的值,因而相互不受影響。
在BP 神經(jīng)網(wǎng)絡(luò)的延時(shí)預(yù)測(cè)模型接口中,輸入層的四個(gè)信號(hào)輸入指標(biāo)在開(kāi)始訓(xùn)練前就應(yīng)該經(jīng)過(guò)歸一化處理過(guò)程,使之在[0,1]之間。其預(yù)期輸出數(shù)值即是實(shí)際延遲值,作為測(cè)量誤差的關(guān)鍵數(shù)據(jù),來(lái)自于樣本所對(duì)應(yīng)的實(shí)際延遲時(shí)間,并同樣對(duì)延遲的時(shí)間進(jìn)行了歸一化處理。處理的方法為將預(yù)定到達(dá)時(shí)間除以實(shí)到達(dá)時(shí)間,得到的值是一個(gè)小于1 的小數(shù),所得的值越大則表示延遲率小,反之,則表示延遲時(shí)間越長(zhǎng)。同時(shí),也滿足了歸一化的要求。用T表示實(shí)際運(yùn)輸時(shí)間,用H表示預(yù)期運(yùn)輸時(shí)間,則其延遲率F的計(jì)算公式為:
在對(duì)樣本處理時(shí),對(duì)一些不符合要求的樣本進(jìn)行了剔除。例如,在現(xiàn)實(shí)生活中,實(shí)際到達(dá)時(shí)間有時(shí)會(huì)比預(yù)定時(shí)間短,這時(shí)不存在延遲的情況,在樣本選擇時(shí)將這部分進(jìn)行了剔除。
為更準(zhǔn)確地實(shí)現(xiàn)預(yù)測(cè),并達(dá)到對(duì)預(yù)測(cè)模型的最優(yōu)化,文中應(yīng)用遺傳算法(Genetic Algorithms)對(duì)BP 神經(jīng)網(wǎng)絡(luò)進(jìn)行了優(yōu)化設(shè)計(jì)。其基本流程如圖2 所示。
在圖2 中,左邊部分自上而下的流程主要是遺傳算法優(yōu)化過(guò)程,右邊部分自下而上的過(guò)程主要為BP 神經(jīng)網(wǎng)絡(luò)的執(zhí)行過(guò)程。在遺傳算法設(shè)計(jì)優(yōu)化流程中,其技術(shù)重點(diǎn)包括群體建立、對(duì)個(gè)體的適合度估計(jì)、選擇性控制以及交叉與突變的控制,其主要過(guò)程或計(jì)算方法如下:
圖2 基于GA-BP的神經(jīng)網(wǎng)絡(luò)計(jì)算流程圖
1)群體的初始化流程
將所有個(gè)體編號(hào)為一組實(shí)數(shù),使所有的個(gè)體都形成了一條實(shí)數(shù)串,由以下四個(gè)部分構(gòu)成:輸入層、隱蔽層相互之間的鏈接系統(tǒng)數(shù)、隱蔽層的閾值函數(shù)、隱蔽層和輸入輸出層相互鏈接系數(shù)值,輸入輸出層閾值函數(shù)。個(gè)體已經(jīng)具備了神經(jīng)網(wǎng)絡(luò)系統(tǒng)所有的權(quán)值與閾值,能夠形成一種由整體結(jié)構(gòu)、權(quán)值以及閾值組成的神經(jīng)網(wǎng)絡(luò)系統(tǒng)[8]。
2)訓(xùn)練誤差值計(jì)算
BP 神經(jīng)網(wǎng)絡(luò)系統(tǒng)訓(xùn)練誤差值的估計(jì)十分關(guān)鍵,因?yàn)樗苯記Q定著對(duì)個(gè)體適應(yīng)性度分配的值,在測(cè)算神經(jīng)網(wǎng)絡(luò)系統(tǒng)的初始權(quán)重和閾值時(shí),用訓(xùn)練數(shù)據(jù)訓(xùn)練BP 神經(jīng)網(wǎng)絡(luò)后再計(jì)算整個(gè)系統(tǒng)的輸出,個(gè)體的適應(yīng)性度分配值F的計(jì)算公式為[9]:
式中,k是系數(shù),第i個(gè)節(jié)點(diǎn)的期望輸出用yi表示,i個(gè)節(jié)點(diǎn)的實(shí)際輸出用oi表示,n為輸出層的數(shù)目。
3)選擇操作
選擇操作的方法很多,例如常見(jiàn)的錦標(biāo)賽算法、輪盤(pán)賭算法等。該文選取的是輪盤(pán)賭算法,其主要基于適應(yīng)度比例的選擇方式,在計(jì)算過(guò)程中,個(gè)體i的選擇概率值pi計(jì)算公式如下:
式中,個(gè)體i的適應(yīng)度用fi表示,系數(shù)是k;種群r的個(gè)體數(shù)量用N表示,在個(gè)體選擇之前,對(duì)適應(yīng)度求倒數(shù),以便使適應(yīng)度的值更小。
4)交叉操作
關(guān)于對(duì)個(gè)體的編號(hào)問(wèn)題,要獲得最優(yōu)個(gè)體,必須對(duì)個(gè)體采用實(shí)數(shù)編碼,在交叉操作中,可以使用實(shí)數(shù)交叉法,第k個(gè)染色體ak和第一個(gè)染色體al在j位的計(jì)算方法如下:
式中,b是[0,1]之間的隨機(jī)數(shù)。
5)變異操作
對(duì)第i個(gè)個(gè)體的第j個(gè)基因aij進(jìn)行變異,其計(jì)算公式如下:
式中,amax表示基因aij的最大值;amin表示基因的最小值;f(g)作為一個(gè)隨機(jī)數(shù);g表示迭代次數(shù);Gmax表示最大的進(jìn)化次數(shù);r為在[0,1]之間生成的隨機(jī)數(shù)。
該文所使用的BP 神經(jīng)網(wǎng)絡(luò)計(jì)算是多層前饋神經(jīng)網(wǎng)絡(luò),原因是它能夠在非線性連續(xù)函數(shù)問(wèn)題計(jì)算中,更有效地處理隱藏層的連接權(quán)值調(diào)節(jié)問(wèn)題[10]。BP 神經(jīng)網(wǎng)絡(luò)模塊的拓?fù)錁?gòu)造基本分為三級(jí),分別是輸入層、隱藏層、輸出層。
根據(jù)上文的分析,作為輸入層的指標(biāo)為“運(yùn)輸距離”、“運(yùn)輸?shù)貐^(qū)”、“要求時(shí)間”、“天氣狀況”四項(xiàng),輸入層設(shè)計(jì)如圖3 所示。
圖3 輸入層設(shè)計(jì)
針對(duì)輸入層的數(shù)據(jù),其線性變換公式為:
其作用為計(jì)算出與下一層節(jié)點(diǎn)的連接參數(shù)及偏置值。
同時(shí)為了使隱層具備真實(shí)分類(lèi)函數(shù)的能力,使用的激活函數(shù)Sigmoid 為:
網(wǎng)絡(luò)中輸出層系數(shù)的計(jì)算方法為:
隱藏層的權(quán)值系數(shù)計(jì)算方法為:
其中,最基礎(chǔ)的機(jī)器學(xué)習(xí)原理就是運(yùn)用梯度下降法則,運(yùn)用反方向傳播促進(jìn)并持續(xù)調(diào)整網(wǎng)絡(luò)系統(tǒng)的權(quán)重和閾值,使其進(jìn)一步優(yōu)化,同時(shí)使網(wǎng)絡(luò)系統(tǒng)中的誤差平方和最小化。
輸出層的“延遲率”、隱藏層的數(shù)量和問(wèn)題的求解對(duì)應(yīng)輸入輸出的要求以及單元的數(shù)量,關(guān)系非常密切[10]。其經(jīng)驗(yàn)計(jì)算公式為[11]:
式中,m和n分別代表輸入數(shù)量和輸出數(shù)量;L代表隱藏層的數(shù)量,在不同的網(wǎng)絡(luò)設(shè)計(jì)中,可依據(jù)設(shè)定精度和收斂速度的不同進(jìn)行調(diào)整[12]。
主要代碼及算法步驟為:
根據(jù)上文中經(jīng)驗(yàn)公式(12),能計(jì)算出隱藏層的數(shù)量。通過(guò)計(jì)算,可以得出在不同隱層數(shù)時(shí)其實(shí)際訓(xùn)練步數(shù)和最大誤差。當(dāng)設(shè)計(jì)的學(xué)習(xí)精度為0.01時(shí),分析隱藏層的數(shù)量,其計(jì)算結(jié)果如表3 所示。
表3 隱藏層數(shù)量對(duì)應(yīng)誤差、步數(shù)
通過(guò)結(jié)過(guò)分析可知,在隱層數(shù)為3 時(shí),相對(duì)誤差較小,且訓(xùn)練步數(shù)最小。
通過(guò)Matlab 的神經(jīng)網(wǎng)絡(luò)訓(xùn)練工具箱進(jìn)行cart 決策回歸訓(xùn)練,在文中充分考慮隱藏層數(shù)目后,后續(xù)重點(diǎn)考慮訓(xùn)練的精度及穩(wěn)定性以及學(xué)習(xí)速率[14]。通過(guò)對(duì)比不同方法,該文采用能夠進(jìn)行自適應(yīng)調(diào)整學(xué)習(xí)速率的梯度下降法[13],設(shè)定的學(xué)習(xí)速率是lr=0.06。
學(xué)習(xí)過(guò)程圖如圖4 所示。
圖4 學(xué)習(xí)過(guò)程圖
對(duì)程序結(jié)果進(jìn)行歸納,部分?jǐn)?shù)據(jù)訓(xùn)練結(jié)果如表4所示。
表4 部分樣本訓(xùn)練結(jié)果
通這對(duì)測(cè)試樣本的分析,當(dāng)隱藏層神經(jīng)元數(shù)目為3時(shí),最大誤差值是0.041 5,最小誤差值是0.001 0,能夠保持在0.11%~4.03%之間。從結(jié)果來(lái)看,該樣本模型較好地滿足了對(duì)快遞延時(shí)的精度需求,充分表明該預(yù)測(cè)模型具備一定的可行性和有效性。
不同的算法模型可能會(huì)在不同行業(yè),針對(duì)不同數(shù)據(jù)有不同的適應(yīng)性,準(zhǔn)確率不一定對(duì)所有行業(yè)或數(shù)據(jù)有效,為了驗(yàn)證該文算法對(duì)物流快遞數(shù)據(jù)的適應(yīng)性和預(yù)測(cè)的準(zhǔn)確性,文中將BP 神經(jīng)網(wǎng)絡(luò)、基于GA的優(yōu)化算法、支持向量機(jī)[15]及cart 決策回歸樹(shù)[16]四種方法的結(jié)果進(jìn)行對(duì)比,平均準(zhǔn)確率數(shù)據(jù)如表5 所示。
表5 不同算法預(yù)測(cè)準(zhǔn)確率對(duì)比
通過(guò)表中的數(shù)據(jù)顯示,在數(shù)據(jù)樣本較少的情況下,各算法表現(xiàn)差別不大,當(dāng)數(shù)據(jù)樣本較多時(shí),該文所采用的基于GA 的優(yōu)化算法平均準(zhǔn)確率較高。
通過(guò)訓(xùn)練結(jié)果和不同算法對(duì)比可以看出,該文所運(yùn)用的GA 優(yōu)化神經(jīng)網(wǎng)絡(luò)算法的預(yù)測(cè)模型能對(duì)貨運(yùn)延遲進(jìn)行較為準(zhǔn)確地預(yù)測(cè)。從而在實(shí)際應(yīng)用中,在大數(shù)據(jù)環(huán)境下,可以在物流決策系統(tǒng)中引入預(yù)警機(jī)制,提前作出決策或是通知客戶,使物流決策系統(tǒng)更完善,能有效地緩解由于延時(shí)而導(dǎo)致客戶關(guān)系緊張等問(wèn)題。
在大數(shù)據(jù)環(huán)境下,該模型也能作為電子商務(wù)系統(tǒng)的有力支持,使客戶和商家以及物流公司對(duì)貨物實(shí)現(xiàn)有效地監(jiān)控。