赞
踩
微信公众号:机器学习养成记 搜索添加微信公众号:chenchenwings
《菜鸟侦探挑战数学分析》小案例,python实现第七弹
案件回顾
商业街口碑分析
1,顾客在网络上会发表对商品或商店的留言信息
2,对留言进行分析,可以对商业街进行口碑分析
3,在论坛中整理了300条留言,并进行分词处理,整理出了不同性别不同年龄段在留言中,使用单词的频数(问题:不同年龄或性别对商业街的印象是否一致?)
聚类分析
将数据存储为csv格式,导入python,查看前10行数据。import pandas as pd
reviewsdata = pd.read_csv('reviewsdata.csv',index_col=0)#index_col=0第一列所为行索引
reviewsdata.head(10)
从表格中,可以看到不同性别、不同年龄使用不同单词的频数。对数据进行聚类分析,并画出聚类树形图。import scipy
import scipy.cluster.hierarchy as sch
import matplotlib.pylab as plt
import pylab
#生成点与点之间的距离矩阵,这里用的欧氏距离:
disMat = sch.distance.pdist(reviewsdata.T,'euclidean')
#进行层次聚类:
Z=sch.linkage(disMat,method='average')
#将层级聚类结果以树状图表示出来并保存为plot_dendrogram.png
sch.dendrogram(Z,labels=reviewsdata.columns,leaf_font_size=7.5)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.title("口碑的聚类")
pylab.show()
在聚类分析的过程中,是将不同性别年龄的人群使用词的频数生成向量,然后比较这些向量的距离,将距离较近的总结在一起。距离近意味着措辞相仿,聚类也就是不断合并两个最相近向量的过程。从图显示,40多岁男性和50多岁男性在使用单词方面很接近,但跟60多岁女性明显不同。整体上,能看出不同年龄段和不同性别之间存在意见差异。
几个小概念
聚类分析:一种根据数据相似度将数据分组对手法,分组前,不能确定每一类的特征。数据相似度通过距离来判断,求距离的方法有很多种,最简单的为欧式距离。本文使用的是层次聚类,文章聚类(一):DBSCAN算法实现(r语言)中介绍了DBSCAN聚类方法。
python系列数据分析小案例历史文章:
微信公众号:机器学习养成记 搜索添加微信公众号:chenchenwings
扫描二维码,关注我们。
如需转载,请在开篇显著位置注明作者和出处,并在文末放置机器学习养成记二维码和添加原文链接。
快来关注我们吧!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。