张娱嘉 张景璐
摘 要:本文利用已有的开放平台研究现今的餐饮行业地区分布,并利用这种方法分析各地餐饮行业发展情况和预测可能的其他可以进行商业活动的地点。以北京作为一个典型案例,本文中演示了分析结构化与非结构化数据的方法,以增强应用性。
关键词:大数据 餐饮行业 信息系统
中图分类号:F724.6 文献标识码:A 文章编号:1672-3791(2018)01(b)-0046-02
现如今大数据在人类社会中起到了关键作用,社交媒体网站、新闻门户网站、数字地图导航提供商等軟件上产生的大数据为决策者提供了更多的资讯。我们希望大数据能帮助我们做出更加合理的决策,然而,很少有关于大数据分析的研究表明对战略决策的支持。此外,分析数字地图导航提供商的大数据用于决策支持的方法方法多种多样,特别是在餐饮行业。本研究采用科学研究方法,设计并评估“大数据分析”的方法,来辅助餐饮企业制定营业地点的决策。利用开放平台上评估分析现今已有的餐饮行业地区分布,并利用这种方法分析各地餐饮行业发展情况和预测可能的其他可以进行商业活动的地点。以北京作为一个典型案例,本文中演示了分析结构化与非结构化数据的方法,以增强在实际问题中的应用,该方法是通用的,它对其他大数据流也同样有适用性。
1 定位数据在现代网路服务中的重要意义
如今的信息化社会中,来源于个人的自愿分享和各种在线服务软件获得的内容,为大数据分析创造了很多机会。而移动互联时代,定位无处不在,任何一个应用只要想了解用户的位置,不管是为用户提供服务还是用于用户分析,就一定会用到定位,但仅仅是原始数据的获取,并不能帮助我们得到切实有用的信息,所以,我们需要使用科学系统的方法,对原始数据进行数据预处理,包括但不限于聚集、抽样、维归约离散化、二元化、变量变换等。之后可以进行形似化和相异性的度量,但是在对于数据的探索之中,数据的可视化可以格外清晰地展现数据的特征和属性之间的关系。在导航服务网站(如高德、百度地图等)中,多种类型的数据不断增长,在任何真实分析项目中,我们都必须处理大量的数据。然而,传统的数据管理方法既不能管理如此庞大的数据量,也不能处理其有效增长和维护,因为相关数据的数量和速度会迅速增加。
如今的开放平台能够提供2D、3D、卫星多种地图形式供开发者选择,开放平台提供的API和SDK可以适应各种平台的地图构建工作,同时还提供强大的地图再开发能力和地图数据支持。
2 数据的预处理
数据的预处理是一个非常广泛的概念,我们为了分析处理北京餐厅地理信息数据,需要用到以各种方式关联起来的策略和算法,大体上,这一技术分为两类,就是选择分析所需要的数据对象和属性,以及创建改变属性。借此,我们可以改善数据挖掘过程中的各种冗杂工作,减少工作时间,增加效率。
聚集可以将两个或多个对象合并成单个对象,比如:收集到的餐饮地理数据,可以将其一个餐馆所有的事务合并成一个餐馆事务,那么数据的数量可以减少为餐馆的数量。这里的问题就是在创建这个聚集的事务时,我们需要考虑到每个属性的不同,使用不同的方法对数据进行合并操作,如果是定量属性,如访问次数、餐厅各项价格等,可以通过求和求平均值进行处理,而定性属性可以视其重要程度进行化简和聚集,成为一个集合。这可以帮助我们使用更少的精力时间对庞大数据进行预处理,以便于后文中的可视化操作。
3 大数据与传统的关系型数据库
大数据与NoSQL数据库近来被认为是完美搭配,但传统的关系型数据库也并不能被轻易取代,依旧有着难易度带的地位。如今的数据量时常能够达到难以用传统关系型数据库处理程度,而且有着越来越多的数据不再简单建立在传统关系之上,有了更高的可扩展性。正如MySQL凯源数据库最初版本开发者Monty Widenius所言,NoSQL需要着更多的优化持续开发成本,而很多公司无法负担也无需负担这一成本。大多数人依旧需要传统的关系型数据库来对数据进行管理,而在单机的环境之上SQL具有更强劲的性能表现,如本文涉及到的更具体分析部分。只有在集群环境中,NoSQL在键值查找上会比SQL快。
所以,在进行限定地区的具体数据和具体数据关系分析中,我们可以进一步筛选并找出自己所需的数据,展示传统的关系型数据库进行的具体分析。可以从庞大的数据之中只选择我们需要的数据,通过分析在开放应用API获取的数据,得到北京市的餐饮服务信息,分析各个区餐饮行业的情况,简略代码如下:
for url in urlList:
html = url_open(url)
target = json.loads(html)
gsNo = int(target['count'])
pageNo = divmod(gsNo,20)[0]+1 if divmod(gsNo,20)[1]>0 else divmod(gsNo,20)[0]
cityListNo.append([cityList[i][0],cityList[i][1],gsNo,pageNo])
totalNum = totalNum + gsNo
i = i + 1
# ['010', '北京', 528, 27]
return cityListNo
def get_GSByCity():
for city in cityListNo:
urlList = []
def get_gsList():
cityUrlList = get_GSByCity()
#cityurl为北京市的url
allList = []
for cityUrl in cityUrlList:
cityPoisList = []
for url in cityUrl:
html = url_open(url)
target = json.loads(html)
pagePoisList = target['pois']
cityPoisList.append(pagePoisList)
cityPoisList = sum(cityPoisList,[])
allList.append(cityPoisList)
运行程序得到北京市的餐饮服务数据,在建立数据库并进行可视化之前,先要修改MySQL系统文件保证数据和进行处理的计算机编码格式保持一致,不然可能会导致数据乱码,并对数据可视化造成一定而影响。
建立合适的数据库,将数据导入数据库。因为得到的数据包含编号、餐厅名称,所在省市、城市、城区名称、具体地址、餐厅风格标签和具体经纬度数据,所以,基于得到的数据我们可以建立数据库表格,并把数据导入到建立的数据库中。
导入成功后,处理数据,找到各区餐饮服务的总体数量制作成饼图来直观感受北京各区的餐饮分布情况。
显示数据为:海淀区27%、朝阳区37%、东城区18%、西城区15%、大兴区3%;从这些数据可以看出,朝阳区明显高于其他地区,说明朝阳区的餐饮服务在量的方面领先于其他,综合朝阳区的人口情况尤其是迁入迁出情况、面积占比,这一区域的活跃度相对较高。
4 对于北京餐饮的数据可视化
在大多数的学科之中通常我们会强调算法和数学方法,而可视化数據挖掘在日常生活之中能够起到直观的效果。
数据可视化的第一步是将信息映射成可视模式,即是把数据中的对象、属性和联系应射程科室的对象、属性和联系,之后通过选择做出简化,将数据导出到CSV文件,生成可视化图像,通过图像可以观察需要的结论。
5 北京餐饮服务热力图
餐饮服务热力图可以观察到在北京中心城区之外,还有几个餐饮服务业集中的地区,说明这几个位置也是人流相对密集的地点,在其周围可能存在较大聚落,可以观察到其中就有北京首都国际机场,雁栖湖景区等位置,说明在中心城区和大的聚落之外,交通枢纽和风景区也是重要的商业活动和餐饮服务业发达的地点。商业活动由中心城区向外扩散,而在郊区的交通枢纽和风景区也有零星分布。这一结果与北京城市规划也是相符的,其他采用网格布局(grid layout)的城市可能会显现出截然不同的结果。
6 结语
以上作为一个说明性案例,证明足够的餐厅地理信息数据可以帮助做出热点预测决策制定等工作。如利用内蒙古的数据,可以进行类似的实验展示城市餐饮服务在地理位置上的特征,也可侧面探索居民行为特征。这些数据可为餐饮决策者提供参考信息分析竞争者情况,寻找潜在市场,证实大数据处理在分析决策上的效用。还能将其应用到其他领域如旅游行程规划,可以综合地理位置、访问频率为旅客规划行程使用地理定位数据显示附近的餐厅。
参考文献
[1] J.Bao,Y.Zheng,D.Wilkie,et al.Recommendations in location-based social networks:a survey[J].Geoinformatica,2015,19(3):525-565.
[2] J Miaha,H Q Vu,John Gammackc,et al.A Big Data Analytics Method for Tourist Behaviour Analysis[J].Information & Management,2016,54(6).