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

news2024/11/26 3:47:55

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/1179252.html

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

相关文章

pandas DataFrame转成字典

目录 dict形式list形式records形式split形式 dict形式 原数据 DateFrame.to_dict() pd.read_excel(r"D:\Users\admin\Desktop\授信额度使用.xlsx").to_dict()list形式 DateFrame.to_dict(‘list’) pd.read_excel(r"D:\Users\admin\Desktop\授信额度使用.x…

Python 爬虫基础

Python 爬虫基础 1.1 理论 在浏览器通过网页拼接【/robots.txt】来了解可爬取的网页路径范围 例如访问: https://www.csdn.net/robots.txt User-agent: * Disallow: /scripts Disallow: /public Disallow: /css/ Disallow: /images/ Disallow: /content/ Disallo…

企业为啥邀请媒体做专访?有哪些注意事项?

传媒如春雨,润物细无声,大家好,我是51媒体胡老师。 一,企业邀请媒体做专访有以下几个原因: 1.提升品牌知名度:通过媒体的报道和专访,企业可以扩大品牌的曝光度,增加公众对企业的认…

oracle 数据库 LISTAGG详解

目录 简介: 效果展示: 举例: 测试表及数据: 简介: Oracle数据库的LISTAGG函数用于将多行数据合并为单个字符串,常见于分组操作,实现数据的垂直到水平的转换。 解决问题如:一个人有多个手机号&#xff0c…

系列一、Spring + SpringMVC + MyBatis整合

一、概述 整合 Spring、SpringMVC、MyBatis。 二、整合步骤 2.1、pom <dependencies><!-- 普通maven项目中使用Sl4j注解 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1…

视频监控管理平台EasyCVR自动注销后,页面还存留播放窗口是什么原因?解决办法是什么?

视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;在视频监控播放上&#xff0c;TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放&#xff0c;可同时播放多路视频流&#…

2023.11.6 Spring 使用注解存储 Bean 对象

目录 前置工作 使用类注解 五大类注解 Controller&#xff08;控制器&#xff09; Service&#xff08;服务&#xff09; Repository&#xff08;仓库&#xff09; Component&#xff08;组件&#xff09; Configuration&#xff08;配置&#xff09; 使用方法注解 B…

树莓派在Raspbian系统(Bookworm)中无法获取RJ45网口eth0或end0的IP地址(没有IPv4的地址无法操作)

由于 Raspbian 上个月刚好从 Bullseye 升级到 Bookworm 版本了&#xff0c;所以出现了很多修改&#xff0c;截止写博客的时候过去还没三十天&#xff0c;当然也没那么多解决方案参考&#xff0c;只能参考之前版本或者靠自己了&#xff0c;未来或许官方会进行修复&#xff0c;也…

飞桨平台搭建PP-YOLOE模型

一、创建项目 此博客仅是运行PP-YOLOE源码&#xff0c;这里以变压器渗漏数据集为例COCO数据集太大了&#xff0c;跑不动&#xff0c;V100训练预估计得7天左右&#xff0c;即便是A100也得4天半&#xff0c;变压器渗漏油数据集跑一个小时左右&#xff0c;还可以接受&#xff0c;…

vue3生命周期源码详解

钩子函数的特点 Vue 生命周期钩子函数是在组件生命周期中执行的特定函数。 这些钩子函数允许你在组件不同的生命周期阶段插入自定义的逻辑代码。 Vue 提供了一组预定义的生命周期钩子函数&#xff0c;每个钩子函数在组件生命周期的不同阶段被调用。 源码中如何注册、实现钩子函…

cad绘图模板建立

都设置好后保存为文件&#xff0c;收藏好&#xff0c;下次打开即可使用设置好的样式&#xff0c;完成后另存为新的文件名即可 1.f7关闭格栅 2.ds草图设置 3.图纸不能缩小&#xff1a;格式——图形界限—— 4.un单位设置 5.标注样式设置&#xff1a;d 完成后置为当前 6. st…

docker存储卷

docker存储卷 COW机制 Docker镜像由多个只读层叠加而成&#xff0c;启动容器时&#xff0c;Docker会加载只读镜像层并在镜像栈顶部添加一个读写层。 如果运行中的容器修改了现有的一个已经存在的 文件&#xff0c;那么该文件将会从读写层下面的只读层复制到读写层&#xff0…

5米DEM高程数据分析和对比

数字高程模型&#xff08;DEM&#xff09;是应用最广泛的地理信息数据之一&#xff0c;是进行三维空间处理和地形分析的数据基础。每个行业数据精度要求不一样&#xff0c;很多行业使用公开免费的90米和30米分辨率DEM就够了。而城市规划、交通线路规划、地质灾害防控、城区地籍…

【QT】 Qt自定义ui控件

在使用Qt的ui设计时&#xff0c;Qt为我们提供了标准的窗口控件&#xff0c;但是在很多复杂工程中&#xff0c;标准窗口控件并不能满足所有的需求&#xff0c;这时就需要我们自定义控件。我们自定义的类既可以作为独立的窗口显示&#xff0c;又可以作为一个控件显示。 我们要实现…

Spring相关

SpringBoot自动装配 阿里云登录 - 欢迎登录阿里云&#xff0c;安全稳定的云计算服务平台 Spring相关 阿里云登录 - 欢迎登录阿里云&#xff0c;安全稳定的云计算服务平台 常用设计模式 双亲委派 Java虚拟机定义了三个主要的类加载器: 1、启动类加载器 2、扩展类加载器 …

python教程:打印心型图案 九九乘法表 三角形 金字塔 圣诞树 倒三角形 菱形

# 打印九九乘法口诀表 for i in range(1, 10): # 乘法表的行、起始值从1开始for j in range(1, i 1): # 表示每一行的表达式、从1开始、到j1print({}*{}{}.format(j, i, i * j), end ) # 输出语句{}占位、输出表达式print( )# 打印金字塔&#xff08;正三角形&#xff09; …

web3 dapp React项目引入 antd 对 balance 用户token信息组件进行样式改造

好 上文 web3 React dapp中编写balance组件从redux取出并展示用户资产 我们简单处理了用户资产的展示 那么 我们继续 先启动 ganache 环境 终端输入 ganache -d然后 打开我们的项目 将合约发布到区块链上 truffle migrate --reset然后 我们启动项目 确认一切正常 还原到上文…

wangeditor富文本编辑器的使用(vue)

官网 官方demo 参考 安装 yarn add wangeditor/editor yarn add wangeditor/editor-for-vue 封装的富文本组件 <template><div style"border: 1px solid #ccc"><Toolbarstyle"border-bottom: 1px solid #ccc":editor"editorRef"…

P02项目(学习)

★ P02项目 项目描述&#xff1a;安全操作项目旨在提高医疗设备的安全性&#xff0c;特别是在医生离开操作屏幕时&#xff0c;以减少非授权人员的误操作风险。为实现这一目标&#xff0c;我们采用多层次的保护措施&#xff0c;包括人脸识别、姿势检测以及二维码识别等技术。这些…

工程压缩与解压缩

很多工程师在完成一个电气工程后&#xff0c;会遇到一些问题&#xff0c;例如&#xff1a;在SOLIDWORKSElectrical 中如何把做好的工程发送给别的工程师&#xff0c;或者更换了电脑如何把旧电脑的工程转移到新电脑 上&#xff1b;有时候&#xff0c;工程师也有可能会遇到解压工…