劉軍 袁海天
摘 要:針對城市交通大數(shù)據(jù)的來源、數(shù)據(jù)量大、種類繁多等特征,指出城市交通大數(shù)據(jù)在存貯、可用性、處理等方面的挑戰(zhàn);結(jié)合云計算技術(shù),提出了基于隨機森林算法在城市交通大數(shù)據(jù)背景下對城市短時交通流并行預(yù)測方法,縮短了預(yù)測時間,提高了對大數(shù)據(jù)的處理能力。實驗結(jié)果表明,并行化隨機森林算法在不同數(shù)據(jù)集的預(yù)測精度均明顯高于決策樹,并能較快的處理城市交通大數(shù)據(jù)。
關(guān)鍵詞:智慧城市;大數(shù)據(jù);隨機森林算法;云計算
0 引言
智能交通是智慧城市的一項重要建設(shè)項目,是解決城市交通擁堵,實現(xiàn)城市交通智能控制、促進城市交通運輸可持續(xù)化發(fā)展的重要手段。隨著遍布城市的各類傳感器,如微波、激光、攝像頭、地磁線圈、GPS等和各類智能設(shè)備的增加,每時每刻都會產(chǎn)生海量的交通數(shù)據(jù),數(shù)量達到GB級、TB級甚至PB級。這些數(shù)據(jù)由不同協(xié)議設(shè)備產(chǎn)生,數(shù)據(jù)模態(tài)千差萬別,構(gòu)成了城市交通流大數(shù)據(jù)。由于相適應(yīng)的市場機制還未形成,國內(nèi)在城市交通大數(shù)據(jù)的利用技術(shù)研究雖有一定成就,但遠未達到成熟應(yīng)用的目標(biāo)。因此,本文基于Hadoop集群搭建了城市交通大數(shù)據(jù)存儲平臺,并采用大數(shù)據(jù)計算框架技術(shù)對城市交通大數(shù)據(jù)進行并化挖掘和分析,提出了基于隨機森林算法在城市交通大數(shù)據(jù)背景下對城市短時交通流并行預(yù)測方法。
1 大數(shù)據(jù)管理框架
1.1 大數(shù)據(jù)分析計算平臺的構(gòu)成
以分析城市交通大數(shù)據(jù)為目標(biāo),利用通用大數(shù)據(jù)分析處理工具以及云計算技術(shù),并結(jié)合對短時交通流進行預(yù)測的實際要求,建立分析計算城市交通大數(shù)據(jù)管理框架,由3個部分構(gòu)成:應(yīng)用層、私有云計算層、數(shù)據(jù)管理層。
1.2 數(shù)據(jù)管理層
主要完成城市交通數(shù)據(jù)到存儲系統(tǒng)的數(shù)據(jù)整合。目前對數(shù)據(jù)進行整合還沒有完善統(tǒng)一的方法,只能通過第三方工具,例如Sqoop、Datanucleus等來完成這一過程。平臺采用Sqoop工具對各種城市交通原始數(shù)據(jù)進行抽取和整合,將不同模態(tài)的數(shù)據(jù)遷移到列式數(shù)據(jù)庫Hive與HBase中;Datanucleus提供了標(biāo)準(zhǔn)的接口來訪問和操作各種類型的數(shù)據(jù)庫資源,如HBase、Cassandra等多種非關(guān)系型數(shù)據(jù)庫,平臺使用Datanucleus工具將云計算過程中的中間數(shù)據(jù)寫入到列數(shù)據(jù)庫HBase中。
1.3 私有云計算層與應(yīng)用層
大數(shù)據(jù)的分布存儲、數(shù)據(jù)的分析和計算等在私有云計算層完成。來自數(shù)據(jù)管理層的數(shù)據(jù)保存在HDFS中,并通過列式數(shù)據(jù)庫Hive、HBase完成數(shù)據(jù)的管理。HBase為列式數(shù)據(jù)庫,數(shù)據(jù)按列進行存儲和讀取,方便對整列數(shù)據(jù)進行查詢,這主要是為了滿足隨后使用的隨機森林算法需要多次對整列數(shù)據(jù)進行讀取計算的要求,隨機森林算法對數(shù)據(jù)的操作需求和HBase對數(shù)據(jù)的讀取方法相符合。根據(jù)云計算技術(shù)中“應(yīng)用即服務(wù)”的理念,應(yīng)用層就是利用云計算強大的數(shù)據(jù)分析、計算和存儲能力為城市管理者或參與者提供決策信息和指導(dǎo)功能,同時提供各類數(shù)據(jù)接口。
2 并行隨機森林算法預(yù)測短時交通流
2.1 短時交通流預(yù)測
目前,對短時交通流進行預(yù)測的常用方法有邏輯回歸、boosting和Cubist、高斯過程、關(guān)聯(lián)向量機、遺傳算法和決策樹等,其中,決策樹應(yīng)用廣泛。但由于其自身原因,決策樹預(yù)測方法仍存在一些不足,主要表現(xiàn)在:
(1)計算時需要將所有屬性讀入內(nèi)存,從而缺少內(nèi)存處理其它數(shù)據(jù),對大數(shù)據(jù)分析處理能力有限;
(2)當(dāng)訓(xùn)練數(shù)據(jù)集過小或數(shù)據(jù)中的噪聲較大時,容易出現(xiàn)過擬合現(xiàn)象,使樹的結(jié)構(gòu)變得復(fù)雜;
(3)決策樹在選擇屬性集時由于不進行回歸,從而使算法收斂于局部最優(yōu)解,且泛化能力不高。
隨機森林算法是在Bagging思想和隨機子空間思想基礎(chǔ)上,集成了多個決策樹為學(xué)習(xí)單元的集成學(xué)習(xí)方法,他保留了決策樹的優(yōu)點同時克服了其一些不足,又因為其良好的并能處理能力和容易擴展的性能,具有較強的大數(shù)據(jù)處理能力。
2.2 隨機森林算法實現(xiàn)并行化條件
隨機森林算法集成了多個決策樹,這是它實現(xiàn)并行化的基礎(chǔ)條件。而它能實現(xiàn)并行化的理論根據(jù)則依賴于Bagging算法和隨機子空間算法。
Bagging算法是一種根據(jù)均勻概率分布從數(shù)據(jù)集中有放回抽樣的技術(shù)。在每輪隨機采樣過程中,數(shù)據(jù)集中約36.8%的樣本沒有被抽到。這些數(shù)據(jù)沒有參于訓(xùn)練集的擬合,但可以檢測模型的泛化能力。這一特點使隨機森林中的每棵決策樹的訓(xùn)練樣本不同,但所包含的原始數(shù)據(jù)集的知識規(guī)模是相同的,不但保證了訓(xùn)練過程的并行化,而且也保證了訓(xùn)練數(shù)據(jù)的并行化。
根據(jù)隨機子空間思想,決策樹對非葉節(jié)點進行測試的屬性樣本子集均從原屬性樣本集中進行隨機抽取,這可以避免將所有屬性樣本都讀入到內(nèi)存的缺點。減少了數(shù)據(jù)噪聲,降低了決策樹容易過度生長的現(xiàn)象,同時也提高了數(shù)據(jù)的處理能力。
Bagging算法和隨機子空間算法實現(xiàn)了隨機森林算法的并行化。在決策樹基礎(chǔ)上發(fā)展的隨機森林算法對短時交通流進行預(yù)測是可行的,從而本文基于MapReduce的并行化思想提出了并行隨機森林算法(MapReduce-Paralleled random forests,MR-PRF)進行短時交通流預(yù)測的方法。
2.3 城市短時交通流預(yù)測流程
隨機森林的訓(xùn)練過程采用3個MapReduce作業(yè)類分別用來完成生成數(shù)據(jù)字典、生成決策樹、生成隨機森林模型。
生成數(shù)據(jù)字典就是用文件來描述參于訓(xùn)練的樣本數(shù)據(jù),包括樣本的條件屬性、決策屬性和模型的類型(回歸/分類)。該過程由第1個MapReduce作業(yè)類完成,得到的描述文件保存在模型的HDFS中,并作為第2個MapReduce類的輸入。
生成決策樹過程是隨機森林算法訓(xùn)練過程的核心步驟,由以下3個步驟構(gòu)成:
(1)運用Bagging算法從原始數(shù)據(jù)集中抽取個訓(xùn)練樣本數(shù)據(jù)集(),每個訓(xùn)練樣本對應(yīng)一棵決策樹;
(2)決策樹的非葉節(jié)點選擇的隨機屬性集中屬性的個數(shù)根據(jù)取決于原始訓(xùn)練樣本中屬性的個數(shù),并根據(jù)每個屬性集所包含的信息,選擇最佳的屬性值進行分支;
(3)生成決策樹只有Map過程,而沒有Reduce過程,且是并行進行的,每個Map過程生成一個決策樹。該過程由第2個MapReduce作業(yè)類完成。
生成隨機森林就是統(tǒng)計各個決策樹結(jié)果,最終得到隨機森林結(jié)果的過程,該過程由第3個MapReduce作業(yè)類完成。
3 短時交通流預(yù)測模型和實驗分析
課題組搭建了一個由42臺配置相同的PC機組成的城市交通流數(shù)據(jù)分析實驗平臺,一臺PC機作為主節(jié)點,其它41臺PC機作為數(shù)據(jù)節(jié)點。主節(jié)點首先將參于訓(xùn)練數(shù)據(jù)文件進行分塊,并以文件的形式保存各數(shù)據(jù)分塊的名字空間和元數(shù)據(jù),各數(shù)據(jù)節(jié)點負責(zé)冗余保存各數(shù)據(jù)塊。當(dāng)MapReduce作業(yè)提交到主節(jié)點后,根據(jù)任務(wù)所需要資源,并根據(jù)各數(shù)據(jù)點能提供的資源,主節(jié)點將任務(wù)分配給各數(shù)據(jù)節(jié)點,并監(jiān)控數(shù)據(jù)節(jié)點完成任務(wù)的過程。
實驗數(shù)據(jù)為某城市一條繁華街道2015年4-7月的交通狀態(tài)信息,狀態(tài)信息按15 min一次進行記錄,并包含有時間和天氣等相關(guān)信息。數(shù)據(jù)量遠沒有達到大數(shù)據(jù)規(guī)模,但卻能驗證算法的正確性。通過人為的數(shù)據(jù)擴充,使實驗數(shù)據(jù)達到大數(shù)據(jù)規(guī)模,進一步驗證算法在大數(shù)據(jù)環(huán)境下的性能表現(xiàn)。
實驗一:以2015-4-6~2015-5-27之間數(shù)據(jù)作為原始數(shù)據(jù)樣本集,分別采用MR-PRF算法和傳統(tǒng)決策樹算法來預(yù)測2017-5-28該路段15:00~15:15時段的交通流狀態(tài),結(jié)果如表1所示。
表中可見,MR-PRF算法的預(yù)測精度高于決策樹算法。這是由于MR-PRF算法集成了多個決策樹,吸收了決策樹優(yōu)點的同時又克服了其缺點,因而表現(xiàn)出比決策樹更好的性能。
實驗二:采用不同的數(shù)據(jù)量進行實驗,得到MR-PRF算法的MAPE值如表2所示。
表中數(shù)據(jù)表明,數(shù)據(jù)量的大小對MR-PRF算法的預(yù)測精度影響不大,沒有明顯的變化規(guī)律,這說明并行化的隨機森林算法可以在大數(shù)據(jù)背景下對城市短時交通流進行預(yù)測。
實驗三:人為補充原始數(shù)據(jù)集至3.2G、13.2G、132G,并分別運行在由1臺、6臺、16臺、26臺、36臺PC機組成的分布集群上,結(jié)果如圖1所示。
圖中曲線表明,MR-PRF算法在相同分布集群上,原始數(shù)據(jù)量越大,加速比越大;在不同的原始數(shù)據(jù)量下,加速比隨著分布集群的增大而增大,當(dāng)分布集群到達一定程度時,加速比增大趨勢減小。
4 結(jié)論
本文根據(jù)城市交通流的大數(shù)據(jù)的結(jié)構(gòu)特征,基于通用大數(shù)據(jù)分析框架結(jié)構(gòu),構(gòu)建出Hadoop的并行隨機森林算法模型,并利用并行模型對城市交通大數(shù)據(jù)進行快速挖掘和分析,實現(xiàn)對城市交通大數(shù)據(jù)對城市短時交通流進行預(yù)測。實驗表明,并行隨機森林算法比決策樹具有更高的預(yù)測精度。
參考文獻:
[1]楊正理,陳海霞,王長鵬,等.大數(shù)據(jù)背景下城市短時交通流預(yù)測[J].公路交通科技,2019,36(2):136-143.
[2]VLAHOGIANNI E I,KARLAFTIS M G,GOLIAS J C.Short-term traffic forecasting: where we are and where we’re going[J].Transportation Research Part C Emerging Technologies,2014,43(1):3-19.
[3]馬景艷.大數(shù)據(jù)背景下智慧城市破解交通擁堵的策略研究[J].電腦知識與技術(shù),2014,10(18):4262-4264.
[4]邴其春,龔勃文,林賜云,等.基于粒子群優(yōu)化投影尋蹤回歸模型的短時交通流預(yù)測[J].中南大學(xué)學(xué)報(自然科學(xué)版),2016,47(12):4277-4282.