本發明涉及信息技術領域,尤其涉及一種分析用戶WiFi活動軌跡規律的分布式實現方法。
背景技術:
在現有技術中,用戶手持開啟WiFi的智能終端經過WiFi覆蓋區域過程中,WiFi采集設備會采集用戶終端的WiFi數據,主要包括MAC地址(Media Access Control,物理地址)、掃描時間和掃面設備的經緯度。因此,一般WiFi掃描列表中的數據主要由掃描時間、掃描到的AP(Access Point,無線網絡接入點)或MAC地址、信號強度以及相應的SSID(Service Set Identifier,服務集標識)構成,然而這其中并不包括顯示軌跡的坐標信息。
此外,WiFi數據一方面無法像GPS那樣精確記錄用戶的實際地理坐標;另一方面WiFi數據記錄的位置點比較稀疏,不能向GPS那樣具有連續的位置點。因此,傳統的處理GPS軌跡數據的方法不能完全照搬到WiFi軌跡數據中。
一般用戶連接的WiFi多數是由固定AP發出,可以通過AP的部署位置獲知對應的WiFi的坐標,因此通過WiFi來分析用戶的活動軌跡規律有著潛在的應用價值,而目前比較成熟的頻繁模式挖掘算法用于其中,同時現有挖掘算法大多數針對軌跡的空間規律,很少從時間和空間去考慮用戶在不同時間尺度(星期、時段)下的活動規律,而這種時空規律對于頻繁軌跡和興趣區域的語義具有重要的參考價值。
技術實現要素:
本發明的目的在于提供一種分析用戶WiFi活動軌跡規律的分布式實現方法,提取用戶WiFi活動軌跡,并從時間和空間兩個方面去考慮用戶在不同時間尺度(星期、時段)下的活動規律。
為實現上述目的,本發明提出了一種分析用戶WiFi活動軌跡規律的分布式實現方法,包括以下步驟:
(a)軌跡提取:后臺服務器查詢模塊查詢后臺服務器數據庫中的用戶移動端MAC地址所對應的WiFi掃描記錄,所述WiFi掃描記錄為由多臺WiFi采集設備采集記錄并由所述WiFi采集設備上傳至所述后臺服務器數據庫;
將所述WiFi掃描記錄按采集時間進行排序獲得WiFi掃描軌跡E={ e1,e2,…,en },其中ei=<pi, ti>,i為自然數,ei表示軌跡點,pi表示地理位置,ti表示掃描時間;
(b)軌跡點預處理:后臺服務器的數據處理模塊依次遍歷WiFi掃描軌跡E,對任意連續的兩個軌跡點記錄ei和ei+1,如果pi = pi+1且ti+1- ti < Δt,則將所述ei和ei+1兩條記錄合并為一個復合軌跡點記錄ei'= <pi,tiin,tiout>,其中, tiin=ti, tiout= ti+1;由合并后的復合軌跡點記錄ei'組成WiFi掃描軌跡E'={ e1', e2',…,en'},其中ei'=<pi,tiin,tiout>,n為自然數,pi表示地理位置,tiin表示ei'采集開始時間,tiout表示ei'采集結束時間;
(c)軌跡片段劃分:根據預定規則對步驟(b)中獲得的WiFi掃描軌跡E'進行分割,獲得只包含有序位置軌跡點位置的多條軌跡片段,并由所述多條軌跡片段得到軌跡集合TR;
(d)頻繁軌跡提?。翰捎貌⑿兴惴ㄓ嬎悴襟E(b)中獲取的軌跡集合TR中的軌跡點pi出現頻率次數,得到頻繁軌跡點,進而使用并行后綴樹算法實現頻繁軌跡提??;
(e)建立語義化模型:對頻繁軌跡產生時間的星期和小時進行語義化定義;
(f)建立軌跡語義化:獲取頻繁軌跡的時間尺度頻率次數中次數最多的星期和小時,根據語義化模型將軌跡路徑進行分類,獲取頻繁軌跡的語義化模型。
進一步的,在所述分析用戶WiFi活動軌跡規律的分布式實現方法中,所述預定規則包括規則一和規則二:
規則一:如果一個軌跡點<pi,tiin,tiout>的停留時間τi= tiout - tiin >Δt,則將軌跡在pi處進行分割,且將地理位置點pi作為上一段軌跡片段的終點和下一段軌跡片段的起點;
規則二:如果兩個軌跡點<pi,tiin,tiout>和<pi+1,ti+1in,ti+1out>的間隔時間τi'= ti+1in - tiout> Δt,則將軌跡在pi處進行分割,其中pi作為上一段軌跡片段的終點,pi+1作為下一段軌跡片段的起點;
根據規則一或規則二對WiFi掃描軌跡E'進行分割后獲得軌跡集合TR={TR1, TR2, …, TRn},其中第i條軌跡片段TRi= {pi1, pi2, … , pim},pim表示第i條軌跡片段中的用戶移動端經過的第m項軌跡點位置,pim對應WiFi采集設備地理位置。
進一步的,在所述分析用戶WiFi活動軌跡規律的分布式實現方法中,所述頻繁軌跡提取包括以下步驟:
步驟一,對步驟(b)中的每個項pim對應的WiFi采集設備地理位置PI在TR中出現的頻率次數進行計數,然后將WiFi采集設備PI出現頻率次數進行降序排序,并從TR中過濾出WiFi采集設備PI出現頻率次數大于最小支持度的項作為頻繁軌跡點;
步驟二:采用均衡分組算法將步驟1中獲得的對應頻繁軌跡點均勻地劃分到Q個分組中,平衡所有組內的計算負載,其中Q為大于1的自然數;
步驟三:獲得每條軌跡片段TRi的后綴模式,所述軌跡片段TRi的后綴{pi1, pi2, … , pim}包括多種組成模式,所述組成模式為將軌跡片段TRi中所有的有序軌跡點位置任意分成兩部分然后由后一部分有序軌跡點位置組成,一種所述組成模式為所述軌跡片段TRi的一種后綴模式;根據后綴模式中第一項是否為頻繁軌跡點來判斷所述后綴模式的分組,其中,若后綴模式中第一項為頻繁軌跡點,則將所述后綴模式歸屬到其第一項對應的頻繁軌跡點所在的分組;若后綴模式中第一項不是頻繁軌跡點,則該后綴模式被自動過濾不進入任意分組中;
步驟四:對每個分組構建一個后綴樹,獲得Q個后綴樹,由Q個后綴樹構造并行后綴樹,對并行后綴樹進行并行處理;后綴樹的創建為首先建立樹的根節點,然后掃描同一個分組內的所有TRi的后綴模式,并對每個后綴模式創建分枝,所述后綴模式中任意軌跡點位置pim為所述后綴模式分枝的節點,將所有的后綴模式分枝連接到根節點,獲得每個分組的后綴樹,并對所述后綴樹進行壓縮處理;
步驟五:對后綴樹每個后綴樹模式分枝內有序的各節點依次計數,通過節點的計數與最小支持度的比較確定頻繁軌跡片段,即若某一節點的計數小于最小支持度則停止對所述后綴樹模式分枝內后續節點的計數且所述計數小于最小支持度時的節點前面所有節點組合形成一條頻繁軌跡片段;或者若所述后綴模式分枝所有節點的計數均滿足大于等于最小支持度則所述后綴模式分枝為頻繁軌跡片段,由頻繁軌跡片段組成頻繁軌跡。
進一步的,在所述分析用戶WiFi活動軌跡規律的分布式實現方法中,所述最小支持度為頻率次數閾值,所述頻率次數閾值根據環境進行設置。
進一步的,在所述分析用戶WiFi活動軌跡規律的分布式實現方法中,對所述TRi的后綴模式形成的后綴樹進行壓縮處理方法為:所述后綴模式分枝內某一節點后的節點均為其子節點,若后綴模式分枝內的節點只有一個子節點,且滿足該節點的計數與該節點的子節點的計數相同,則將該節點與其子節點合并為一個節點。
進一步的,在所述分析用戶WiFi活動軌跡規律的分布式實現方法中,根據頻繁軌跡產生時間的星期和小時建立語義化模型,其中將星期分為工作日和休息日,當星期為工作日時,小時分為n個時間段,對n個時間段分別語義化定義n個事件;當星期為休息日時,小時分為m個時間段,對m個時間段分別語義化定義m個事件。
與現有技術相比,本發明的有益效果是:根據MAC的活動規律軌跡可以得到MAC的常駐區域,對活動規律軌跡的時間進行分析,可以預測目標對象在哪個時間段可能出現在哪些區域,也可以查詢與該MAC具有相似活動軌跡規律的MAC集??梢詫ν诰虺鰜淼能壽E進行語義化,找出用戶的一些通勤模式,比如上下班路線;可以對挖掘出來的興趣區域進行語義化,找出用戶的上班區域、住宅區域。
構建在大數據平臺上能處理大量的數據,通過Flume實時采集數據、HDFS、Hbase存儲、Spark分析處理、ElasticSearch查詢檢索以及并行化的后綴樹算法實現的大規模分布式處理平臺,能夠快速準確的找出MAC地址的活動軌跡規律。
附圖說明
圖1為本發明一實施例中分析用戶WiFi活動軌跡規律的分布式實現方法示意圖。
具體實施方式
下面將結合示意圖對本發明的分析用戶WiFi活動軌跡規律的分布式實現方法進行更詳細的描述,其中表示了本發明的優選實施例,應該理解本領域技術人員可以修改在此描述的本發明,而仍然實現本發明的有利效果。因此,下列描述應當被理解為對于本領域技術人員的廣泛知道,而并不作為對本發明的限制。
如圖1所示,本發明提出了一種分析用戶WiFi活動軌跡規律的分布式實現方法,包括以下步驟:
(a)軌跡提?。汉笈_服務器查詢模塊查詢后臺服務器數據庫中的用戶移動端MAC地址所對應的WiFi掃描記錄,所述WiFi掃描記錄為由多臺WiFi采集設備采集記錄并由所述WiFi采集設備上傳至所述后臺服務器數據庫;
將所述WiFi掃描記錄按采集時間進行排序獲得WiFi掃描軌跡E={ e1,e2,…,en },其中ei=<pi, ti>,i為自然數,ei表示軌跡點,pi表示地理位置,ti表示掃描時間;
(b)軌跡點預處理:后臺服務器的數據處理模塊依次遍歷WiFi掃描軌跡E,對任意連續的兩個軌跡點記錄ei和ei+1,如果pi = pi+1且ti+1- ti < Δt,則將所述ei和ei+1兩條記錄合并為一個復合軌跡點記錄ei'= <pi,tiin,tiout>,其中, tiin=ti, tiout= ti+1;由合并后的復合軌跡點記錄ei'組成WiFi掃描軌跡E'={ e1', e2',…,en'},其中ei'=<pi,tiin,tiout>,n為自然數,pi表示地理位置,tiin表示ei'采集開始時間,tiout表示ei'采集結束時間;
(c)軌跡片段劃分:根據預定規則對步驟(b)中獲得的WiFi掃描軌跡E'進行分割,獲得只包含有序位置信息的多條軌跡片段,并由所述多條軌跡片段得到軌跡集合TR;
(d)頻繁軌跡提?。翰捎貌⑿兴惴ㄓ嬎悴襟E(b)中獲取的軌跡集合TR中的軌跡點pi出現頻率次數,得到頻繁軌跡點,進而使用并行后綴樹算法實現頻繁軌跡提?。?/p>
(e)建立語義化模型:對頻繁軌跡產生時間的星期和小時進行語義化定義;
(f)建立軌跡語義化:獲取頻繁軌跡的時間尺度頻率次數中次數最多的星期和小時,根據語義化模型將軌跡路徑進行分類,獲取頻繁軌跡的語義化模型。
其中,在本實施例中,所述預定規則包括規則一和規則二:
規則一:如果一個軌跡點<pi,tiin,tiout>的停留時間τi= tiout - tiin >Δt,則將軌跡在pi處進行分割,且將地理位置點pi作為上一段軌跡片段的終點和下一段軌跡片段的起點;
規則二:如果兩個軌跡點<pi,tiin,tiout>和<pi+1,ti+1in,ti+1out>的間隔時間τi'= ti+1in - tiout> Δt,則將軌跡在pi處進行分割,其中pi作為上一段軌跡片段的終點,pi+1作為下一段軌跡片段的起點。
在本實施例中,根據上述規則一或規則二對WiFi掃描軌跡E'進行分割后獲得軌跡集合TR={TR1, TR2, …, TRn},其中第i條軌跡片段TRi= {pi1, pi2, … , pim},pim表示第i條軌跡片段中的用戶移動端經過的第m項軌跡點位置,pim對應WiFi采集設備地理位置。
具體的,在本實施例中,所述頻繁軌跡提取的方法包括以下步驟:
步驟一,對步驟(b)中的每個項pim對應的WiFi采集設備地理位置PI在TR中出現的頻率次數進行計數,然后將WiFi采集設備PI出現頻率次數進行降序排序,并從TR中過濾出WiFi采集設備PI出現頻率次數大于最小支持度的項作為頻繁軌跡點,其中,所述最小支持度為頻率次數閾值,所述頻率次數閾值根據環境進行設置;
步驟二,采用均衡分組算法將步驟1中獲得的對應頻繁軌跡點均勻地劃分到Q個分組中,平衡所有組內的計算負載,其中Q為大于1的自然數;
步驟三,獲得每條軌跡片段TRi的后綴模式,所述軌跡片段TRi的后綴{pi1, pi2, … , pim}包括多種組成模式,所述組成模式為將軌跡片段TRi中所有序軌跡點位置任意分成兩部分然后由后一部分有序軌跡點位置組成,一種所述組成模式為所述軌跡片段TRi的一種后綴模式,如TRi={b,a,n,a,n,a},則TRi的多種后綴模式包括:{b,a,n,a,n,a};{ a,n,a,n,a };{ n,a,n,a };{ a,n,a };{ n,a };{ a },后綴模式中第一項是頻繁軌跡點,則將所述后綴模式歸屬到后綴模式中第一項所在的分組,后綴模式中第一項不是頻繁軌跡點,則將所述后綴模式過濾掉,不進入分組。例如:(1)a為頻繁軌跡點且a被分在Q1組中,n為頻繁軌跡點且被分在Q2組中,則后綴模式{ a,n,a,n,a }被分在Q1組中,{ n,a,n,a }被分在Q2組中;(2)a為頻繁軌跡點且a被分在Q1組中,n不是頻繁軌跡點,則后綴模式{ n,a,n,a }被直接過濾掉不進入任意分組,{ a,n,a }被分在Q1組中。
步驟四,對每個分組構建一個后綴樹,獲得Q個后綴樹,由Q個后綴樹構造形成并行后綴樹,對并行后綴樹進行并行處理,即對Q個后綴樹同時進行計算處理;其中,后綴樹的創建首先需要建立樹的根節點,然后掃描同一個分組內的所有軌跡片段TRi的后綴模式,并對每個后綴模式創建分枝,所述后綴模式中任意軌跡點位置pim為所述后綴模式分枝的節點,將所有的后綴模式分枝連接到根節點,獲得每個分組的后綴樹,并對所述后綴樹進行壓縮處理。所述壓縮處理方法為:若后綴模式分枝內的節點只有一個子節點,且滿足該節點的計數與該節點的子節點的計數相同,則將該節點與其子節點合并為一個節點。其中子節點定義為所述后綴模式分枝內某一節點后的節點均為其子節點,如后綴樹模式{ n,a,n,a }中,第一個n的子節點包括三個,且依次為其后的a,n,a;第二個n的子節點僅包含一個為其后的a。
步驟五,對后綴樹每個后綴樹模式分枝內有序的各節點依次計數,通過計數與最小支持度的比較確定頻繁軌跡片段,即若某一節點的計數小于最小支持度則停止對所述后綴樹模式分枝內后續節點的計數,所述計數小于最小支持度時的節點前面所有節點組合形成一條頻繁軌跡片段;或者若所述后綴模式分枝所有節點的計數均滿足大于等于最小支持度則所述后綴模式分枝形成一條頻繁軌跡片段,由頻繁軌跡片段組成頻繁軌跡。例如:(1)后綴樹模式分枝{ a,n,a,n,a },其中節點a,n,a,n和a各自的計數均滿足大于等于最小支持度,則后綴樹模式分枝{ a,n,a,n,a }為一條頻繁軌跡片段;(2)后綴樹模式分枝{ a,b,c,d,e },其中節點a,b,c各自的計數均滿足大于等于最小支持度而節點d的計數小于最小支持度,則不再對節點e進行計數,且由{a,b,c}形成一條頻繁軌跡片段。
優選地,在本實施例中,在所述分析用戶WiFi活動軌跡規律的分布式實現方法中,根據頻繁軌跡產生時間的星期(week)和小時(hour)建立語義化模型,其中將星期分為工作日和休息日,當星期為工作日時,小時分為n個時間段,對n個時間段分別語義化定義n個事件;當星期為休息日時,小時分為m個時間段,對m個時間段分別語義化定義m個事件,例如:
a)week 為工作日
n1. hour 在7-10點之間 n1 上班路線
n2. hour 在17-20點之間 n2 下班路線
n3. hour 在11-13點之間 n3 午餐時間
n4. hour 在其它時間 n4 其他
b)week 為休息日
m1. hour 在7-9點之間 m1 早餐
m2. hour 在11-13點之間 m2 午餐時間
m3. hour 在18-20點之間 m3 晚餐時間
m4. hour 在其它時間 m4 其他
分析頻繁軌跡的時間規律,統計記錄的week和hour的出現的次數,根據得到出現次數多的week和hour的語義化獲得軌跡的語義化。例如week為工作日且hour在7~10點之間出現的次數較多,根據語義化模型就可以將week為工作日且hour在7~10點之間語義化為上班路線的軌跡,通過上班路線軌跡的起點和終點可以判斷為家庭住址和工作地點附近。
綜上,在本發明實施例提供的分析用戶WiFi活動軌跡規律的分布式實現方法中,根據MAC的活動規律軌跡可以得到MAC的常駐區域,對活動規律軌跡的時間進行分析,可以預測目標對象在哪個時間段可能出現在哪些區域,也可以查詢與該MAC具有相似活動軌跡規律的MAC集??梢詫ν诰虺鰜淼能壽E進行語義化,找出用戶的一些通勤模式,比如上下班路線;可以對挖掘出來的興趣區域進行語義化,找出用戶的上班區域、住宅區域。
構建在大數據平臺上能處理大量的數據,通過Flume實時采集數據、HDFS、Hbase存儲、Spark分析處理、ElasticSearch查詢檢索以及并行化的后綴樹算法實現的大規模分布式處理平臺,能夠快速準確的找出MAC地址的活動軌跡規律。
上述僅為本發明的優選實施例而已,并不對本發明起到任何限制作用。任何所屬技術領域的技術人員,在不脫離本發明的技術方案的范圍內,對本發明揭露的技術方案和技術內容做任何形式的等同替換或修改等變動,均屬未脫離本發明的技術方案的內容,仍屬于本發明的保護范圍之內。