一種基于出行時(shí)間特征的機(jī)動車聚類方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及城市交通卡口管理技術(shù)領(lǐng)域,尤其是一種基于出行時(shí)間特征的機(jī)動車 聚類方法。
【背景技術(shù)】
[0002] 隨著計(jì)算機(jī)存儲和傳感器技術(shù)的發(fā)展,交通智能卡口已經(jīng)被廣泛應(yīng)用,對城市交 通管理起著重要的作用。卡口所采集的數(shù)據(jù)與日俱增,如何充分地利用卡口大數(shù)據(jù)資源成 為研宄的熱點(diǎn)問題。
[0003] 傳統(tǒng)的卡口的應(yīng)用主要用于公安布控,違章告警等,可實(shí)現(xiàn)違章抓拍,并對違章車 輛進(jìn)行自動識別,提高工作效率,避免因交警現(xiàn)場執(zhí)法可能對交通造成的影響。在卡口大數(shù) 據(jù)應(yīng)用方面目前,還沒有公開基于出行時(shí)間特征的機(jī)動車分類的卡口應(yīng)用,無法快速地獲 取車輛信息,數(shù)據(jù)處理效率較低。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的在于提供一種根據(jù)車輛出行的時(shí)間特征對車輛分類,更加科學(xué)地為 交通規(guī)劃提供參考;大大提高了數(shù)據(jù)處理的效率,為卡口大數(shù)據(jù)的廣泛應(yīng)用創(chuàng)造可能性的 基于出行時(shí)間特征的機(jī)動車聚類方法。
[0005] 為實(shí)現(xiàn)上述目的,本發(fā)明采用了以下技術(shù)方案:一種基于出行時(shí)間特征的機(jī)動車 聚類方法,該方法包括下列順序的步驟: (1) 從智能化交通卡口的分布式數(shù)據(jù)庫中提取車輛的卡口通行信息; (2) 統(tǒng)計(jì)每輛車在一天中的每個(gè)小時(shí)段的過卡口的次數(shù),得到車輛的時(shí)間特征向量; (3) 采用最大最小距離準(zhǔn)則確定最佳聚類中心個(gè)數(shù)k ; (4) 通過1&^1^(111〇6算法編寫1^6&118聚類算法,將最佳聚類中心個(gè)數(shù)1^代入1^6&118聚 類算法中,使用KMeans聚類算法對車輛的時(shí)間特征向量進(jìn)行聚類分析,得到聚類結(jié)果; (5) 根據(jù)聚類結(jié)果進(jìn)行車輛行為分析。
[0006] 利用Apache Pheonix中間件提取智能化交通卡口的分布式數(shù)據(jù)庫中的數(shù)據(jù),對數(shù) 據(jù)進(jìn)行結(jié)構(gòu)化,對結(jié)構(gòu)化以后的數(shù)據(jù)建立索引。
[0007] 根據(jù)MapReduce算法統(tǒng)計(jì)車輛在一天中每個(gè)小時(shí)段過卡口次數(shù),得到車輛的時(shí)間 特征向量,即24維向量V t。
[0008] 所述最大最小距離準(zhǔn)則包括以下步驟: (1) 先令聚類中心個(gè)數(shù)為3,對車輛的時(shí)間特征向量進(jìn)行聚類,得到3組聚類,對每組聚 類求平均值,該平均值即為該組聚類的聚類中心,計(jì)算三組聚類的聚類中心之間的距離,并 取其中最小距離作為聚類中心個(gè)數(shù)為3時(shí)的MMD值;同理,求得聚類中心個(gè)數(shù)為4、5、6、7、 8、9、10所對應(yīng)MMD值; (2) 取MMD值最大的聚類中心個(gè)數(shù)為最佳聚類中心個(gè)數(shù)k。
[0009] 所述聚類中心之間的距離為24維空間中兩點(diǎn)之間的歐氏距離。
[0010] 由上述技術(shù)方案可知,本發(fā)明從交通智能卡口收集的海量過車信息中提取出本方 法關(guān)注的車牌號、卡口編號、通過卡口時(shí)間等信息,利用MapReduce技術(shù)和集群強(qiáng)大的分布 式計(jì)算的能力,計(jì)算出所有車輛的時(shí)間特征向量,并對海量的車輛樣本進(jìn)行聚類,通過對車 輛的出行特征分析,將具有相似特征的車輛聚類。同時(shí),本方法具有有效性和準(zhǔn)確性,通過 對車輛的劃分,可以有效了解機(jī)動車的行為特征,按照出行規(guī)律對車輛進(jìn)行聚類能夠快速 獲取車輛信息,為本地區(qū)機(jī)動車交通量進(jìn)行科學(xué)的評估,以及對未來道路交通通行情況的 預(yù)測提供參考依據(jù),同時(shí)也為公安交警部門排查嫌疑車輛提供參考依據(jù)。
【附圖說明】
[0011] 圖1為KMeans聚類算法的串行計(jì)算流程圖。
[0012] 圖2為MapReduce運(yùn)行機(jī)制示意圖。
[0013] 圖3為利用最大最小距離準(zhǔn)則檢測最佳聚類中心個(gè)數(shù)的示意圖。
[0014] 圖4為KMeans聚類算法MapReduce并行化的示意圖。
[0015] 圖5為Kmeans聚類結(jié)果聚類中心點(diǎn)示意圖。
【具體實(shí)施方式】
[0016] 如圖1所示,KMeans聚類算法是一種基于樣本間相似性度量的間接聚類方法, 其算法步驟為:首先從n個(gè)數(shù)據(jù)對象中任意選擇k個(gè)對象作為初始聚類中心;對于所剩下 的其他對象,根據(jù)它們與這些聚類中心的相似度一一距離,分別將它們分配給與其最相似 的一一聚類中心所代表的一一聚類;然后再計(jì)算每個(gè)所獲新聚類的聚類中心一一該聚類中 所有對象的均值;不斷重復(fù)這一過程直至標(biāo)準(zhǔn)測度函數(shù)開始收斂為止。
[0017] 如圖2所示,MapReduce算法步驟為:將大數(shù)據(jù)集分解為成百上千的小數(shù)據(jù)集 splist,每個(gè)或若干個(gè)數(shù)據(jù)集分別由集群中的1個(gè)節(jié)點(diǎn),一般就是一臺普通的計(jì)算機(jī),并 行執(zhí)行Map計(jì)算任務(wù),指定了映射規(guī)則并生成中間結(jié)果,然后這些中間結(jié)果又由大量的 節(jié)點(diǎn)并行執(zhí)行Reduce計(jì)算任務(wù)一一指定了歸約規(guī)則,形成最終結(jié)果。在數(shù)據(jù)輸入階段, JobTracker獲得待計(jì)算數(shù)據(jù)片在NameNode上的存儲元信息;在Map階段,JobTracker指 派多個(gè)TaskTracker完成Map運(yùn)算任務(wù)并生成中間結(jié)果;Shuffle階段完成中間計(jì)算結(jié) 果的混排交換;JobTracker指派TaskTracker完成Reduce任務(wù);Reduce任務(wù)完成后通知 JobTracker與NameNode以產(chǎn)生最后的輸出結(jié)果。
[0018] 如圖4所示,KMeans聚類算法進(jìn)行MapReduce的方法:對串行算法中每1次迭代 啟動對應(yīng)的1次MapReduce計(jì)算過程,完成數(shù)據(jù)記錄到聚類中心的距離計(jì)算以及新的聚類 中心的計(jì)算,圖4描述了 KMeans聚類算法MapReduce并行化實(shí)現(xiàn)方法,為了適合MapReduce 計(jì)算模型處理,須將待處理數(shù)據(jù)記錄以行形式存儲,使待處理數(shù)據(jù)能按行分片,且片間數(shù)據(jù) 無相關(guān)性,分片過程由Map - Reduce運(yùn)行的環(huán)境完成,不需要編寫代碼。在Reduce任務(wù) 開始前,可對Map任務(wù)執(zhí)行節(jié)點(diǎn)本地的中間結(jié)果以key值為索引進(jìn)行分組和排序,以提高 Reduce任務(wù)的執(zhí)行效率。
[0019] a? Map函數(shù)的設(shè)計(jì) Map函數(shù)的任務(wù)是完成每個(gè)記錄到中心點(diǎn)距離的計(jì)算并重新標(biāo)記其屬于的新聚類類 另IJ,其輸入為待聚類所有記錄數(shù)據(jù)和上一輪迭代(或初始聚類)的聚類中心,輸入數(shù)據(jù)記 錄(key, value)對的形式為〈行號,記錄行〉;每個(gè)Map函數(shù)都讀入聚類中心描述文件,Map 函數(shù)對輸入的每個(gè)記錄點(diǎn)計(jì)算出距離其最近的類中心,并做新類別的標(biāo)記;輸出中間結(jié)果 (key, value)對的形式為〈聚類類別ID,記錄屬性向量〉。
[0020] b . Reduce函數(shù)的設(shè)計(jì) Reduce函數(shù)的任務(wù)是根據(jù)Map函數(shù)得到的中間結(jié)果計(jì)算出新的聚類中心,供下一輪 Map - Reducejob使用.輸入數(shù)據(jù)(key, value)對的形式為〈聚類類別ID,{記錄屬性向 量集}〉;所有key相同的記錄(即有相同類別ID的記錄)送給一個(gè)Reduce任務(wù)--累加 key相同的點(diǎn)個(gè)數(shù)和各記錄分量的和,求各分量的均值,得到新的聚類中心描述文件;輸出 結(jié)果(key,value)對的形式為〈聚類類別ID,均值向量〉判斷該聚類是否已收斂:比較上一 輪Map-Reduce Job得到的聚類中心與本輪MapReduce Job聚類中心距離,若變化小于給定 閾值,則算法結(jié)束;反之,則用本輪的聚類中心文件替換上一輪的中心文件,并啟動新一輪 的 MapReduce Job。
[0021] 一種基于出行時(shí)間特征的機(jī)動車聚類方法,包括:(1)從智能化交通卡口的分布 式數(shù)據(jù)庫中提取車輛的卡口通行信息;(2)統(tǒng)計(jì)每輛車在一天中的每個(gè)小時(shí)段的過卡口的 次數(shù),得到車輛的時(shí)間特征向量;(3)采用最大最小距離準(zhǔn)則確定最佳聚類中心個(gè)數(shù)k ; (4) 通過MapReduce算法編寫KMeans聚類算法,將最佳聚類中心個(gè)數(shù)k代入KMeans聚類算法 中,使用KMeans聚類算法對車輛的時(shí)間特征向量進(jìn)行聚類分析,得到聚類結(jié)果;(5)根據(jù)聚 類結(jié)果進(jìn)行車輛行為分析。
[0022] 利用Apache Pheonix中間件提取智能化交通卡口的分布式數(shù)據(jù)庫中的數(shù)據(jù),對數(shù) 據(jù)進(jìn)行結(jié)構(gòu)化,對結(jié)構(gòu)化以后的數(shù)據(jù)建立索引,加快查詢效率。根據(jù)MapReduce算法統(tǒng)計(jì)車 輛在一天中每個(gè)小時(shí)段過卡口次數(shù),得到車輛的時(shí)間特征向量,即24維向量V t。所述聚類 中心之間的距離為24維空間中兩點(diǎn)之間的歐氏距離。
[0023] 如圖3所示,所述最大最小距離準(zhǔn)則包括以下步驟:(1)先令聚類中心個(gè)數(shù)為3,對 車輛的時(shí)間特征向量進(jìn)行聚類,得到3組聚類,對每組聚類求平均值,該平均值即為該組聚 類的聚類中心,計(jì)算三組聚類的聚類中心之間的距離,并取其中最小距離作為聚類中心個(gè) 數(shù)為3時(shí)的MMD值;同理,求得聚類中心個(gè)數(shù)為4、5、6、7、8、9、10所對應(yīng)MMD值;(2)取MMD 值最大的聚類中心個(gè)數(shù)為最佳聚類中心個(gè)數(shù)k。最大最小距離準(zhǔn)則通過比較采用不同聚類 中心個(gè)數(shù)的聚類結(jié)果中各類中心點(diǎn)之間距離最小值來獲取最佳聚類中心個(gè)數(shù),中心點(diǎn)之間 距離的最小值越大則說明各聚類中心的離散程度越高,則聚類的效果越好。
[0024] 實(shí)施例一 確定聚類中心個(gè)數(shù):先以聚類中心個(gè)數(shù)為3至10分別進(jìn)行7次聚類,得到7組聚類中 心組,如下所示: (1)分3類的結(jié)果: 0 [1. 0, 0. 68, 0. 53, 0. 42, 0. 46, 1. 15, 2. 69, 4. 26, 8. 48, 7. 03, 6. 09, 5. 64, 4.56, 5.19, 6.05, 5.93, 6.23, 7.29, 6.1, 3.77, 3.21, 2.97, 2.21, 1.45] 1 [0.43, 0.22, 0.14, 0.13, 0.22, 0.65, 5.06, 36.89, 11.94, 3.95, 3.45, 4.09, 3.24, 3.82, 4.32, 3.8, 5.91, 15.72, 10.92, 4.31, 3.2, 2.65, 1.48, 0.73] 2 [6.31, 4.54, 3.5, 2.81, 2.72, 5.03, 10.52, 15.33, 23.08, 21.56, 19.74, 18.76, 16.0, 17.82, 19.72, 19.61, 20.07, 21.11, 16.83, 12.34, 11.03, 11.62, 10. 77, 8. 57] (2) 分4類的結(jié)果: 0 [5.81, 4.14, 3.16, 2.5, 2.3, 3.82, 7.46, 10.93, 17.58, 17.48, 16.08, 15.03, 13.06, 14.38, 15.89, 15.79, 15.31, 15.51, 13.25, 10.09, 9.5