張嘉誠,張曉濱
(西安工程大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,陜西 西安 710048)
文獻(xiàn)[3]基于實(shí)際的移動學(xué)習(xí)環(huán)境,提出一種根據(jù)傳感器與學(xué)習(xí)操作行為對學(xué)習(xí)場景進(jìn)行感知分類的方法;文獻(xiàn)[4]針對移動用戶行為識別模型中過度擬合的問題,提出一種基于隨機(jī)Dropout深度信念網(wǎng)絡(luò)的移動用戶行為識別方法;文獻(xiàn)[5]提出了基于多重運(yùn)動特征的軌跡相似性度量,該度量對分析和理解移動對象的運(yùn)動行為和規(guī)律具有重要意義;文獻(xiàn)[6]建構(gòu)了數(shù)據(jù)驅(qū)動的移動用戶行為研究框架,系統(tǒng)梳理了移動用戶行為研究的方法.
隨著智慧城市建設(shè)和大數(shù)據(jù)等概念的不斷深入,社會和用戶對移動互聯(lián)的要求越來越高[7].基于軌跡數(shù)據(jù)的行為分析已滲透到各行各業(yè)[8-9].本文將移動互聯(lián)與大數(shù)據(jù)計(jì)算框架Spark相結(jié)合,對用戶行為軌跡數(shù)據(jù)分析進(jìn)行服務(wù)設(shè)計(jì),對用戶軌跡數(shù)據(jù)進(jìn)行卡方檢驗(yàn)和聚類分析,得到出行方式的普遍結(jié)果及在距離限制下的結(jié)果.
圖 1 移動用戶行為軌跡分析總體架構(gòu)圖Fig.1 The overall architecture of mobile user behavior trajectory analysis
移動用戶行為軌跡大數(shù)據(jù)分析系統(tǒng)基于可靠性、可擴(kuò)展性、安全性、可維護(hù)性等原則,支持Hive、MySQL、Hadoop、HBase等平臺的數(shù)據(jù)接入,同時(shí)采取分布式的任務(wù)調(diào)度執(zhí)行,保證任務(wù)高效的執(zhí)行.整個(gè)分析系統(tǒng)分為移動終端數(shù)據(jù)感知層、Spark數(shù)據(jù)分析層和結(jié)果展示層,移動用戶行為軌跡分析總體架構(gòu)圖如圖1所示.
(1) 移動終端數(shù)據(jù)感知層利用移動設(shè)備、GPS記錄器實(shí)時(shí)收集用戶軌跡數(shù)據(jù),并將數(shù)據(jù)作為數(shù)據(jù)分析層的輸入.
(2) Spark數(shù)據(jù)分析層主要是基于Spark分布式計(jì)算平臺,利用其自身函數(shù)庫分析數(shù)據(jù)收集層所收集到的數(shù)據(jù).Spark在進(jìn)行數(shù)據(jù)分析時(shí),SparkContext和SparkExecutor不可缺少,其任務(wù)調(diào)度和執(zhí)行的框架圖如圖2所示.
行業(yè)精神是“一個(gè)行業(yè)在長期的發(fā)展實(shí)踐中逐步提煉和培育形成,并為行業(yè)全體成員所認(rèn)同的價(jià)值取向、理想信念、心理特征和精神風(fēng)貌的總和”[3]。受互聯(lián)網(wǎng)時(shí)代的沖擊,傳統(tǒng)行業(yè)間的界限正在日趨模糊,但各行業(yè)精神卻在隨著時(shí)代發(fā)展而不斷充實(shí)新的內(nèi)涵?!半p一流”建設(shè)強(qiáng)調(diào)高校教師要有較高的思想政治素質(zhì)和業(yè)務(wù)素質(zhì),并特別強(qiáng)調(diào)要“傳承創(chuàng)新優(yōu)秀文化”。我國行業(yè)特色型大學(xué)作為承擔(dān)行業(yè)人才培養(yǎng)和供給的高等教育載體,必須承擔(dān)“行業(yè)精神”傳承的歷史使命和責(zé)任,這也是各行業(yè)特色型大學(xué)“特色一流大學(xué)精神和大學(xué)文化”建設(shè)的重要組成部分和內(nèi)容,因此,行業(yè)特色型大學(xué)教師要注重行業(yè)精神的培育與宣傳。
圖 2 任務(wù)調(diào)度和執(zhí)行框架圖Fig.2 Frame diagrams of task scheduling and execution
從圖2可以看出,SparkContext啟動用戶程序,負(fù)責(zé)與Executor通過資源調(diào)度模塊進(jìn)行通信;Executor通過Worker節(jié)點(diǎn)運(yùn)行,負(fù)責(zé)執(zhí)行任務(wù)[10].
(3) 結(jié)果展示層主要是對數(shù)據(jù)分析層所分析的用戶軌跡數(shù)據(jù)結(jié)果以圖表等形式直觀地展示出來.
在獲取移動用戶行為軌跡數(shù)據(jù)的過程中,主要通過GPS記錄器、具有GPS功能的手機(jī)、手環(huán)和移動APP獲取用戶行為軌跡信息[11-12].全球定位系統(tǒng)主要是通過衛(wèi)星信號記錄坐標(biāo)數(shù)據(jù),記錄的時(shí)間頻率由移動設(shè)備決定;移動軌跡數(shù)據(jù)是用戶使用移動終端時(shí)產(chǎn)生的坐標(biāo)信息.所用的移動用戶行為軌跡數(shù)據(jù)來自微軟研究亞洲項(xiàng)目中的數(shù)據(jù),該數(shù)據(jù)集包括182個(gè)志愿者自2007.4月到2012.8月出行的經(jīng)度、緯度、海拔高度及出行時(shí)間、出行方式等,數(shù)據(jù)集中相關(guān)定義:
(1) GPS軌跡點(diǎn):t時(shí)刻下軌跡點(diǎn)的經(jīng)緯坐標(biāo)(x,y,t);
(2) 用戶行為軌跡:連續(xù)的軌跡點(diǎn)構(gòu)成用戶行為軌跡T={(X1,Y1,Z1)…(Xn,Yn,Zn)}.
GPS采集的數(shù)據(jù)是用戶移動行為軌跡數(shù)據(jù)的主要來源,客觀反映了其在真實(shí)世界中的路線軌跡,以海量軌跡行為數(shù)據(jù)集為基礎(chǔ),從分析移動行為軌跡數(shù)據(jù)出發(fā),得到移動用戶的普遍行為特點(diǎn)[13-15].
在對出行方式進(jìn)行統(tǒng)計(jì)分析時(shí),采用Pearson卡方檢驗(yàn)對移動軌跡數(shù)據(jù)因素間的相關(guān)性分析,在對數(shù)據(jù)處理分析前,應(yīng)獲取判斷相關(guān)性的因子,由于在獲取因子時(shí)互不干擾,因此,創(chuàng)建兩個(gè)彈性分布式存儲(即RDD)對數(shù)據(jù)文件進(jìn)行處理得到原始數(shù)據(jù)集合,通過調(diào)用SparkContext中的sc.textFile()讀取HDFS中的分布式文件,并以數(shù)據(jù)分片的形式存儲在集群中[16],通過.flatMap()函數(shù)對每行的單詞以空格分隔為單詞的列表,然后將這個(gè)按照行構(gòu)成的單詞列表合并為單詞列表集合,將所得單詞列表集合中的每個(gè)單詞轉(zhuǎn)化為Double類型.map(-.toDouble).得到處理好的原始數(shù)據(jù)集合,在原始數(shù)據(jù)集合上采用卡方檢驗(yàn)對數(shù)據(jù)的處理步驟如下:
(1) 任意選定兩個(gè)獨(dú)立因子(如出行人員a,出行方式b),提出原假設(shè)值H0;
(2) 在出行方式數(shù)據(jù)集中各屬性交叉統(tǒng)計(jì),記錄出現(xiàn)頻數(shù)f,行總頻數(shù)R,列總頻數(shù)C;
圖 3 出行方式統(tǒng)計(jì)結(jié)果圖Fig.3 Statistical results of travel patterns
(5) 設(shè)定顯著性水平α,當(dāng)觀察頻數(shù)和期望頻數(shù)偏離程度較大時(shí)(即χ2〉α),則拒絕該假設(shè),即認(rèn)為該出行人員a拒絕該出行方式b;當(dāng)觀察頻數(shù)和期望頻數(shù)偏離程度較小時(shí)(即χ2〈α),則接收該假設(shè),即認(rèn)為該出行人員接受該出行方式.基于此對數(shù)據(jù)進(jìn)行處理,得到出行人員對不同出行方式的接受程度,即得到對出行方式的統(tǒng)計(jì)結(jié)果如圖3所示.
從圖3可以看出,基于特定應(yīng)用場景下的移動用戶軌跡數(shù)據(jù)統(tǒng)計(jì),人們的出行方式普遍選擇步行、公交車、自行車、小汽車等,基于此特定數(shù)據(jù)下的多種出行方式,步行是被人們接受的出行方式,其次是公交和自行車,而摩托車則受用戶接受的程度較?。欢紤]出行方式可能會受出行距離、出行天氣等客觀因素的影響,不能僅從此統(tǒng)計(jì)結(jié)果得出何種出行方式更受人們青睞.文中以出行距離為限制條件,分析不同出行距離對出行方式選擇的影響.
在分析出行方式排名時(shí),通過Spark并行處理不同時(shí)間段的距離,對所得距離用K-Means算法聚類分析,該算法通過迭代過程把數(shù)據(jù)集劃分為不同類別,使評價(jià)聚類性能的準(zhǔn)則函數(shù)達(dá)到最優(yōu)[17].
如上文所述,同一個(gè)用戶的GPS軌跡數(shù)據(jù)包括軌跡點(diǎn)(x,y,t),通過式(1)歐式距離公式計(jì)算用戶從t1時(shí)刻的軌跡點(diǎn)(x1,y1)到t2時(shí)刻的軌跡點(diǎn)(x2,y2)之間的兩點(diǎn)距離:
(1)
式中:TA,TB為用戶軌跡點(diǎn);xak為TA軌跡中第k個(gè)軌跡點(diǎn)的經(jīng)度;xbk為TA軌跡中第k個(gè)軌跡點(diǎn)的緯度,同理可知uak,ubk的含義.由于各個(gè)軌跡點(diǎn)間的距離各自獨(dú)立互不干擾,因此可以并行化處理,多個(gè)任務(wù)同時(shí)處理軌跡點(diǎn)間的距離,得到用戶軌跡點(diǎn)間的距離數(shù)據(jù)集D(d1,d2,…dn),改進(jìn)傳統(tǒng)的K-Means算法,對此距離數(shù)據(jù)集聚類分析,得到不同出行距離下的出行方式.
改進(jìn)傳統(tǒng)的K-Means算法,使其基于Spark數(shù)據(jù)分析層中的MapReduce模式并行處理用戶出行方式數(shù)據(jù)集主要步驟:
(1) 對HDFS中的距離數(shù)據(jù)集D聚類中心初始化,選出初始聚類中心并存于文件中;
(2) 劃分HDFS中的數(shù)據(jù)集為多個(gè)數(shù)據(jù)塊,用Map函數(shù)處理;
(3) 將待聚類的距離數(shù)據(jù)集和初始聚類中心或迭代產(chǎn)生的新聚類中心作為Map階段的輸入,將數(shù)據(jù)塊以
(4) 在main函數(shù)中,計(jì)算聚類中心的相似度,如果大于預(yù)先設(shè)定的閾值則算法結(jié)束輸出結(jié)果,否則進(jìn)行下一次迭代.
在K-Means算法確定簇中心時(shí),將初始簇中心向量和簇類數(shù)目作為共享數(shù)據(jù),將整個(gè)移動數(shù)據(jù)分組成k類,開始隨機(jī)選擇簇中心,計(jì)算每個(gè)節(jié)點(diǎn)數(shù)據(jù)到簇中心的距離,將節(jié)點(diǎn)數(shù)據(jù)劃到離其最近的簇中心,通過每次迭代不斷更新簇中心[18],循環(huán)以上步驟,在目標(biāo)函數(shù)達(dá)到最優(yōu)或者最大迭代次數(shù)即可停止,K-Means算法處理數(shù)據(jù)步驟:
(1) 將出行方式劃分到對應(yīng)類中:對出行距離數(shù)據(jù)集D(d1,d2,…dn)隨機(jī)選取k個(gè)聚類中心點(diǎn){b1,b2,b3…bk};
(2) 重選聚類中心:在每個(gè)簇內(nèi),計(jì)算同一類中距離的均值作為該簇類的聚類中心.
采用歐氏距離公式計(jì)算不同出行方式下的出行距離數(shù)據(jù)集對象xd與中心點(diǎn)xb的距離dist(Td,Tb),對所有屬于同一中心點(diǎn),即相同出行方式下的出行距離求均值:
表 1 出行方式排名統(tǒng)計(jì)結(jié)果
在對出行方式排名分析的過程中,將距離數(shù)據(jù)集合D分為k個(gè)簇類,對每個(gè)點(diǎn)的出行方式xi進(jìn)行聚類處理,將每個(gè)點(diǎn)的出行方式xi僅歸于k個(gè)聚簇中的1個(gè),通過多次測試不同k值下的聚簇信息,選定最合適的k值及對應(yīng)k值下的出行方式xi,得到不同出行距離對出行方式的影響結(jié)果見表1.
從表1可以看出,以出行距離為限制條件,通過分析不同出行距離下對出行方式的選擇得出距離較遠(yuǎn)時(shí),人們傾向于選擇火車、汽車;距離較近時(shí),人們傾向于步行或自行車,說明出行距離對出行方式的選擇有很大的影響.
基于軌跡數(shù)據(jù)的行為分析已滲透到各行各業(yè),通過對移動用戶軌跡數(shù)據(jù)的分析,得到海量移動用戶的普遍行為特點(diǎn).
采用皮爾森卡方檢驗(yàn)算法統(tǒng)計(jì)軌跡數(shù)據(jù)中的出行方式,通過改進(jìn)的K-Means算法分析出行距離對出行方式的選擇.在實(shí)現(xiàn)了對用戶行為軌跡數(shù)據(jù)的統(tǒng)計(jì)分析后得出移動用戶行為的特點(diǎn)及用戶出行的規(guī)律,更好地實(shí)現(xiàn)了在正確的時(shí)間和地點(diǎn)為用戶提供個(gè)性化得服務(wù).
參考文獻(xiàn)(References):
[1] PENCHIKALA S.Big data processing with apache Spark-(Part 1):Introduction 2015[EB/OL].(2015-12-25)[2018-01-01].https://www.infoq.com/articles/apache-spark-introduction.
[2] 李致昊,朱閩峰,黃兆嵩,等.一個(gè)基于基站軌跡數(shù)據(jù)的城市移動模式可視分析系統(tǒng)[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2018,30(1):68-78.
LI Z H,ZHU M F,HUANG Z S,et al.A visual analytics approach for urban mobility patterns based on mobile phone data[J].Journal of Computer-Aided Design & Computer Graphics,2018,30(1):68-78.
[3] 葉舒雁,張未展,齊天亮,等.一種基于傳感器與用戶行為數(shù)據(jù)分析的移動學(xué)習(xí)場景感知分類方法[J].計(jì)算機(jī)研究與發(fā)展,2016,53(12):2721-2728.
YE S Y,ZHANG W Z,QI T L,et al.A sensor and user behavior data analysis based method of mobile learning situation perception[J].Journal of Computer Research and Development,2016,53(12):2721-2728.
[4] 王忠民,王希,宋輝.基于隨機(jī)Dropout深度信念網(wǎng)絡(luò)的移動用戶行為識別方法[J].計(jì)算機(jī)應(yīng)用研究,2017,34(12):1-6.
WANG Z M,WANG X,SONG H.Human activity recognition method based on random Dropout deep belief network[J].Application Research of Computers,2017,34(12):1-6.
[5] 朱進(jìn),胡斌,邵華.基于多重運(yùn)動特征的軌跡相似性度量模型[J].武漢大學(xué)學(xué)報(bào)(信息科學(xué)版),2017,42(12):1703-1710.
ZHU J,HU B,SHAO H.Trajectory similarity measure based on multiple movement features[J].Geomatics and Information Science of Wuhan University,2017,42(12):1703-1710.
[6] 黃文彬,吳家輝,徐山川,等.數(shù)據(jù)驅(qū)動的移動用戶行為研究框架與方法分析[J].情報(bào)科學(xué),2016,34(7):14-20.
HUANG W B,WU J H,XU S C,et al.Data-driven mobile user behavior analysis framework and methods[J].Information Science,2016,34(7):14-20.
[7] 劉先林.移動互聯(lián)時(shí)代的GIS[J].遙感信息,2017,32(1):1-4.
LIU X L.Geographic information in mobile internet Era[J].Remote Sensing Information,2017,32(1):1-4.
[8] 黃騰,阮宗才.基于運(yùn)動軌跡分析的頭部行為識別[J].計(jì)算機(jī)工程,2012,38(17):218-221,231.
HUANG T,RUAN Z C.Head behavior recognition based on analysis of trajectory[J].Computer Engineering,2012,38(17):218-221,231.
[9] 許佳捷,鄭凱,池明旻,等.軌跡大數(shù)據(jù):數(shù)據(jù)、應(yīng)用與技術(shù)現(xiàn)狀[J].通信學(xué)報(bào),2015,36(12):97-105.
XU J J,ZHENG K,CHI M M,et al.Trajectory big data:Data,applications and techniques[J].Journal on Communications,2015,36(12):97-105.
[10] 馮興杰,王文超.Hadoop與Spark應(yīng)用場景研究[J].計(jì)算機(jī)應(yīng)用研究,2018,35(9):1-8.
FENG X J,WANG W C.Hadoop and Spark application scenario research[J].Application Research of Computers,2018,35(9):1-8.
[11] 蒲劍蘇,屈華民,倪明選.移動軌跡數(shù)據(jù)的可視化[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2012,24(10):1273-1282.
PU J S,QU H M,NI M X.Survey on visualization of trajectory data[J].Journal of Computer-Aided Design & Computer Graphics,2012,24(10):1273-1282.
[12] 劉震,付俊輝,趙楠.基于移動通信數(shù)據(jù)的用戶移動軌跡預(yù)測方法[J].計(jì)算機(jī)應(yīng)用與軟件,2013,30(2):10-13.
LIU Z,FU J H,ZHAO N.Users mobile track prediction method based on mobile communication data[J].Computer Applications and Software,2013,30(2):10-13.
[13] 陳萬志,林澍,王麗,等.基于用戶移動軌跡的個(gè)性化健康建議推薦方法[J].智能系統(tǒng)學(xué)報(bào),2016,11(2):264-271.
CHEN W Z,LIN S,WANG L,et al.Personalized recommendation algorithm of health advice based on the user′s mobile trajectory[J].CAAI Transactions on Intelligent Systems,2016,11(2):264-271.
[14] LOU Y,ZHANG C,ZHENG Y,et al.Map-matching for low-sampling-rate GPS trajectories[C]//Proceedings of ACM SIGSPATIAL Conference on Geographical Information Systems.Seattle:ACM,2009:352-361.
[15] YE Y,ZHENG Y,CHEN Y,et al.Mining individual life pattern based on location history[C]//Tenth International Conference on Mobile Data Management:Systems,Services and Middleware.Taipei:IEEE,2009:1-10.
[16] 余濤,劉澤燊.基于Spark的并行遺傳算法研究[J].計(jì)算機(jī)時(shí)代,2017(1):43-46.
YU T,LIU Z S.Research of massive parallel genetic algorithm based on Spark[J].Computers Era,2017(1):43-46.
[17] 劉江華.一種基于kmeans聚類算法和LDA主題模型的文本檢索方法及有效性驗(yàn)證[J].情報(bào)科學(xué),2017,35(2):16-21.
LIU J H.A text retrieval method based on kmeans clustering algorithm and LDA topic model and its effectiveness[J].Information Science,2017,35(2):16-21.
[18] 王永貴,武超,戴偉.基于MapReduce的隨機(jī)抽樣k-means算法[J].計(jì)算機(jī)工程與應(yīng)用,2016,52(8):74-79.
WANG Y G,WU C,DAI W.k-means algorithm of random sample based on MapReduce[J].Computer Engineering and Applications,2016,52(8):74-79.