层次聚类算法详解
简介
层次聚类(Hierarchical Clustering)是一种无监督学习算法,用于将数据集分层次地划分为多个簇。层次聚类有两种主要方法:凝聚层次聚类(自下而上)和分裂层次聚类(自上而下)。凝聚层次聚类从每个数据点开始,每次合并两个最相似的簇;分裂层次聚类从整个数据集开始,每次分裂出最不相似的簇。
层次聚类的基本概念
- 凝聚层次聚类(Agglomerative Hierarchical Clustering):从每个数据点开始,每次合并两个最相似的簇,直到所有数据点都被合并到一个簇中。
- 分裂层次聚类(Divisive Hierarchical Clustering):从整个数据集开始,每次分裂出最不相似的簇,直到每个数据点成为一个独立的簇。
凝聚层次聚类算法流程
- 初始化:将每个数据点作为一个单独的簇。
- 计算距离:计算所有簇之间的距离。
- 合并簇:找到距离最近的两个簇,将它们合并成一个簇。
- 更新距离:更新新的簇与其他所有簇之间的距离。
- 重复:重复步骤3和4,直到所有数据点被合并到一个簇中。
距离度量方法
- 最短距离(Single Linkage):两个簇之间的最短距离。
- 最长距离(Complete Linkage):两个簇之间的最长距离。
- 平均距离(Average Linkage):两个簇之间的平均距离。
- 质心距离(Centroid Linkage):两个簇的质心之间的距离。
实现示例
以下是使用Python和scikit-learn库实现凝聚层次聚类的示例:
impor