来源:原始 Jupyter Notebook。内容已转换为网页阅读格式;下载原文件。
层次聚类分为 聚合(agglomerative)和 分裂(divisive)两种方法,也称为 自下而上(bottom-up)和 自上而下(top-down)。聚合聚类开始将每个样本各自分到一个类,之后将相距最近的两个类合并,建立一个新类,重复此操作直到满足停止条件。而分裂聚类相反,开始将所有样本分到一个类,之后将已有类中相距最远的样本分到两个新类,重复此操作直到满足停止条件。
层次聚类需要明确下面三个要素:
- 距离或相似度算法:闵氏距离、马氏距离、相关系数、夹角余弦等
- 合并规则:一般通过类间距离最小来进行合并,类间距离可以是最短距离、最长距离、中心距离、平均距离等
- 停止条件:类的个数达到某个阈值,类的直径超过某个阈值等
AGNES算法(AGglomerative NESting)
AGNES算法是经典的自下而上聚类算法。
DIANA算法(DIvisive ANAlysis)
DIANA算法是经典的自上而下聚类算法。