计算机竞赛 大数据商城人流数据分析与可视化 - python 大数据分析

news2024/11/25 4:21:07

0 前言

🔥 优质竞赛项目系列,今天要分享的是

🚩 基于大数据的基站数据分析与可视化

该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:3分
  • 工作量:3分
  • 创新点:3分

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

课题背景

  • 随着当今个人手机终端的普及,出行群体中手机拥有率和使用率已达到相当高的比例,手机移动网络也基本实现了城乡空间区域的全覆盖。根据手机信号在真实地理空间上的覆盖情况,将手机用户时间序列的手机定位数据,映射至现实的地理空间位置,即可完整、客观地还原出手机用户的现实活动轨迹,从而挖掘得到人口空间分布与活动联系特征信息。移动通信网络的信号覆盖从逻辑上被设计成由若干六边形的基站小区相互邻接而构成的蜂窝网络面状服务区,手机终端总是与其中某一个基站小区保持联系,移动通信网络的控制中心会定期或不定期地主动或被动地记录每个手机终端时间序列的基站小区编号信息。
  • 商圈是现代市场中企业市场活动的空间,最初是站在商品和服务提供者的产地角度提出,后来逐渐扩展到商圈同时也是商品和服务享用者的区域。商圈划分的目的之一是为了研究潜在的顾客的分布以制定适宜的商业对策。

分析方法与过程

初步分析:

  • 手机用户在使用短信业务、通话业务、开关机、正常位置更新、周期位置更新和切入呼叫的时候均产生定位数据,定位数据记录手机用户所处基站的编号、时间和唯一标识用户的EMASI号等。历史定位数据描绘了用户的活动模式,一个基站覆盖的区域可等价于商圈,通过归纳经过基站覆盖范围的人口特征,识别出不同类别的基站范围,即可等同地识别出不同类别的商圈。衡量区域的人口特征可从人流量和人均停留时间的角度进行分析,所以在归纳基站特征时可针对这两个特点进行提取。

总体流程:

在这里插入图片描述

1.数据探索分析

EMASI号为55555的用户在2014年1月1日的定位数据
在这里插入图片描述
在这里插入图片描述

2.数据预处理

数据规约

  1. 网络类型、LOC编号和信令类型这三个属性对于挖掘目标没有用处,故剔除这三个冗余的属性。而衡量用户的停留时间并不需要精确到毫秒级,故可把毫秒这一属性删除。
  2. 把年、月和日合并记为日期,时、分和秒合并记为时间。
    在这里插入图片描述
 import numpy as np  
import pandas as pd  

data=pd.read_excel(‘C://Python//DataAndCode//chapter14//demo//data//business_circle.xls’)  
 

# print(data.head())  

#删除三个冗余属性  
del data[[‘网络类型’,‘LOC编号’,‘信令类型’]]



    #合并年月日
    periods=pd.PeriodIndex(year=data['年'],month=data['月'],day=data['日'],freq='D')
    data['日期']=periods
    time=pd.PeriodIndex(hour=data['时'],minutes=data['分'],seconds=data['秒'],freq='D')
    data['时间']=time
    data['日期']=pd.to_datetime(data['日期'],format='%Y/%m/%d')
    data['时间']=pd.to_datetime(data['时间'],format='%H/%M/%S')



数据变换

假设原始数据所有用户在观测窗口期间L( 天)曾经经过的基站有 N个,用户有 M个,用户 i在 j天在 num1 基站的工作日上班时间停留时间为
weekday_num1,在 num1 基站的凌晨停留时间为night_num1 ,在num1基站的周末停留时间为weekend_num1, 在
num1基站是否停留为 stay_num1 ,设计基站覆盖范围区域的人流特征:
在这里插入图片描述

在这里插入图片描述
由于各个属性的之间的差异较大,为了消除数量级数据带来的影响,在进行聚类前,需要进行离差标准化处理。

 #- _\- 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) #保存结果



在这里插入图片描述

3.构建模型

构建商圈聚类模型

采用层次聚类算法对建模数据进行基于基站数据的商圈聚类,画出谱系聚类图。从图可见,可把聚类类别数取3类。

 #- _\- coding: utf-8 -_ -  
 #谱系聚类图  
import pandas as pd  
  
#参数初始化  
standardizedfile = ‘…/data/standardized.xls’ #标准化后的数据文件  
data = pd.read_excel(standardizedfile, index_col = u’基站编号’) #读取数据




```python
import matplotlib.pyplot as plt
from scipy.cluster.hierarchy import linkage,dendrogram
#这里使用scipy的层次聚类函数

Z = linkage(data, method = 'ward', metric = 'euclidean') #谱系聚类图
P = dendrogram(Z, 0) #画谱系聚类图
plt.show()
```



在这里插入图片描述

模型分析

针对聚类结果按不同类别画出4个特征的折线图。

#- _\- coding: utf-8 -_ - 
#层次聚类算法 
import pandas as pd 

#参数初始化 
standardizedfile = ‘…/data/standardized.xls’ #标准化后的数据文件
k = 3 #聚类数
data = pd.read_excel(standardizedfile, index_col = u’基站编号’) #读取数据

    from sklearn.cluster import AgglomerativeClustering #导入sklearn的层次聚类函数
    model = AgglomerativeClustering(n_clusters = k, linkage = 'ward')
    model.fit(data) #训练模型
    
    #详细输出原始数据及其类别
    r = pd.concat([data, pd.Series(model.labels_, index = data.index)], axis = 1)  #详细输出每个样本对应的类别
    r.columns = list(data.columns) + [u'聚类类别'] #重命名表头
    
    import matplotlib.pyplot as plt
    plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
    plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
    
    style = ['ro-', 'go-', 'bo-']
    xlabels = [u'工作日人均停留时间', u'凌晨人均停留时间', u'周末人均停留时间', u'日均人流量']
    pic_output = '../tmp/type_' #聚类图文件名前缀
    
    for i in range(k): #逐一作图,作出不同样式
      plt.figure()
      tmp = r[r[u'聚类类别'] == i].iloc[:,:4] #提取每一类
      for j in range(len(tmp)):
        plt.plot(range(1, 5), tmp.iloc[j], style[i])
      
      plt.xticks(range(1, 5), xlabels, rotation = 20) #坐标标签
      plt.title(u'商圈类别%s' %(i+1)) #我们计数习惯从1开始
      plt.subplots_adjust(bottom=0.15) #调整底部
      plt.savefig(u'%s%s.png' %(pic_output, i+1)) #保存图片


在这里插入图片描述

对于商圈类别1,日均人流量较大,同时工作日上班时间人均停留时间、凌晨人均停留时间和周末人均停留时间相对较短,该类别基站覆盖的区域类似于商业区

在这里插入图片描述

对于商圈类别2,凌晨人均停留时间和周末人均停留时间相对较长,而工作日上班时间人均停留时间较短,日均人流量较少,该类别基站覆盖的区域类似于住宅区。

在这里插入图片描述

对于商圈类别3,这部分基站覆盖范围的工作日上班时间人均停留时间较长,同时凌晨人均停留时间、周末人均停留时间相对较短,该类别基站覆盖的区域类似于白领上班族的工作区域。

总结

商圈类别2的人流量较少,商圈类别3的人流量一般,而且白领上班族的工作区域一般的人员流动集中在上下班时间和午间吃饭时间,这两类商圈均不利于运营商的促销活动的开展,商圈类别1的人流量大,在这样的商业区有利于进行运营商的促销活动。

最后

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1004171.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

探索移动应用的自动化测试:如何做出明智的工具选择

引言 随着移动应用的日益普及,其在日常生活和工作中的作用也越来越大。为了确保应用的稳定性和用户体验,自动化测试已经成为了开发流程中不可或缺的一部分。本文将深入探讨如何为移动应用选择合适的自动化测试工具,以及这些工具背后的技术原…

【广州华锐互动】云智慧工厂数字孪生:打造高效、灵活的智能制造新模式

随着工业4.0的到来,数字孪生技术逐渐成为实现工业生产智能化升级的关键。云智慧工厂数字孪生利用先进的数字化技术,创建物理实体的虚拟模型,实现对生产过程的实时监控、优化与管理。 云智慧工厂数字孪生是指通过数字孪生技术,构建…

考研英语笔记:程序员是否勤奋就看他的英语好不好

一位大佬朋友圈写道:看程序员是否勤奋就看他的英语好不好,智商高不高就看他算法好不好。 这句话我当时看到了很触动,默默的记在了心底。 对我来说,算法就免了,但学英语我一直在坚持。我不敢说我是优秀的程序员&#xf…

如何在三星手机上截屏?每一款三星手机的每一种方法,包括S23

无论你是将截图作为保存图片、消息或信息的快速方式,还是作为演示像这篇文章这样有用的操作方法的方式,能够截图都会非常有用。 但并不是所有的手机都以相同的方式进行屏幕截图。事实上,并不是所有的三星手机都能做到这一点。例如&#xff0…

MySql安装包配置

电脑重配过多次,此为mysql安装记录贴,方便查阅 从官网下载的安装包进行本地配置 下载地址 解压下载下来的zip压缩包 解压出来的文件中新增配置my.ini文件 [mysqld] # 设置3306端口 port3306 # 设置mysql的安装目录 basedirD:\\software\\package\\M…

神经网络 05(损失函数)

一、损失函数 在深度学习中, 损失函数是用来衡量模型参数的质量的函数, 衡量的方式是比较网络输出和真实输出的差异,损失函数在不同的文献中名称是不一样的,主要有以下几种命名方式: 损失函数 (loss function) 代价函…

科研小工具|胰岛素敏感性计算公式

简介 胰岛素敏感就是描述胰岛素抵抗的程度。 计算方式 HOMA-IR是用于评价个体胰岛素抵抗水平的指标。计算方法如下: 胰岛素抵抗指数(HOMA-IR)空腹血糖(FPG,mmol/L)空腹胰岛素(FINS&#xff0…

上海某游戏小厂面试,也扛不住了...

今天分享一位同学面试上海某游戏公司的面经,同学的技术栈是Java后端,虽然不是大厂,但是一面面试也被问了 25 多个问题,时长也接近 1 小时了 面试过程中,也问到了 Linux socket 编程,游戏公司都会对网络协议…

封神台----为了女神小芳

目录 目录 前言 文章框架 1,题目 2,实验前的准备 3,进入传送门 4,使用Sqlmap对网站进行监测 4.1.检测目标地址是否存在注入点 4.2、检测数据库中的库名 4.3、选择需要爆的库开始爆表名 4.3.1,后面内容的一些注意点: 4.3.2,开始进…

esxi下实现ikuai相同的两个网卡,单独路由配置

1.首先安装配置双网卡。 因为esxi主机只接入了一根外网的网线,那么我们这两个网卡都是一样的网卡,具体的到系统里面进行设置。 2.开机安装系统 进入配置界面,此处就不用多说了,可以看我之前的文档,或者网上其他人的安…

中文版Chatbase轻松帮你实现智能回复

在数字时代,信息量可以说是爆炸性增长,很多企业网站都面临着一个共同的问题:如何在繁忙时还能为访客提供及时而有用的回复?那我可以坚定地说AI问答机器人可以做到。很多人都知道使用Chatbase可以创建聊天机器人来即时回答访客的问…

vue2配置环境变量并且nginx运行成功

需求:我在vue项目配置了生产环境和开发环境,之后通过proxy代理的方式把地址转发到真实的服务器地址上用于请求接口,之后把项目打包后上传到nginx上,之后接口报错404,但是本地运行是可以访问的,找了很久终于…

滑动窗口详解

滑动窗口本质其实也是一种双指针算法,只是因为它维护的区间随着遍历的进行在不停变化,所以形象地称为“滑动窗口” 一、⻓度最⼩的⼦数组 题目要求找到满足条件的长度最小的子数组,我们先来想想暴力的做法,再来想想能不能优化&am…

LeetCode 1462. 课程表 IV:拓扑排序

【LetMeFly】1462.课程表 IV:拓扑排序 力扣题目链接:https://leetcode.cn/problems/course-schedule-iv/ 你总共需要上 numCourses 门课,课程编号依次为 0 到 numCourses-1 。你会得到一个数组 prerequisite ,其中 prerequisite…

npm 清缓存(重新安装node-modules)

安装node依赖包的会出现失败的情况,如下图所示: 此时 提示有些依赖树有冲突,根据提示 “ this command with --force or --legacy-peer-deps” 执行命令即可。 具体步骤如下: 1、先删除本地node-modules包 2、删掉page-loacl…

redis实战-redis实现异步秒杀优化

秒杀优化-异步秒杀思路 未优化的思路 当用户发起请求,此时会请求nginx,nginx会访问到tomcat,而tomcat中的程序,会进行串行操作,分成如下几个步骤 1、查询优惠卷 2、判断秒杀库存是否足够 3、查询订单 4、校验是否是一…

vue中如何给特殊字段设置插槽

大纲: <template><div><div><span>卡号</span><el-input type"text" v-model"cardNo" clearable placeholder"请输入卡号" /><el-button type"primary" plain icon"el-icon-search"…

【Python】从入门到上头— 多进程与分布式进程(10)

文章目录 前言一.多进程1.fork()系统调用2.OS模块3.multiprocessing模块4.进程池&#xff08;multiprocessing Pool模块&#xff09;5.子进程&#xff08;subprocess模块&#xff09;6.进程间通信7.小结7.1.学习小结7.2.Python分布式进程报错&#xff1a;pickle模块不能序列化l…

Axure RP 10汉化版下载 Axure RP 10 mac授权码

Axure RP10汉化版是最强大的计划&#xff0c;原型设计和交付给开发人员的方法&#xff0c;而无需编写代码。能够制作逼真的&#xff0c;动态形式的原型。 Axure RP 10汉化版下载 Axure RP 10 mac授权码 RP 10有什么新功能&#xff1f; 1.显示动态面板 使用Axure RP 10&…

【FAQ】安防监控/视频汇聚/云存储/智能视频分析平台EasyCVR显示CPU过载,如何解决?

视频云存储/安防监控/视频汇聚平台EasyCVR基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。安防视频监控系统EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、云…