分层聚类与分区聚类
聚类是一种机器学习技术,用于分析数据并将相似的数据分组。这些组或一组相似的数据称为簇。聚类分析着眼于能够自动识别聚类的聚类算法。分层和分区是两类这样的聚类算法。分层聚类算法将数据分解成一个簇的层次结构。分区算法将数据集划分为相互不相交的分区。
什么是层次聚类?
层次聚类算法重复着将较小的簇合并为较大的簇或将较大的簇划分为较小的簇的循环。不管怎样,它都会产生一个称为dendogram的集群层次结构。聚簇策略采用自底向上的方法将簇合并成较大的簇,而分簇策略采用自上而下的方法将簇分解成更小的簇。通常,贪婪方法用于决定合并/分割使用哪个较大/较小的集群。欧几里德距离、曼哈顿距离和余弦相似度是数值数据中最常用的相似度指标。对于非数字数据,使用诸如Hamming距离之类的度量。值得注意的是,层次聚类不需要实际观测值(实例),因为只有距离矩阵就足够了。Dendogram是集群的可视化表示,它非常清楚地显示了层次结构。用户可以根据dendogram被剪切的级别获得不同的聚类。
什么是分区聚类?
分区聚类算法生成不同的分区,然后根据某种准则对其进行评价。它们也被称为非层次结构,因为每个实例都被放置在k个互斥集群中的一个。由于一个典型的分块聚类算法只输出一组簇,用户需要输入所需的簇数(通常称为k)。最常用的分区聚类算法之一是k-均值聚类算法。用户在启动前需要提供簇数k,算法首先初始化k个分区的中心(或质心)。简单地说,k-means聚类算法根据当前中心分配成员,并根据当前成员重新估计中心。重复这两个步骤,直到对某个类内相似性目标函数和类间差**目标函数进行优化。因此,中心的合理初始化是从分区聚类算法中获得高质量结果的一个非常重要的因素。
分层聚类和分区聚类有什么区别?