python层次聚类图怎么看性别_层次聚类分析 - 不愿透露性别的某名宿的个人空间 - OSCHINA - 中文开源技术交流社区...

本文介绍了Python中层次聚类的基本原理和方法,包括单联动、全联动、平均联动、质心法和Ward法。重点讨论了平均联动聚类,并通过营养数据集展示了其实例,帮助理解不同食品之间的相似性和差异性。
摘要由CSDN通过智能技术生成

层次聚类中,起初每一个实例或观测值属于一类,聚类就是每一次把两类聚成新的一类,直到所有的类聚成单个类为止,算法如下

a、定义每个观测值(行或单元)为一类

b、计算每类和其他各类的距离

c、把距离最短的两类合并成一类,这样类的个数就减少一个

d、重复步骤(b)和(c)。直到包含所有观测值的类合并成单个的类为止

在层次聚类中,主要的区别是它们对类的定义不同(步骤(b)),五种常见的聚类方法的定义和其中两类之间的距离定义

聚类方法

两类之间的距离定义

单联动

一个类中的点和另一个类中的点的最小距离

全联动

一个类中的点和另一个类中的点的最大距离

平均联动

一个类中的点与另一个类中的点的平均距离(也称作UPGMA,非加权对组平均)

质心

两类中质心(变量均值向量)之间的距离。对单个的观测值来说,质心就是变量的值

Ward法

两个类之间所有变量的方差分析的平方和

单联动聚类方法:倾向于发现细长的、雪茄型的类,它也通常展示一种链式的现象,即不相似的观测值分到一类中,因为它们和它们的中间值很相像

全联动聚类方法:倾向与发现大致相等的直径紧凑类,对异常值很敏感

平均联动:提供了以上两种方法的折中,相对来说,它不像链式,而且对异常值没有那么敏感,倾向与把方差小的类聚合

Ward法:倾向与把少量观测值的类聚合到一起,并且倾向与产生与观测值个数大致相等的类,它对异常值也是敏感的

质心法:一种很受欢迎的方法,因为其中类距离的定义比较简单,易于理解,相比其他方法,它对异常值不是很敏感,但是它可能不如平均联动法或Ward方法表现的很好

hclust()

层次聚类的方法可用 hclust()函数来实现,格式是

hclust(d ,method=)

d:是通过 dist()函数产生的矩阵

method:方法有“single”单联动,“complete”全联动,“average”平均联动,“centroid”质心,“ward ”Ward法

平均联动聚类

查看flexclust包中的营养数据集

> data(nutrient,package = "flexclust") #导入数据

> row.names(nutrient)

> nutrient.scaled

> d

> fit.average

> plot(fit.average,hang=-1, cex=0.8 ,main = "Average Linkage Clustering") #hang = -1 设置标签的位置:将观测值的标签移动到水平轴下面(让它们挂在0下面)

a、高度刻度代表了该高度类之间合并的判定值,对于平均联动来说,标准是一类中的点和其他类中的点的距离平均值

b、图提供了27种了食物之间的相似性/异质性的层次分析视图,如tuna canned 和chicken canned相似,但是都和 clams canned有很大的不同

如果最终目标是这些食品分配到类(希望有意义的)较少,那么需要额外的分析选择聚类的适当个数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值