层次聚类 Python 实现——从原理到代码实现
层次聚类(hierarchical clustering)是一种将数据点逐步分组的聚类算法。与其他聚类算法不同的是,它不需要预先设置聚类数目,而是通过聚类树来展示数据点间的相似程度,并自下而上构建出聚类结果。本篇文章将从原理入手,介绍了层次聚类算法,并使用 Python 实现。
层次聚类算法简介
层次聚类算法主要分为两种:凝聚型(Agglomerative Clustering)和分裂型(Divisive Clustering)。本篇文章主要介绍凝聚型层次聚类算法。
凝聚型层次聚类算法的基本思想是将所有的数据点都看作一个簇,然后逐渐合并簇,直到所有数据点都被合并成为一个簇。具体而言,在该算法中,我们首先将每个数据点视为一个独立的簇,之后在每次聚合中选择距离最近的两个簇,合并成一个新的簇,并更新距离矩阵。直至最终得到包含所有数据点的簇集合。
层次聚类算法实现
接下来,我们将使用 Python 实现凝聚型层次聚类算法,并以 Iris 数据集为例进行演示。
载入数据
首先,我们载入所需的库,并读入 Iris 数据集。
import pandas as pd
from sklearn