这是 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数据分析工具

    Numpy Python没有提供数组功能,虽然列表可以完成基本的数组功能,但他不是真正的数组.Numpy内置函数处理速度是c语言级别,因此尽量使用内置函数,避免出现效率瓶颈的现象. Numpy的安装: ...

  2. python酒店数据分析_Python数据分析 I 全国旅游景点分析案例,哪里好玩一目了然...

    原标题:Python数据分析 I 全国旅游景点分析案例,哪里好玩一目了然 前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作 ...

  3. python医药数据分析_Python数据分析案例-药品数据分析案例

    最近学习了python数据分析的一些基础知识,有numpy,pandas,matplotlib等,找了一个药品数据分析的小项目练一下手. 数据分析的步骤一般可以分为6个: 1,明确分析的目的 2,数据 ...

  4. python炒股模块_Python数据分析-numpy模块、pandas模块.基本操作、股票案例

    索引操作和列表同理 arr = np.random.randint(0,100,size=(5,6)) arr array([[14, 89, 71, 96, 1, 94], [30, 98, 10, ...

  5. python什么是数据分析_python数据分析是什么

    Q1:Python在数据分析方面有什么独特优势 python最大的优势在于学习门槛低,语法灵活. python也有很多开源成熟的科学计算机库,比如:Numpy,Scipy,Pandas 而且上面说的这 ...

  6. python练手_Python数据分析练手项目

    最近,我在阿里天池大数据竞赛中发现了一些练手的项目,例如,用Python"画月饼过云上中秋",虽然中秋已经过去了,但还是好奇Python是怎么画出月饼的? 先上图↓ 火龙果馅的月饼 ...

  7. python统计分析书籍_Python数据分析入门书籍推荐

    在当下这个数据驱动的时代,毫不夸张的说各行各业的商业决策和运营管理都离不开数据分析,因此数据分析已经成为当前每个人的必备技能和加分项.对于许多初学者来讲,想要入门Python数据分析常常不知道从何下手 ...

  8. python 卡方分布值_python数据分析探索变量之间的关系

    探索变量之间的关系 引言 深入探索分析数据价值有几个重要步骤:①变量的分布检验,②探索变量间的关系,③建立关系模型,④评估,⑤总结结论与建议.接下来看看数据分析的重要一环–「探索变量间的关系」. 1 ...

  9. python预测药_Python数据分析实例-药品销售分析

    学习了Python的各种基础语法和常用包后,你是否对如何使用Python在实际工作中进行数据分析一头雾水?如果是,今天这篇文章一定能带给你一些用数据分析解决实际问题的思路. 数据分析的目的决定了你的分 ...

最新文章

  1. 【Qt】QObject::moveToThread 总结
  2. 自然语言处理的现实应用
  3. 配置https后访问返回403 forbidden
  4. python怎样打开加密的文件_如何在Python中解密OpenSSL AES加密的文件?
  5. 面向对象发牌Java_面向对象思路的斗地主发牌小程序
  6. 使用nginx部署简单的前端项目,nginx.conf配置
  7. 岁月的脚步,被时间冲刷——如何修复EM ?
  8. [UVA 10529]Dumb Bones
  9. 【工具】adb下载安装及基本操作
  10. 注销公司是否需要办理注销呼叫中心许可证?
  11. 【C++学习笔记】迭代器和数组
  12. Qt生成exe错误:无法定位程序输入点_cxa_throw_bad_array_new_length于动态链接库最终解决方法
  13. 网站服务器迁移耗时,网站迁移,整体服务器网站迁移步骤方案
  14. 理工男,我感觉 win10 挺好用的,一点不卡,为什么有那么多人买Macbook 呢?
  15. 小白玩大数据日志分析系统经典入门实操篇FileBeat+ElasticSearch+Kibana 实时日志系统搭建从入门到放弃
  16. SCYC55830 58063282A可控硅触发电路
  17. 2022年全国职业院校技能大赛中职组网络安全竞赛——隐写术应用解析(超详细)
  18. 硬件设计经验-②去耦电容
  19. 中望3D 2021 “切换实体透明度”
  20. mybatis-plus 批量插入效率低的问题【重写sql注入 SqlInjector】

热门文章

  1. 手持天馈线测试仪基站测试分析专家
  2. 一款彩票app的制作运营详解
  3. 第一次去大公去面试总结----美图公司面试总结
  4. 慎重跳槽,我眼中的跳槽黄金时期
  5. 文件太大notepad 打不开怎么办
  6. GSM 03.38 from Wikipedia
  7. iPad/Iphone抓包
  8. 2.SpringBoot整合Mybatis(一对一)
  9. 51NOD - 1830路径交
  10. 创业实践案例课程随堂检测答案