基于通信数据的移动用户行为分析[摘要]认为分析移动用户行为特征与分类,对移动应用个性化服务的改进具有重要的参考价值。基于国内电信运营商随机抽取某市一万移动用户一周的日志记录,其中含有4万余条通话记录和200余万条网络请求,每条请求包含对应的基站标号以及基站地理位置。本研究从消费能力、通话量、网络请求量、位移量四个维度从这批数据中提取14种基本特征指标。利用K-Means聚类方法将移动用户区分成规律通话型、随机上网型、居家节约型和随机高消费型等四类用户模型。[关键词]用户行为分析;移动用户研究;聚类分析;数据挖掘[分类号]G351引言随着移动通信技术的迅猛发展和广泛应用,移动终端大量普及于民众,也产生了大量用户信息记录,如何利用大数据来了解移动用户行为与习惯特征的研究不断涌现。通过对移动用户的分析与了解,许多企业与政府部门可以依据结果提供各式各样的服务与应用方案。移动用户行为分析通常是指基于地理信息涉及用户访问网络、通话的行为规律与活动研究。电信运营商通过获取用户访问移动互联网、使用移动应用及通话的行为规律,能够有效地配置网络资源并提供具有针对性的服务。近年来,针对桌面端日志挖掘的研究层出不穷,[15,16,17]都是针对桌面端web服务的后台日志挖掘入手,通过分析用户访问页面的占比、用户访问的页面顺序等对用户的行为进行建模。而针对移动用户的行为分析研究则在很多方面借鉴了桌面端的研究,同时利用移动端设备的地理位置位置记录,挖掘出用户移动轨迹模式,找出轨迹中重要的位置并结合通信数据、互联网日志数据以及移动应用数据作为研究的基础,分析挖掘移动用户的需求、行为、兴趣,甚至是通过预测用户的目的地、推测用户下一步即将到达的位置以便提供针对性的推荐服务[1,13]。传统的移动用户轨迹分析,多数利用软件采集仿真数据,属于细时空粒度下的数据,即可以采集到用户一天中连续时间段的位置数据。Y.Zhu等作者着眼于用户位置数据中经常出现的地点,并根据出现时间来推测用户所处的位置是家还是公司[2]。此外,S.Akoush和A.Sameh则通过指定时间粒度,聚类用户在多日同一时间段的行动轨迹,利用稀疏数据拟合出用户在这时间段移动轨迹的目的[3]。研究用户的移动轨迹,实现预测用户下一步位置目的的方法,包括利用贝叶斯算法、聚类、数据挖掘方法等。实际上,电信运营商服务器上的数据是粗时间粒度的,唯有请求通信或上网时才会被记录,因此用户位置变化是不连贯的,具有随机性、稀疏性的特点,不能支持用户行为轨迹直接且连续的刻画描述。谭均元等人提出了生活熵概念作为用户移动轨迹规律程度的度量[4],采用了个人多天时段移动序列的算法来弥补实际数据的这种不足,即通过对多天数据的分析来获得更准确的用户移动轨迹。S.A.Shad则结合地理信息与用户提供的上下文语义信息来增加预测准确性[5]。梁鹏等作者则透过在WAP网关进行数据采集,并对数据进行数值分析和拟合,最后得到用户行为的统计性特征来建立用户行为分析模型[6]。吕洋利用上网数据研究用户的网络请求行为、时间、网页应用、数据包大小等信息建立用户行为模型[7]。Y.Liu关注于移动用户上网过程中访问频率、访问时间、访问深度之间的关系[8]。G.F.Zhao等作者则利用二分网络模型来分析移动用户上网过程中用户与不同网站之间的关联。对移动用户上网请求过程中数据包的大小、请求响应时间等的研究也是与运营商相关的研究方向[9,10,11,12]。由此可知,国内外对移动用户行为的研究呈现向上的趋势,研究的方法也越来越多样。笔者基于运营商提供的移动数据,提取用户特征,并将选取的特征作为聚类分析的输入参数,以发现具有不同行为特征的用户类别。利用消费能力、通话量、网络请求量、位移量四个维度作为分析用户行为的基础,从该批数据中提取相关的评价指标。通过聚类算法对用户的分类,分析各类型用户所独有的属性、行为特征。各类用户模型分析结果可以作为电信运营商、服务或应用提供企业根据不同用户类型提供更好的推荐服务。2数据集及预处理2.1数据集本研究的数据集来自国内移动电信运营商某市内的一万注册用户的一周数据,时间为2013年12月的第一周。数据包括用户基本信息、通话记录、上网记录、以及使用基站地理位置等,其中共有456006条通话记录和21441422条网络请求记录。该批数据中的所使用到的具体的信息字段包括:用户编号(user_id)、移动产品品牌(brand_name)、用户通话产生的费用(call_fee)、用户上网产生的流量费用(gprs_fee)、增值业务费(databusiness_fee)、终端品牌(brand_chn)、手机操作系统(operation_sys)、通话开始时间(start_time)、通话结束时间(end_time)、通话基站纬度(longitude)、通话基站经度(latitude)、网络请求时间(start_time)、网络请求基站纬度(longitude)、网络请求基站经度(latitude)等。考虑到商业机密和隐私保护,笔者只对部份信息进行分析和结果展示。2.2数据预处理数据预处理的主要工作包含删除空记录;删除通话数据异常记录(单一通话连续时长超过十小时);清除与标记部份字段值缺失记录;以及清理用户请求基站服务的异常记录。通过数据清理与预处理,最后共8916个有效用户。(1)部份字段值缺失记录该批数据用户的基本信息记录中,对于用户通话产生的费用、用户上网产生的流量费用、增值业务费数据缺失的情况,这是由于用户在相应字段意义内未产生额外费用,统一赋值为0;对于手机品牌或操作系统值缺失的情况,我们推测这是由于用户是用的手机并不属于主流品牌或主流操作系统,统一赋值为其他(OTHER);用户的通话与上网数据记录有开始时间或结束时间缺失,对这部分记录做了删除处理;并且用户通话和上网数据中的位置信息的经纬度缺失的情况,也做了清除处理。(2)用户请求基站服务的异常记录根据同一用户不同时间的连续位移数据分析,发现部份记录用户在极短时间内进行了极大的位移。本研究利用通话起始、结束时间、上网请求时间、基站纬度、基站经度来计算用户位移时速,将时速大于100km/h的用户记录清除。在数据的处理过程中,通过Python这种简单易用的编程语言结合其用于数据分析处理的类库Numpy、Pandas[14]等大大降低了的我们的工作难度。3特征选取本研究通过特征选取与统计结果来挖掘移动用户的特征,并利用这特征作为聚类的参数,将移动用户行为分类。本研究利用消费能力、通话量、网络请求量、位移量四个维度作为分析用户行为的基础。根据这四个维度的特征从该批数据中提取相关的评价指标,分别包含。消费能力:通过客户品牌、系统、话费三种来综合用户的消费阶层;通话量:利用每日通话次数、通话时长、每次通话时长、以及各时间段通话时长分布等作为用户通话习惯的评价指标;网络请求量:利用网络请求次数、各时间段的网络请求分布等统计结果作为描述用户上网习惯的特征参数;位移量:使用每日出现的基站数、位置位移量与生活熵的统计和计算结果来描述用户一天中位置变化参数。3.1消费能力本研究通过客户品牌、手机系统、话费三种特征来综合评价,评量用户的消费阶层。该批数据的电信运营商提供主要三个客户品牌:动感地带、全球通和神州行,动感地带是面向年轻群体的客户品牌,目标用户是每月月话费值低,但是数据业务比重高的用户。全球通则面向中高端用户,较早地推出国际漫游和手机银行等加值服务。神州行则是面向大众用户,客户群的职业、年龄等跨度都较大,资费注重实惠、大众化。由此可知,客户品牌作为用户个人消费能力的一种特征。该批数据中,属于“动感地带”客户品牌的用户占全部的66%,使用“全球通”的用户占全部的13%,而“神州行”的用户占全部的21%。因此,主要手机移动用户以年轻用户为居多,并数据业务比重高的需求大。由于每个用户移动装置的具体消费型号无法取得,本研究通过该用户手机的品牌与操作系统作为该用户的手机消费喜好参考特征之一,依据用户使用的系统与品牌主要分成安卓(Android)、苹果(iOS)、微软(Windows)、黑莓(Blackberry)以及其他(Other)。由于安卓系统占很大比例,而且该系统的手机消费分布广泛,因此在切分成三星(Samsung)、小米/魅族,以及其他安卓(OthersofAndroid)。小米手机和魅族在价位及使用的用户群方面类似,因此本研究将其归为一类。尽管黑莓系统手机数量很少,但较多专业人员使用,本研究仍单独划为一类。经统计使用系统的用户比例分别为:苹果,22.02%。微软,2.32%。黑莓,0.25%。三星,19.39%。小米/魅族,7.92%。其他安卓,20.12%。其它系统,27.93%。由此可知,多数用户仍选用安卓与苹果系统的手机。用户在使用移动服务的过程中,消费主要分为三类:通话费、流量费和增值业务费。本研究将这三种消费的总和作为移动用户的消费金额。统计发现,用户月话费额的均值为51.01元,中位数为33.20元,并且半数的用户话费介于12.77至66.52元之间。3.2通话量利用平均每日通话次数、平均通话时长、每次平均通话时长、以及各时间段通话时长分布等分析出用户通话习惯的评价指标。将计算出用户多天的通话总次数,再除以天数作为平均每日通话次数的计算方式。根据计算结果,用户平均每天的通话次数为7.19次。通话最少的用户,7天内只通话一次。最多的用户则平均每天通话89.43次。75%的用户平均每天的通话次数在9.14次上下。相同的,平均每日通话时长是指用户一周的通话总时长,除以天数的计算结果。该批数据的每日通话时长统计分布如图1所示。所有用户平均每日通话时长为2440.49s,四分位数分别为724.25s、1481.93s和2854.96s,可见大多数用户每天的通话时间都比较短,少数用户的大量通话行为对平均数影响比较大。并且,计算用户多天的通话总时长除以通话总次数作为每次平均通话时长。经统计结果得到用户的平均每次通话时长为335.65s,四分位分别是204.59s、253.18s、352.00s。每次通话时长最短只有46s,最长的则有3022s.图1平均每日通话时长分布为了分析移动用户的通话时长分布,本研究将一天分为8个时间段,从0点开始,每3个小时作为一个时间段。这划分方式将有意义的区别出用户休息时间、就餐时间、工作时间及上下班时间等。这8个时段的通话统计结果如图2所示,为了优化展示,图2显示随机抽取十分之一的用户通话数据,纵轴与横轴分别代表平均通话时长与个别用户。通过统计结果,75%的用户的通话行为模式是早上6点以后开始使用手机,在两个时段“9点至12点”及“15点至18点”处于通话高峰,在18点至21点之间仍有相当高的通话量,晚上9点后则通话趋缓。图2一天8个时段的通话时长分布(图中横线为各时段的四分位线)利用这时段的切割具体分析每位移动用户的通话行为,将个得到该用户隐性的特征。举例来说,以“21:00-24:00”时段中,将通话时长最长的用户一天的通话数据作展示分析,如图3所示。该用户一天内平均通话时长比较80%的用户高,早上6点前,该用户处于不通话的状态,随后的时间段通话量即高出90%的用户,而在后面5个时间段里皆是通话时长最高的用户。由此可知,该用户是生活规律型上班族,而且全天均有大量通话行为,推测该用户的工作业务与通话的相关度较高,同时在下班时段也有很多公务及私人通话的需求。综合以上的统计,不同用户间的通话习惯差别很大,本研究利用这8个时段的平均通话时长作为分析参数之一。图3某用户一天的通话时长折线图3.3网络请求量与通话量的特征选取方法一样,利用平均网络请求次数、各时间段的网络请求分布作为描述用户上网习惯的特征,将一周上网请求次数总和除以天数作为平均每天网络请求次数。经统计的结果,用户每天的平均网络请求次数为313.39次,并且四分之三的用户平均每日网络请求次数维持在382.14次以下。请求最多的用户高达到13845次。本研究仍然利用8个时间段作为用户一天上网请求行