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

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

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

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

算法过程如下:

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

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

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

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

工作原理

K-MEANS算法

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

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

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

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

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

分析案例

背景

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

目标

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

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

算法的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数据分析案例—商圈客流量特征分析相关推荐

  1. python商业数据分析_Python数据分析案例—商圈客流量特征分析

    这是 python 数据分析案例系列的第二篇,主要是聚类分析,实现起来较为简单.后续还会继续更新,欢迎关注交流! 在处理实际的数据分析案例时,我们面临的往往是比较复杂的研究对象,如果能把相似的样品(或 ...

  2. python pd Series 添加行_Python数据分析与挖掘的常用工具

    Python语言:简要概括一下Python语言在数据分析.挖掘场景中常用特性: 列表(可以被修改),元组(不可以被修改) 字典(结构) 集合(同数学概念上的集合) 函数式编程(主要由lambda(). ...

  3. python数据分析实验报告_Python 数据分析入门实战

    本训练营中,我们将学习怎么样使用 Python 进行数据分析.课程将从数据分析基础开始,一步步深入讲解.从 Python 的基础用法到数据分析的各种算法,并结合各种实例,讲解数据分析过程中的方方面面. ...

  4. 基于python的旅游系统_Python数据分析 I 全国旅游景点分析案例,哪里好玩一目了然...

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 刘亦菲的老公 PS:如有需要Python学习资料的小伙伴可以加点击下 ...

  5. 基于python的药店管理系统_Python实践案例:药店销售数据分析

    Python中用于处理大量数据的包主要是numpy和pandas,常用于提取以及分析大量数据的有用指标.而Python只是工具,最重要的是分析者对数据的分析思维及对业务指标的理解,利用有用工具对具体数 ...

  6. python数据分析的例子_pandas数据分析案例:利用python进行汽车数据分析可视化实例...

    最近我一在杭州做外贸生意的老表让我给他推荐一辆车,自己的宝来开了5年多,感觉不香了,这次要我给他从BBA中选一个,落地35万以内落地.我想这做生意稳重一点,35万以内差不多就是奔驰C,宝马3和奥迪A4 ...

  7. python结课报告_Python数据分析课程到底是学什么内容的?

    2020年12月4日,博为峰旗下学掌门召开了<Python 商业(大)数据分析师>新课程发布会.据悉,此次发布会上发布的<Python 商业(大)数据分析师>课程是在原< ...

  8. python爬虫餐饮行业数据分析统计服_Python数据分析实战,简单快速制作餐饮行业商业化报告...

    前些天有个朋友向我求救,他们公司最近要针对餐饮行业做数据分析,并为某些商家做出线上营销方案.但是他一头雾水,不知道该从哪方面下手. 我提醒他,是否先从商家的线上评价作为数据分析的入口例如美团.大众点评 ...

  9. python统计小说人物_Python数据分析之基情的择天记

    人一生都可能无法逆天改命,但你却是要去奋斗一把 本文章主要通过最简单的共线性关系,利用gephi工具绘制择天记的人物关系图. 准备工作在网上下载<择天记>小说以及创建小说人物的txt. j ...

  10. python花萼长度表_Python 数据分析答疑 5:Pandas入门

    8.23 第五课 Pandas入门作业 1: 使用如下代码创建 DataFrame, gdp = {"country":["United States", &q ...

最新文章

  1. 欧洲估值最高的5家人工智能创业公司
  2. HDOJ 1098 Ignatius's puzzle
  3. mysql安装了很久_mysql-5.7.21-winx64安装过程(整了好久原因是没关闭防火墙)
  4. CentOS中JAVA_HOME的环境变量设置
  5. 设计模式建议学习顺序
  6. H.264的技术优势及其在H.323系统中的应用
  7. pyqt5 判断lineedit是否为空_是否注意过 isEmpty 和 isBlank 区别?
  8. python可以做仿真吗agent_python agent应用
  9. 【报告分享】2021年中国新经济企业500强发展研究报告.pdf(附下载链接)
  10. 不得不爱开源 Wijmo jQuery 插件集(13)-【Tooltip】(附页面展示和源码)
  11. SDUST 作业10 Problem D 魔方阵
  12. 实现最小宽度的几种方法及CSS Expression
  13. 计算机wind10切换桌面wind7系统,win10多桌面切换的方法以及开启步骤是怎样的
  14. 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_22-页面查询服务端开发-Dao-基础方法测试...
  15. 图的应用--最短路算法
  16. android开发日记 ——avata项目
  17. Windows系统电脑常用快捷键
  18. Angular 入门教程系列:37:使用ng-alain快速开发
  19. 【haoi2009】毛毛虫
  20. 程序员如何避免「温水煮码农」

热门文章

  1. 卸载重装Netmeeting
  2. 史上最详细解释接口自动化测试中cookie、session和token的区别【多测师_王sir】
  3. win7从光盘进入修复计算机,win7光盘修复系统步骤
  4. PDF编辑(PDF替换指定页)---亲测实用有效!!!
  5. linux alsa 不创建声卡能否创建pcm设备,Linux ALSA声卡驱动之一:声卡的创建
  6. 最新版24H全自动在线要饭系统全开源源码
  7. 关于CWMP基础(一)----(TR069)
  8. 湖南省中职学业水平考试复习试题(计算机三)
  9. 直播app源码的搭建,仍有许多问题等待我们去解决
  10. 02-即时通讯-XMPP 简单介绍