Python数据分析案例—商圈客流量特征分析

栏目: 编程工具 · 发布时间: 7年前

内容简介:Python数据分析案例—商圈客流量特征分析

这是 python 数据分析案例系列的第二篇,主要是聚类分析,实现起来较为简单。后续还会继续更新,欢迎关注交流!

Python数据分析案例—商圈客流量特征分析

在处理实际的数据分析案例时,我们面临的往往是比较复杂的研究对象,如果能把相似的样品(或指标)归成类,处理起来大为方便。

Python数据分析案例—商圈客流量特征分析

聚类分析目的就是把相似的研究对象归成类

先贴上总结的聚类分析基本步骤:

Python数据分析案例—商圈客流量特征分析

算法过程如下:

1)从N个文档随机选取K个文档作为 质心

2)对剩余的每个文档测量其到每个 质心 的距离,并把它归到最近的质心的类

3)重新计算已经得到的各个类的 质心

4)迭代2~3步直至新的质心与原质心相等或小于指定阈值,算法结束

工作原理

K-MEANS算法

Python数据分析案例—商圈客流量特征分析

输入:聚类个数k,以及包含 n个数据对象的数据库。

输出:满足方差最小标准的k个聚类。

存在问题

  • K是事先给定的,这个K值的选定是非常难以估计的。很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适。(有的算法是通过类的自动合并和分裂,得到较为合理的类型数目 K,例如 ISODATA 算法。)

  • 在 K-means 算法中,首先需要根据初始聚类中心来确定一个初始划分,然后对初始划分进行优化。说明初始聚类中心的选择对聚类结果有较大的影响,一旦初始值选择的不好,可能无法得到有效的聚类结果。(对于该问题的解决,许多算法采用遗传算法进行初始化,以内部聚类准则作为评价指标。)

  • 从 K-means 算法框架可以看出,该算法需要不断地进行样本分类调整,不断地计算调整后的新的聚类中心,因此当数据量非常大时,算法的时间开销是非常大的。

Python数据分析案例—商圈客流量特征分析

分析案例

背景

-不同商圈的分时段客流量

目标

-通过不同商圈的分时段客流量数据,挖掘出不同类别的商圈

-分析不同类别商圈的特点

算法的Python实现

数据获取与整理

对数据进行基本分析,查看数据的基本情况

对样本数据进行预处理

构建样本集

构建客流量聚类模型

可视化结果

Python数据分析案例—商圈客流量特征分析

Python代码如下

# -*- coding: utf-8 -*-

#读取数据

import pandas as pd

data=pd.read_excel(u'd:/data/example02/sample.xls',index_col=u'站点编号')

data.head()

#数据预处理

data = (data - data.min())/(data.max() - data.min()) #离差标准化

data=data.fillna(0)  #处理na值

data.to_excel('d:/data/example02/standata.xls',index=True) #保存结果

####模型构建####

##系谱图绘制

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()

##层次聚类算法

#参数初始化

k = 3 #聚类数

#模型构建

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

style = ['', '', '']

xlabels = [u'非上下班时段日均客流量', u'上下班时段日均客流量', u'周末日均客流量时间', 

u'工作日日均客流量']

pic_output = 'd:/data/example02/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,fontproperties='SimHei') #坐标标签

  plt.title(u'商圈类别%s' %(i+1),fontproperties='SimHei') #我们计数习惯从1开始

  plt.subplots_adjust(bottom=0.15) #调整底部

  plt.savefig(u'%s%s.png' %(pic_output, i+1)) #保存图片

聚类结果如下

Python数据分析案例—商圈客流量特征分析

Python数据分析案例—商圈客流量特征分析

Python数据分析案例—商圈客流量特征分析

素材链接: http://pan.baidu.com/s/1jIp6FP0 密码:0d58

欢迎关注交流

Python数据分析案例—商圈客流量特征分析 Python数据分析案例—商圈客流量特征分析 Python数据分析案例—商圈客流量特征分析

本文由吴小鹏 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。

转载、引用前需联系作者,并署名作者且注明文章出处。

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。


以上所述就是小编给大家介绍的《Python数据分析案例—商圈客流量特征分析》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

程序员第二步

程序员第二步

尹华山 / 人民邮电出版社 / 2013-11 / 45.00元

这本书是写给程序员和项目经理的。作者结合自身的丰富成长历程,通俗易懂地讲述了一名程序员如何才能成为一名优秀的项目经理。内容涉及职业规划、学习方法、自我修炼、团队建设、项目管理等,书中理清了项目管理领域中典型的误区及具有迷惑性的观点,并对项目中的难点问题提出了针对性的解决方法。 全书行文流畅,严谨中带着活泼,理智中透着情感,给读者带来轻松愉快的阅读感受。书中诸多富有创见的观点,让人耳目一新,引......一起来看看 《程序员第二步》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具