2021-05-20


一、美国各州聚类实验代码

from __future__ import division#整数除法得到浮点数
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import AgglomerativeClustering,KMeans
import scipy.cluster.hierarchy#可以用来层次聚类
from scipy.cluster.hierarchy import dendrogram,linkage,set_link_color_palette#dendrogram将分层聚类绘制为树状图,linkage层次聚类,set_link_color_palette设置色条
import seaborn as sns #Seaborn是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,

#美国各州数据的描述和热量图
w=pd.read_csv("statex77.csv")
u=w[w.columns[1:]]
u.index=w[w.columns[0]]#把w的第一列赋值给u的索引
# print(u.index.name)
print(u.head())#head()根据位置返回对象的前n行。如果你的对象中包含正确的数据类型, 则对于快速测试很有用。此方法用于返回数据帧或序列的前n行(默认值为5)。

sns.clustermap(u,metric="correlation",method="complete",cmap="Blues",standard_scale=1)#绘制聚类热图,metric:簇之间距离选择,method:聚类算法, cmap:热图填充色colormap设置,standard_scale:标准比例

#美国各州的分层聚类
Z=linkage(u,method='average',metric='euclidean')#metric选择欧几里得距离,方法选择类平均法
set_link_color_palette(['m','c','y','k'])#设置供树状图使用的matplotlib颜色代码列表。
fig=plt.figure(figsize=(20,10),dpi=72)#dpi是每英寸的像素
dendrogram(Z,labels=u.index,leaf_rotation=0,orientation="left", #画树状图
leaf_font_size=12,color_threshold=None,above_threshold_color='blue')#leaf_rotation旋转角度,orientation方向,leaf_font_size可以调整右边label的大小,
set_link_color_palette(None)
plt.show()

#美国各州数据的k均值聚类
np.random.seed(8888)#设置一个随机数,选择初始中心
cent,label=scipy.cluster.vq.kmeans2(u,4,iter=20,thresh=1e-05,minit='random',missing='warn',check_finite=True)
#u是数据
#4是四个类
#iter是k均值算法的迭代次数
#thresh
#minit是初始化方法。可用的方法是“随机”,“点”,“ ++”和“矩阵”。“随机”:从高斯生成k个质心,并根据数据估算出均值和方差。'点':从初始质心的数据中随机选择k个观测值(行)。'++':根据kmeans ++方法(谨慎播种)选择k个观测值,'matrix':将k参数解释为ak,以初始质心的M(或一维数据的长度k数组)数组为准。
#missing处理空簇的方法。可用的方法有“警告”和“提高”,警告就会继续执行,raise会终止程序。
# check_finite是否检查输入矩阵仅包含有限数。禁用可能会提高性能,但如果输入中确实包含无穷大或NaN,则可能会导致问题(崩溃,终止)
print("centroid:\n",cent)
for i in range(4):
    print(u.index[label==i])

二、层次聚类

在这里插入图片描述
在这里插入图片描述
计算例子
在这里插入图片描述

在这里插入图片描述
比如说是就取BD、BE、CD、CE小的距离填入,或是F到B/C的就是FB,FC小的那段距离。

层次聚类的距离
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
计算有16个距离,再取平均
在这里插入图片描述
在这里插入图片描述
红线越长,则他们之间差异越大

层次聚类的优缺点
在这里插入图片描述

三、k-mean算法小例子

在这里插入图片描述
在这里插入图片描述

四、实验结果

1.美国各州数据的描述和热量图在这里插入图片描述

在这里插入图片描述
怎么看聚类分析树状图,咋们竖着切一刀就可以在这里插入图片描述

在这里插入图片描述
根据我的猜测,这四类分组也许跟各个州的面积有关。会不会跟我们没有做数据的标准化有关,导致面积数据那个数值大,所以影响大。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值