2.数据变换
挖掘的目标是寻找出高价值的商圈,需要根据用户的定位数据提取出衡量基站覆盖范围区域的人流特征,如人均停留时间和人流量等,高价值的商圈具有人流量大,人均停留时间长的特点,但是在写字楼工作的上班族在白天所处的基站范围基本固定,停留时间也相对较长,晚上的住宅区的居民所处的基站范围基本固定,停留时间也相对较长,仅通过停留时间作为人流特征难以区分高价值商圈和写字楼与住宅区,所以提取出来的人流特征必须能较为明显地区别这些基站范围。下面设计工作日上班时间人均停留时间、凌晨人均停留时间、周末人均停留时间和日均人流量作为基站覆盖范围区域的人流特征。
工作日上班时间人均停留时间是所有用户在工作日上班时间处在该基站范围内的平均时间,居民一般的上班工作时间是在9:00~18:00,所以工作日上班时间人均停留时间是计算所有用户在工作日9:00~18:00处在该基站范围内的平均时间。
凌晨人均停留时间是指所有用户在00:00~07:00处在该基站范围内的平均时间,一般居民在00:00~07:00都是在住处休息,利用这个指标则可以表征出住宅区基站的人流特征。
周末人均停留时间是指所有用户周末处在该基站范围内的平均时间,高价值商圈在周末的逛街人数和时间都会大幅增加,利用这个指标则可以表征出高价值商圈的人流特征。
日均人流量指平均每天曾经在该基站范围内的人数,日均人流量大说明经过该基站区域的人数多,利用这个指标则可以表征出高价值商圈的人流特征。
这4个指标的计算直接从原始数据计算比较复杂,需先处理成中间过程数据,再从中计算出这4个指标。
中间过程数据的计算以单个用户在一天里的定位数据为基础,计算在各个基站范围下的工作日上班时间停留时间、凌晨停留时间、周末停留时间和是否处于基站范围。假设原始数据所有用户在观测窗口期间(L天)曾经经过的基站有N个,用户有M个,用户i在j天经过的基站有num1,num2和num3,则用户i在j天在num1基站的工作日上班时间停留时间为weekday_num1ij,在num2基站的工作日上班时间停留时间为weekday_num2ij,在num3基站的工作日上班时间停留时间为weekday_num3ij;在num1基站的凌晨停留时间为night_num1ij,在num2基站的凌晨停留时间为night_num2ij,在num3基站的凌晨停留时间为night_num3ij;在num1基站的周末停留时间为weekend_num1ij,在num2基站的周末停留时间为weekend_num2ij,在num3基站的周末停留时间为weekend_num3ij;在num1基站是否停留为stay_num1ij,在num2基站是否停留为stay_num2ij,在num3基站是否停留为stay_num3ij,其中stay_num1ij、stay_num2ij和stay_num3ij的值均为1;对于未停留的其他基站,工作日上班时间停留时间、凌晨停留时间、周末停留时间和是否处于基站范围的值均为0。
对于num1基站,4个基站覆盖范围区域的人流特征的计算公式如下。
工作日上班时间人均停留时间:。
凌晨人均停留时间:。
周末人均停留时间:。
日均人流量:。
对于其他基站,计算公式一致。
对采集到的数据,按基站覆盖范围区域的人流特征进行计算,得到各个基站的样本数据,见表14-5。
表14-5 样本数据
数据详见:示例程序/data/business_circle.xls
由于各个属性之间的差异较大,为了消除数量级数据带来的影响,在进行聚类前,需要进行离差标准化处理,离差标准化处理的Python代码如下代码清单14-1,离差后的数据文件存储在当前目录的standardized.xls文件中。
代码清单14-1 离差标准化
#-*- coding: utf-8 -*- #数据标准化到[0,1] import pandas as pd #参数初始化 filename = '../data/business_circle.xls' #原始数据文件 standardizedfile = '../tmp/standardized.xls' #标准化后数据保存路径 data = pd.read_excel(filename, index_col = u'基站编号') #读取数据 data = (data - data.min())/(data.max() - data.min()) #离差标准化 data = data.reset_index() data.to_excel(standardizedfile, index = False) #保存结果
代码详见:示例程序/code/standardization.py
标准化后的样本数据见表14-6。
表14-6 标准化后样本数据
数据详见:示例程序/data/standardized.xls
14.2.4 模型构建
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论