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

文章目录

  • 读取数据
  • 数据标准化
  • 绘制谱系聚类图
  • 数据聚类
  • 聚类展示
  • 分析结果

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

#导入所需类库
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()

基站数据分析商圈价值——笔记_第1张图片

  • 可以观察到聚类类别为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()

基站数据分析商圈价值——笔记_第2张图片
基站数据分析商圈价值——笔记_第3张图片
基站数据分析商圈价值——笔记_第4张图片

分析结果

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

你可能感兴趣的:(基站数据分析商圈价值——笔记)