聚类分析是一种数据归约技术,旨在揭露一个数据集中观测值的子集。它可以把大量的观测值归约为若干个类,而事先并不知道类别的个数与结构。 最常用的两种聚类方法是层次聚类(hierarchical agglomerative clustering)和划分聚类(partitioning clustering)。在层次聚类中,每一个观测值自成一类,这些类每次两两合并,直到所有的类被聚成一类为止。在划分聚类中,首先指定类的个数K,然后观测值被随机分成K类,再重新形成聚合的类。
对于层次聚类来说,最常用的算法是单联动(single linkage)、全联动(complete linkage )、平均联动(average linkage) 、质心(centroid)和Ward方法。
聚类方法 | 两类之间的距离定义 |
单联动 | 一个类中的点和另一个类中的点的最小距离 |
全联动 | 一个类中的点和另一个类中的点的最大距离 |
平均联动 | 一个类中的点和另一个类中的点的平均距离(也称作UPGMA,即非加权对组平均) |
质心 | 两类中质心(变量均值向量)之间的距离。对单个的观测值来说,质心就是变量的值 |
Ward法 | 两个类之间所有变量的方差分析的平方和 |
层次聚类方法可以用hclust()函数来实现,格式是hclust(d, method=),其中d是通过dist() 函 数 产 生 的 距 离 矩 阵 , 并 且 方 法 包 括 "single" 、 "complete" 、 "average" 、"centroid"和"ward"。
对于划分聚类来说,最常用的算法是K均值(K-means)和围绕中心点的划分(PAM)。