基站数据分析商圈价值——笔记

通过基站历史定位数据分析人流特征,识别不同类型商圈,评估促销适宜性。采用数据标准化、谱系聚类图绘制及AgglomerativeClustering算法实现聚类,得出三类商圈特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

根据移动通信运营商基站历史定位数据分析人流特征规律,识别不同类型的商圈,判断是否适合进行促销。

#导入所需类库
import pandas as pd
import matplotlib.pyplot as plt
from scipy.cluster.hierarchy import linkage,dendrogram
from sklearn.cluster import AgglomerativeClustering
import matplotlib.pyplot as plt

读取数据

#读取原始数据
data = pd.read_excel('data/business_circle.xls', index_col = u'基站编号') 
#展示前五条记录
data.head()
		工作日上班时间人均停留时间	凌晨人均停留时间	周末人均停留时间	日均人流量
基站编号				
36902				78						521			602				2863
36903				144						600			521				2245
36904				95						457			468				1283
36905				69						596			695				1054
36906				190						527			691				2051

数据标准化

#数据标准化到[0,1]
data = (data - data.mean())/(data.max() - data.min())
#展示前五条记录
data.head()
	工作日上班时间人均停留时间	凌晨人均停留时间	周末人均停留时间	日均人流量
基站编号				
36902		-0.280457				0.550470		0.482363	-0.207109
36903		-0.121036				0.694107		0.357555	-0.258052
36904		-0.239394				0.434107		0.275891	-0.337353
36905		-0.302196				0.686834		0.625660	-0.356231
36906		-0.009925				0.561379		0.619497	-0.274045

绘制谱系聚类图

#使用scipy的层次聚类函数绘制谱系聚类图
Z = linkage(data, method = 'ward', metric = 'euclidean')
P = dendrogram(Z, 0) 
plt.show()

在这里插入图片描述

  • 可以观察到聚类类别为3

数据聚类

#训练模型
model = AgglomerativeClustering(n_clusters = 3, linkage = 'ward')
model.fit(data)

#为聚类后的数据添加类别标签
r = pd.concat([data, pd.Series(model.labels_, index = data.index)], axis = 1)
r.columns = list(data.columns) + [u'聚类类别']

#展示各类别前五条记录
r.groupby(u'聚类类别').head()

工作日上班时间人均停留时间	凌晨人均停留时间	周末人均停留时间	日均人流量	聚类类别
基站编号					
36902		-0.280457			0.550470		0.482363	-0.207109		1
36903		-0.121036			0.694107		0.357555	-0.258052		1
36904		-0.239394			0.434107		0.275891	-0.337353		1
36905		-0.302196			0.686834		0.625660	-0.356231		1
36906		-0.009925			0.561379		0.619497	-0.274045		1
37371		0.383795			-0.264075		-0.292676	-0.109837		2
35162		0.407949			-0.222257		-0.187899	0.066406		2
35425		0.444181			-0.247711		-0.211012	-0.216259		2
37064		0.593939			-0.218621		-0.172491	-0.086508		2
38792		0.562539			-0.245893		-0.137052	-0.052463		2
35571		-0.236978			-0.229530		-0.306543	0.498522		0
38267		-0.258718			-0.216802		-0.232583	0.419056		0
36387		-0.236978			-0.304075		-0.032275	0.613269		0
37459		-0.188669			-0.264075		-0.244910	0.156670		0
37795		-0.224901			-0.244075		-0.004540	0.506765		0

聚类展示

#正常显示中文和负号
plt.rcParams['font.sans-serif'] = ['SimHei'] 
plt.rcParams['axes.unicode_minus'] = False 

#设置图表点线和标签
style = ['ro-', 'go-', 'bo-']
xlabels = [u'工作日人均停留时间', u'凌晨人均停留时间', u'周末人均停留时间', u'日均人流量']

#分别绘制各类别数据折线图
for i in range(3):
    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 = 45)
    plt.title(u'商圈类别%s' %(i+1)) 
plt.show()

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分析结果

  • 类别1:
    工作日人均停留时间、凌晨人均停留时间和周末人均停留时间短,日均人流量高,适合最为促销的商圈。
  • 类别2:
    工作日人均停留时间短,凌晨人均停留时间和周末人均停留时间长,日均人流量低,类似于住宅区,不利于促销。
  • 类别3:
    工作日人均停留时间长,凌晨人均停留时间和周末人均停留时间短,日均人流量低,类似于工作区,不利于促销。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值