本發(fā)明屬于交通規(guī)劃數(shù)據(jù)分析領(lǐng)域,特別涉及一種基于手機(jī)信令數(shù)據(jù)的人口識別方法。
背景技術(shù):
常住人口、就業(yè)人口和短期外來人口數(shù)據(jù)是反映出行需求的重要參數(shù),是交通規(guī)劃、城市建設(shè)和城市管理的科學(xué)依據(jù)。當(dāng)前,隨著城市建設(shè)速度的加快和功能的不斷完善,人們對城市的交通規(guī)劃、建設(shè)和管理提出了更高的要求。傳統(tǒng)獲取常住人口、就業(yè)人口和短期外來人口數(shù)據(jù)的方法主要靠入戶調(diào)查、路邊詢問、表格調(diào)查、車輛牌照和月票調(diào)查等人工調(diào)查方式,這種方式存在采樣率低、周期長、人力財(cái)力花費(fèi)較大,以及由于采樣率低且數(shù)據(jù)質(zhì)量的等問題,難以實(shí)現(xiàn)預(yù)期的效果,其中人口抽樣調(diào)查方法以人口普查數(shù)據(jù)為基礎(chǔ),利用人口變動抽樣調(diào)查資料進(jìn)行推算。即以人口普查時的常住人口數(shù)為基礎(chǔ),每年進(jìn)行人口變動抽樣調(diào)查取得常住人口發(fā)展速度或常住人口與戶籍人口的比例,進(jìn)而計(jì)算報告期的常住人口數(shù)。
手機(jī)信令數(shù)據(jù)是指手機(jī)用戶在打電話、發(fā)短信、位置變化以及周期性更新時產(chǎn)生的移動位置數(shù)據(jù),近年來隨著手機(jī)的普及和無線定位技術(shù)的發(fā)展,手機(jī)信令數(shù)據(jù)不斷完善和增長,使得利用手機(jī)定位來識別常住人口、就業(yè)人口和短期外來人口的方法成為一種可能。現(xiàn)在幾乎人人都擁有一部手機(jī),各通信公司有著海量的用戶資源及相關(guān)的基礎(chǔ)數(shù)據(jù),相對于傳統(tǒng)調(diào)查方式,無疑可以獲取更全面、更準(zhǔn)確的數(shù)據(jù),為進(jìn)行更深入的常住人口、就業(yè)人口和短期外來人口識別提供了良好的數(shù)據(jù)基礎(chǔ)。
dbscan是一個比較有代表性的基于密度的聚類算法。與劃分和層次聚類方法不同,它將簇定義為密度相連的點(diǎn)的最大集合,能夠把具有足夠高密度的區(qū)域劃分為簇,并可在有噪聲的空間數(shù)據(jù)庫中發(fā)現(xiàn)任意形狀的聚類。這一步的處理既可以進(jìn)一步消除抖動數(shù)據(jù)對計(jì)算的影響,也可以聚合停留點(diǎn),為人口類型分析做準(zhǔn)備。
目前尚未有相關(guān)文獻(xiàn)報導(dǎo)。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的技術(shù)解決問題:克服現(xiàn)有技術(shù)的不足,提供一種快速地、準(zhǔn)確的基于手機(jī)信令數(shù)據(jù)的人口識別方法,主要是常住人口、就業(yè)人口和短期外來人口識別,為城市的人口監(jiān)控和交通規(guī)劃提供較為實(shí)時和準(zhǔn)確的數(shù)據(jù)支撐。
本發(fā)明的技術(shù)解決方案:主要針對常住人口、就業(yè)人口和短期外來人口進(jìn)行識別,(1)對手機(jī)信令數(shù)據(jù)進(jìn)行預(yù)處理,快速提取可用字段,形成以用戶id為關(guān)鍵字段的存儲格式;(2)對每個用戶的移動位置數(shù)據(jù)按時間排序,根據(jù)速度和角度異常判斷法進(jìn)行去噪;(3)利用dbscan聚類算法形成聚集點(diǎn),識別出每個用戶每天的所有停留點(diǎn)及停留起止時間;(4)以月為周期對停留點(diǎn)進(jìn)行分類,識別出常住人口、就業(yè)人口和短期外來人口。
通過以下步驟實(shí)現(xiàn):
(1)對手機(jī)信令數(shù)據(jù)進(jìn)行預(yù)處理,提取可用字段,形成以用戶id,即用戶唯一標(biāo)識uid為關(guān)鍵字段的存儲格式,形成用戶的移動位置數(shù)據(jù);
(2)對每個用戶的移動位置數(shù)據(jù)按時間排序,根據(jù)速度異常判斷法和角度異常判斷法進(jìn)行去噪,得到去噪后的移動位置數(shù)據(jù);
(3)根據(jù)步驟(2)去噪后的移動位置數(shù)據(jù),利用dbscan聚類算法進(jìn)行聚類分析形成聚集點(diǎn),識別出每個用戶每天的所有停留點(diǎn)及停留起止時間;所述停留點(diǎn)及停留起止時間識別方法是將同一用戶全天所有移動位置數(shù)據(jù)根據(jù)時間戳先后排序,將同一個簇號中時間連續(xù)的聚集點(diǎn),劃分為一個停留點(diǎn),并將停留點(diǎn)的最早時間和最晚時間作為該停留點(diǎn)的起止時間;
(4)以月為周期對停留點(diǎn)及停留起止時間進(jìn)行分類,識別出常住人口、就業(yè)人口和短期外來人口。
所述數(shù)據(jù)預(yù)處理是:將手機(jī)信令數(shù)據(jù)按文件大小均勻分開存儲,使用的方法是:按用戶id,即uid的哈希值后兩位存儲成256個不同的文件;再進(jìn)行多線程處理,處理過程中剔除不符合要求,包括字段缺失、經(jīng)緯度不在計(jì)算區(qū)域、時間戳異常的數(shù)據(jù),形成如下以uid為關(guān)鍵字段的存儲格式:
第i個文件數(shù)據(jù)格式:(i,uid,時間戳,經(jīng)度,緯度,小區(qū),事件)
其中i為uid的哈希加密后第121~128位散列值。
所述步驟(2)中,速度異常判斷法為:讀取同一用戶按時間先后順序產(chǎn)生的手機(jī)信令數(shù)據(jù)中的坐標(biāo)點(diǎn)a、b、c,分別計(jì)算中間點(diǎn)b到前后兩個點(diǎn)a、c的移動速度vab和vbc,如果中間點(diǎn)b到前后兩個點(diǎn)的速度都大于120km/h,則判定b位置點(diǎn)為該用戶的速度異常點(diǎn)。
所述步驟(2)中,角度異常判斷法為:通過讀取同一用戶連續(xù)的4個位置點(diǎn)a、b、c、d,計(jì)算前后三個位置點(diǎn)所形成的夾角,分別計(jì)算a、b、c和b、c、d三個位置點(diǎn)所形成的夾角∠abc和∠bcd,如果兩個夾角均小于π/4,則判定位置點(diǎn)c為用戶在行進(jìn)過程中產(chǎn)生的異常點(diǎn)。
所述步驟(3)中,利用dbscan聚類算法進(jìn)行聚類分析形成聚集點(diǎn)的過程為:設(shè)置一個半徑為s的臨界區(qū)域(本發(fā)明中設(shè)為300米),s由相鄰基站間距離差值的中值取整確定,從一個用戶分組里的第一個位置點(diǎn)開始,計(jì)算所有位置點(diǎn)與第一個位置點(diǎn)的距離d,如果所有距離都小于臨界區(qū)域(300米),或者,距離小于臨界區(qū)域(300米)的點(diǎn)數(shù)大于最小包含點(diǎn)數(shù)2,則可以判斷為聚集點(diǎn),標(biāo)記聚集點(diǎn)的簇號,如果任何一個距離大于臨界區(qū)域(300米),則帶入下一個位置點(diǎn)重復(fù)上述過程。
所述步驟(3)中,停留點(diǎn)及停留時間識別后,按用戶id合并數(shù)據(jù),形成如下存儲方式:
其中非停留點(diǎn)標(biāo)記為0。
所述步驟(4)中,識別出常住人口的過程為:判斷用戶甲在一天中的(0,6)∪(21,24)(指0:00-6:00和21:00-24:00)的時間區(qū)間內(nèi)是否存在停留點(diǎn),并計(jì)算第k個月的情況:
如果nk≥16,其中k=1,…,6,則識別用戶甲為常住人口。
所述步驟(4)中,識別出就業(yè)人口過程為:如果甲在第k月第i個工作日中的(8,18)時間區(qū)間內(nèi)存在停留點(diǎn),并且停留點(diǎn)起止時間差大于4小時,則βi累加1,對第k個月的數(shù)據(jù)重復(fù)上述計(jì)算過程:
如果jk≥12,其中k=1,…,6,則識別用戶甲為就業(yè)人口。
所述步驟(4)中,識別出短期外來人口的過程為:為用戶甲設(shè)置一個計(jì)數(shù)器n初始化為0,如果甲在一天中存在位置點(diǎn),則n累加1;對一個月的數(shù)據(jù)重復(fù)上述計(jì)算過程,如果用戶甲的計(jì)數(shù)器n<7,則識別用戶甲為短期外來人口。
本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:
(1)本發(fā)明充分利用手機(jī)信令數(shù)據(jù),經(jīng)過以上步驟,快速地、準(zhǔn)確的計(jì)算出常住人口、就業(yè)人口和短期外來人口,為城市人口監(jiān)測與交通規(guī)劃提供數(shù)據(jù)支撐;
(2)本發(fā)明的基礎(chǔ)數(shù)據(jù)來源于無線通信網(wǎng)絡(luò),相對抽樣統(tǒng)計(jì)等方法具有速度處理快、結(jié)果精度高的優(yōu)點(diǎn)。
附圖說明
圖1為本發(fā)明方法流程圖;
圖2為本發(fā)明中速度異常判斷原理示意圖;
圖3為本發(fā)明中角度異常判斷原理示意圖;
圖4為本發(fā)明中的dbscan聚類示意圖;
圖5為本發(fā)明中停留點(diǎn)分類示意圖。
具體實(shí)施方式
為使本發(fā)明的技術(shù)解決問題、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對本發(fā)明作進(jìn)一步的詳細(xì)描述。
本發(fā)明實(shí)施例提供的人口識別方法在預(yù)處理階段,快速提取手機(jī)信令數(shù)據(jù)中有用字段,形成以用戶id(用戶唯一標(biāo)識)為關(guān)鍵字的數(shù)據(jù)儲存格式,方便接下來的數(shù)據(jù)清洗和停留點(diǎn)的聚類分析。
如圖1所示,為本發(fā)明實(shí)施例提供的基于手機(jī)信令數(shù)據(jù)的常住人口、就業(yè)人口和短期外來人口識別方法流程圖,包括:
步驟101、對手機(jī)信令數(shù)據(jù)進(jìn)行預(yù)處理。
由于每天的手機(jī)信令數(shù)據(jù)量大(一天約7億條記錄、70g的數(shù)據(jù)),且文件儲存大小差異大,為提高處理效率,將一天的原始手機(jī)信令數(shù)據(jù)按文件大小均勻分開存儲,我們使用的方法是:按用戶id(uid)的哈希值后兩位存儲成256個不同的文件;然后多線程處理過程中剔除不符合要求(字段缺失、經(jīng)緯度不在計(jì)算區(qū)域、時間戳異常)的數(shù)據(jù),形成如下存儲方式:
第i個文件數(shù)據(jù)格式:(i,uid,時間戳,經(jīng)度,緯度,小區(qū),事件)
其中i為uid的哈希加密后第121~128位散列值(即*00~*ff)。
步驟102、對每個用戶的移動位置數(shù)據(jù)按時間排序,并進(jìn)行數(shù)據(jù)清洗。包括速度異常清洗和角度異常清洗。
因?yàn)槭謾C(jī)在定位過程中存在漂移的問題,所以在處理之前要進(jìn)行數(shù)據(jù)清洗,去除抖動和漂移對數(shù)據(jù)的影響。首先對每個用戶的移動位置數(shù)據(jù)按時間排序,然后進(jìn)行如下步驟:
步驟1021、速度異常清洗。
1、首先讀取連續(xù)的3個位置點(diǎn),然后計(jì)算相鄰兩個位置點(diǎn)的距離d和時間差t,如圖2所示,a、b、c三個位置點(diǎn)為同一用戶按時間先后順序產(chǎn)生的手機(jī)信令數(shù)據(jù)中的坐標(biāo)點(diǎn),分別計(jì)算中間點(diǎn)b到前后兩個點(diǎn)a、c的移動速度vab和vbc,其中vab=dab/tab,vbc=dbc/tbc。
v=min{vab,vbc}
2、如果v>120(即中間點(diǎn)到前后兩個點(diǎn)的速度都大于120km/h,連續(xù)發(fā)生速度異常),則判定b位置點(diǎn)為該用戶的速度異常點(diǎn),將該位置點(diǎn)刪除。
步驟1022、角度異常清洗。
1、讀取同一用戶連續(xù)的4個位置點(diǎn),計(jì)算前后三個位置點(diǎn)所形成的夾角,如圖3所示,a、b、c、d四個位置點(diǎn)為同一用戶按時間先后順序產(chǎn)生的手機(jī)信令數(shù)據(jù)中的坐標(biāo)點(diǎn),分別計(jì)算a、b、c和b、c、d三個位置點(diǎn)所形成的夾角∠abc和∠bcd。
α=max{∠abc,∠bcd}
2、如果α<π/4(即角a和角b均大于135°),則判定位置點(diǎn)c為用戶在行進(jìn)過程中產(chǎn)生的異常點(diǎn),通過角度異常判定法將c刪除。
重復(fù)以上兩個步驟對所有用戶的速度和角度異常點(diǎn)刪除,以達(dá)到去除抖動和漂移對數(shù)據(jù)的影響。
步驟103、利用dbscan聚類,識別出用戶所有停留點(diǎn)及起止時間。
首先基于dbscan聚類算法對清洗后的數(shù)據(jù)集進(jìn)行聚類分析,然后根據(jù)聚類結(jié)果來判別停留點(diǎn)。經(jīng)過數(shù)據(jù)清洗得到每天同一用戶的一系列位置點(diǎn),每個位置點(diǎn)包括三個參數(shù):utc時間t、經(jīng)度lon、緯度lat。對dbscan算法輸入三個參數(shù):位置點(diǎn)、最小包含點(diǎn)數(shù)minpts、搜索領(lǐng)域半徑eps。識別停留點(diǎn)的具體過程為:
步驟1031、dbscan聚類形成聚集點(diǎn)。
選取第一個位置點(diǎn)為例,先找到第一個位置點(diǎn)與其余位置點(diǎn)的距離小于300米的點(diǎn),然后判斷它在聚集點(diǎn)內(nèi)包含的位置點(diǎn)數(shù)小于最小包含點(diǎn)數(shù)2,故輸出第一個位置點(diǎn)的類型為外部點(diǎn)。依次循環(huán),找到某個位置點(diǎn)在聚集點(diǎn)內(nèi)包含的位置點(diǎn)數(shù)大于最小包含點(diǎn)數(shù)minpts時,輸出這個位置點(diǎn)的點(diǎn)類別為中心點(diǎn),識別為聚集點(diǎn)。
1、設(shè)置一個半徑為s的臨界區(qū)域(本算法中設(shè)為300米),s由相鄰基站間距離差值的中值取整確定。從一個用戶分組里的第一個位置點(diǎn)開始,計(jì)算所有位置點(diǎn)與第一個位置點(diǎn)的距離d。
2、如果所有距離都小于300米,或者,距離小于300米的點(diǎn)數(shù)大于最小包含點(diǎn)數(shù)2,則可以判斷為聚集點(diǎn),標(biāo)記聚集點(diǎn)的簇號。如果任何一個距離大于300米,則帶入下一個位置點(diǎn)重復(fù)上述計(jì)算過程。
如圖4所示,a1、a2、a3、a4、a5形成一簇,標(biāo)記簇號為a;b1、b2形成一簇,標(biāo)記簇號為b。
步驟1032、停留點(diǎn)及其起止時間識別。
將同一用戶全天所有移動位置數(shù)據(jù)根據(jù)時間戳先后排序,將同一個簇號中時間連續(xù)的聚集點(diǎn),劃分為一個停留點(diǎn),并將這些點(diǎn)的最早時間和最晚時間作為該停留點(diǎn)的起止時間。如圖5所示,{a1、a2、a3}為簇a的一個停留點(diǎn),它的開始時間為ta1,結(jié)束時間為ta3,它的停留時間為ta3-ta1;b1、b2為簇b的一個停留點(diǎn),它的開始時間為tb1,結(jié)束時間為tb2。它的停留時間為tb2-tb1。
停留點(diǎn)及停留時間識別后,按用戶id合并數(shù)據(jù),形成如下存儲方式:
其中非停留點(diǎn)標(biāo)記為0。
步驟104、計(jì)算常住人口、就業(yè)人口和短期外來人口。
在一個月的自然日中,統(tǒng)計(jì)每日0時-6時和21時-24時,一個用戶所有出現(xiàn)過的地點(diǎn)及該地點(diǎn)停留的時間,然后將出現(xiàn)天數(shù)最多并且停留時間最長的地點(diǎn)(若停留時間相同,則選擇聚類點(diǎn)數(shù)最多的地點(diǎn))作為手機(jī)用戶的居住地。
在一個月的工作日中,統(tǒng)計(jì)每個工作日8時-18時,一個用戶所有出現(xiàn)過的地點(diǎn)及該地點(diǎn)停留的時間,如果所有地點(diǎn)停留時間不小于4小時,則選擇該工作日中停留時間最長(若停留時間相同,則選擇聚類點(diǎn)數(shù)最多)的一個地點(diǎn)作為該工作日的就業(yè)地,然后統(tǒng)計(jì)一個月的工作日中,出現(xiàn)天數(shù)最多并且停留時間最長的地點(diǎn)(若停留時間相同,則選擇聚類點(diǎn)數(shù)最多的地點(diǎn))作為用戶的就業(yè)地。
步驟1041、識別常住人口。
首先,定義常住人口為:連續(xù)六個月在本地區(qū)居住天數(shù)不小于16天的人員,即連續(xù)六個月中,在本地區(qū)有居住地?cái)?shù)據(jù)的天數(shù)不小于16天的人口。具體計(jì)算過程為:判斷用戶甲在一天中的(0,6)∪(21,24)的時間區(qū)間內(nèi)是否存在停留點(diǎn),并計(jì)算第k個月的情況:
如果nk≥16,其中k=1,…,6,則識別用戶甲為常住人口。
步驟1042、識別就業(yè)人口。
將就業(yè)人口定為連續(xù)六個月中在本地區(qū)范圍內(nèi)就業(yè)天數(shù)大于等于該月工作日天數(shù)的60%(12天),即一個月中,在本地區(qū)有就業(yè)地?cái)?shù)據(jù)的天數(shù)不小于該月工作日天數(shù)的60%。具體計(jì)算過程為:如果甲在第k月第i個工作日中的(8,18)時間區(qū)間內(nèi)存在停留點(diǎn),并且停留點(diǎn)起止時間差大于4小時,則βi累加1。對第k個月的數(shù)據(jù)重復(fù)上述計(jì)算過程:
如果jk≥12,其中k=1,…,6,則識別用戶甲為就業(yè)人口。
步驟1042、識別短期外來人口。
短期外來人口定為一個月中,在本地區(qū)出現(xiàn)的天數(shù)小于7天的人員。具體計(jì)算過程為:為用戶甲設(shè)置一個計(jì)數(shù)器n初始化為0,如果甲在一天中存在位置點(diǎn),則n累加1。對一個月的數(shù)據(jù)重復(fù)上述計(jì)算過程,如果用戶甲的計(jì)數(shù)器n<7,則識別用戶甲為短期外來人口。
提供以上實(shí)施例僅僅是為了描述本發(fā)明的目的,而并非要限制本發(fā)明的范圍。本發(fā)明的范圍由所附權(quán)利要求限定。不脫離本發(fā)明的精神和原理而做出的各種等同替換和修改,均應(yīng)涵蓋在本發(fā)明的范圍之內(nèi)。