謝大鋒,安 騰,霍鵬敏
(北京經(jīng)緯信息技術(shù)有限公司, 北京 100081)
隨著鐵路大提速的實(shí)施以及貨運(yùn)組織和服務(wù)水平的提升,運(yùn)輸企業(yè)對(duì)貨運(yùn)分析內(nèi)容的多樣性、實(shí)時(shí)性和準(zhǔn)確性提出了更高的要求。為了滿足分析需求,2018年鐵路貨物運(yùn)輸承運(yùn)制清算正式實(shí)施。鐵路貨物運(yùn)輸建立了收入來自市場(chǎng)、服務(wù)定價(jià)補(bǔ)償、公正透明的清算體系,明晰運(yùn)輸企業(yè)之間的經(jīng)濟(jì)利益關(guān)系[1-2]。
鐵路貨運(yùn)承運(yùn)制清算中工作量數(shù)據(jù)與收入數(shù)據(jù)采用制票日期與貨票號(hào)碼進(jìn)行匹配,匹配成功貨票直接進(jìn)行清算,未匹配成功貨票則認(rèn)定為未到達(dá)貨票,即收入部門已核算收入,但貨物仍在運(yùn)輸途中的貨票?,F(xiàn)行的貨運(yùn)清算系統(tǒng)只能實(shí)現(xiàn)對(duì)已到達(dá)貨票的清算,而未到達(dá)貨票由于缺失實(shí)際徑路和工作量信息,無法實(shí)現(xiàn)對(duì)其的清算。由于鐵路貨物承運(yùn)制清算剛剛起步,針對(duì)未到達(dá)貨票的承運(yùn)制清算預(yù)測(cè)研究尚少。為促進(jìn)大數(shù)據(jù)在我國鐵路行業(yè)的落地生效,充分展現(xiàn)貨運(yùn)數(shù)據(jù)價(jià)值[3-4],對(duì)未到達(dá)貨票的分析和預(yù)測(cè)已成為整個(gè)貨運(yùn)承運(yùn)清算工作必不可少的一環(huán)。
本文旨在構(gòu)建基于大數(shù)據(jù)的未到達(dá)貨票清算預(yù)測(cè)平臺(tái),通過對(duì)貨票歷史數(shù)據(jù)的分析建模,結(jié)合專家經(jīng)驗(yàn)和人工處理,對(duì)未到達(dá)貨票進(jìn)行承運(yùn)制清算預(yù)測(cè),使得運(yùn)輸企業(yè)可較為精確掌握本月本企業(yè)營收情況,為后續(xù)業(yè)務(wù)開展和經(jīng)營決策及時(shí)提供數(shù)據(jù)基礎(chǔ)和決策支持[5-6]。
k近鄰(k-NN ,k-Nearest Neighbor)算法是1967年由Cover T和Hart P提出的一種基本分類與回歸方法,工作原理是:存在一個(gè)樣本數(shù)據(jù)集合,也稱作訓(xùn)練樣本集,并且樣本集中每個(gè)數(shù)據(jù)都存在標(biāo)簽,即樣本集中每一個(gè)數(shù)據(jù)與所屬分類的對(duì)應(yīng)關(guān)系。輸入沒有標(biāo)簽的新數(shù)據(jù)后,將新數(shù)據(jù)的每個(gè)特征與樣本集中數(shù)據(jù)對(duì)應(yīng)的特征進(jìn)行比較,然后提取樣本最相似數(shù)據(jù)(最近鄰)的分類標(biāo)簽。一般只選擇樣本數(shù)據(jù)集中前k個(gè)最相似的數(shù)據(jù)作為分類參考,這就是k-NN算法中k的出處,通常k是不大于20的整數(shù)。
新數(shù)據(jù)分類過程如圖1所示,其中綠色圓圈為未知類的新數(shù)據(jù),若設(shè)定k=3,由于紅色三角形所占比例為2/3,則新數(shù)據(jù)被賦予紅色三角形類;若k=5,由于藍(lán)色四方形所占比率為3/5,則新數(shù)據(jù)被賦予藍(lán)色四方形類。
圖1 k-NN算法分類示意圖
(2)設(shè)計(jì)1個(gè)數(shù)據(jù)結(jié)構(gòu),使算法能夠以線性的時(shí)間查找1個(gè)點(diǎn)的最鄰近點(diǎn)集。在1個(gè)樣本個(gè)數(shù)為n的有序序列中二分查找1個(gè)元素,理論上只需要進(jìn)行l(wèi)og n次查找,故此二分查找的時(shí)間復(fù)雜度為O(logn)。因此若將已到達(dá)貨票歷史數(shù)據(jù)樣本點(diǎn)構(gòu)建成1顆二叉樹,則查詢時(shí)間可控制在O(log n)。
如圖2所示,在數(shù)據(jù)空間中隨機(jī)選擇2個(gè)樣本點(diǎn),以這2個(gè)節(jié)點(diǎn)為初始中心節(jié)點(diǎn),執(zhí)行聚類數(shù)為2的k均值聚類算法,最終產(chǎn)生收斂后的2個(gè)聚類中心點(diǎn)。這2個(gè)聚類中心點(diǎn)之間連1條線段(灰色短線),建立1條垂直于這條灰線,并且通過灰線中心點(diǎn)的線(黑色粗線)。這條黑色粗線把數(shù)據(jù)空間分成2部分,在多維空間中這條黑色粗線就是超平面。
在進(jìn)行貨運(yùn)承運(yùn)制清算未到達(dá)貨票預(yù)測(cè)時(shí),采用已到達(dá)貨票的歷史數(shù)據(jù)作為訓(xùn)練樣本集。將未到達(dá)貨票中的收入信息與貨票信息相結(jié)合,并選擇制票站、發(fā)車站、到達(dá)站、運(yùn)輸類別、貨物品類、貨物重量等信息作為標(biāo)簽,進(jìn)行新數(shù)據(jù)和樣本集中數(shù)據(jù)對(duì)應(yīng)特征的匹配。本文選取10作為k-NN算法中的k值,將10個(gè)最相似數(shù)據(jù)中出現(xiàn)次數(shù)最多的分類,作為新數(shù)據(jù)的分類[7]
k-NN算法模型構(gòu)建的目的是要在一個(gè)空間內(nèi)找到一個(gè)已知點(diǎn)的最近鄰集合。算法模型構(gòu)建的過程如下。
(1)構(gòu)建一個(gè)具有大量數(shù)據(jù)樣本的多維空間,本文中已到達(dá)貨票歷史數(shù)據(jù)就是多維空間的構(gòu)建基礎(chǔ)。
圖2 數(shù)據(jù)空間劃分示意圖
(3)按照步驟(2)在每個(gè)子集上進(jìn)行迭代劃分,直到每個(gè)節(jié)點(diǎn)最多剩下k個(gè)樣本點(diǎn),形成完整二叉樹結(jié)構(gòu),如圖3所示。
圖3 k-NN算法的完整二叉樹示意圖
(4)遍歷二叉樹,查找鄰近點(diǎn)。
二叉樹的每個(gè)中間節(jié)點(diǎn)(圖3中方形節(jié)點(diǎn))用超平面來定義,因此能夠計(jì)算出該節(jié)點(diǎn)的遍歷方向。搜索一個(gè)節(jié)點(diǎn)能夠在logn時(shí)間內(nèi)完成,正好是二叉樹的高度,節(jié)點(diǎn)查找過程如圖4所示。
圖4 k-NN算法節(jié)點(diǎn)查找示意圖
Hadoop目前已成為公認(rèn)的大數(shù)據(jù)處理領(lǐng)域的標(biāo)準(zhǔn),可滿足大數(shù)據(jù)的各種技術(shù)需求[8]。本文通過建立基于大數(shù)據(jù)的未到達(dá)貨票清算預(yù)測(cè)平臺(tái),達(dá)到分析、預(yù)測(cè)未到達(dá)貨票數(shù)據(jù)的目的。
大數(shù)據(jù)平臺(tái)的技術(shù)架構(gòu)分為3層:數(shù)據(jù)層、模型層和展示層,如圖5所示。
圖5 平臺(tái)技術(shù)架構(gòu)圖
其中,數(shù)據(jù)層主要建立用戶行為分析數(shù)據(jù)模型,需要用到鐵路貨票系統(tǒng)和鐵路貨物運(yùn)輸承運(yùn)制清算系統(tǒng)2部分?jǐn)?shù)據(jù),具體內(nèi)容如下:
(1)歷史數(shù)據(jù):歷史到達(dá)貨票數(shù)據(jù)包括貨票票根、機(jī)車牽引、線路使用、車輛服務(wù)、接觸網(wǎng)使用及電費(fèi)、長交路輪乘和特殊運(yùn)價(jià);
(2)未到達(dá)貨票數(shù)據(jù):未到達(dá)貨票的票根數(shù)據(jù)等;
(3)未到達(dá)貨票收入數(shù)據(jù):未到達(dá)貨票的收入信息。
通過Hive工具保存關(guān)系型數(shù)據(jù)庫轉(zhuǎn)換的數(shù)據(jù),通過Open TSDB工具保存準(zhǔn)實(shí)時(shí)數(shù)據(jù),為模型層分布式計(jì)算提供數(shù)據(jù)條件。
未到達(dá)貨票清算預(yù)測(cè)模型的流程如圖6所示。
(1)通過對(duì)鐵路貨票歷史數(shù)據(jù)進(jìn)行一系列預(yù)處理,歸納出不同運(yùn)輸企業(yè)的同類貨票的特征和規(guī)律,提取歷史貨票相關(guān)的特征變量。通過分析匹配未到達(dá)貨票與歷史貨票特征的區(qū)別,提取未到達(dá)貨票的特征屬性,利用Hadoop分布式特點(diǎn)存儲(chǔ)數(shù)據(jù)。
圖6 預(yù)測(cè)模型流程圖
(2)整合業(yè)務(wù)專家的輸入特征建議,利用k-NN算法建立未到達(dá)貨票預(yù)測(cè)及分析模型,計(jì)算出每張未到達(dá)貨票的最相似歷史貨票集合,并根據(jù)系數(shù)(相似程度)進(jìn)行排序。
(3)業(yè)務(wù)人員可以根據(jù)系數(shù)(相似程度),將適合納入預(yù)測(cè)的貨票批量納入清算預(yù)測(cè)范圍,形成完整貨票信息并進(jìn)行清算預(yù)測(cè)。
應(yīng)用該平臺(tái)對(duì)2018年5月產(chǎn)生的18萬張未到達(dá)貨票進(jìn)行清算預(yù)測(cè),涉及100余家運(yùn)輸企業(yè)。通過與2018年6月實(shí)際數(shù)據(jù)進(jìn)行對(duì)比,各項(xiàng)預(yù)測(cè)應(yīng)付金額與實(shí)際應(yīng)付金額誤差率在10%以內(nèi),具體數(shù)值如表1所示。通過預(yù)測(cè)使運(yùn)輸企業(yè)能及時(shí)掌握本企業(yè)每月實(shí)時(shí)整體經(jīng)營情況,便于其及時(shí)調(diào)整經(jīng)營策略。
表1 預(yù)測(cè)應(yīng)付金額與實(shí)際金額對(duì)比列表
未到達(dá)貨票清算預(yù)測(cè)問題,對(duì)各運(yùn)輸企業(yè)預(yù)判經(jīng)營效益影響巨大,關(guān)系到各運(yùn)輸企業(yè)的后續(xù)業(yè)務(wù)開展和經(jīng)營決策。伴隨貨運(yùn)承運(yùn)制清算的深入推進(jìn),未到達(dá)貨票清算預(yù)測(cè)平臺(tái)作為鐵路貨物運(yùn)輸承運(yùn)制清算系統(tǒng)的重要組成部分,會(huì)逐步積累大量的貨運(yùn)承運(yùn)制生產(chǎn)數(shù)據(jù),為預(yù)測(cè)運(yùn)輸企業(yè)的運(yùn)輸行為提供更精準(zhǔn)的數(shù)據(jù)模型,更好的讓中國國家鐵路集團(tuán)有限公司資金清算中心及時(shí)掌握全路貨運(yùn)情況、發(fā)揮宏觀調(diào)控作用,為防范與化解貨運(yùn)金融風(fēng)險(xiǎn)提供決策依據(jù)。