聚类算法之层次聚类方法

目录

AGNES算法

DIANA算法

类间距离的不同定义

层次聚类算法的优缺点

层次聚类方法对给定的数据集进行层次的分解,直到满足某种条件为止。具体又可分为:凝聚的层次聚类AGNES算法和分裂的层次聚类DIANA算法。

AGNES算法

一种自底向上的策略,首先将每个样本各自分到一个类,之后将相距最近的两类合并成一个新的类,重复此操作直到满足停止条件。

需要预先确定下面三个要素:1.距离或相似度公式;2.合并规则:类间距离最小,类间距离可以是最短距离、最长距离、中心距离、平均距离等;3.停止条件:可以是类的个数达到要求,极端条件下最终形成1个大类;或者两个最近簇之间的距离超过了某个阈值。

sklearn里有相应的算法API:

sklearn.cluster.AgglomerativeClustering(n_clusters=2, *, affinity='euclidean',
memory=None, connectivity=None, compute_full_tree='auto', linkage='ward', 
distance_threshold=None, compute_distances=False)

DIANA算法

一种自顶向下的策略,首先将所有样本分到一个类,之后将已有类中相距最远的样本分到两个新的类,重复此操作直到满足停止条件。

需要预先确定下面三个要素:1.距离或相似度公式;2.合并规则:类间距离最大,类间距离可以是最短距离、最长距离、中心距离、平均距离等;3.停止条件:可以是类的个数达到要求,极端条件下类的个数和样本数量一样多;或者两个簇之间的距离超过了某个阈值。

类间距离的不同定义

  • 最短距离:两个类中最近的两个样本的距离,容易形成链状结构;
  • 最长距离:两个类中最远的两个样本的距离,若存在异常值则不稳定;
  • 平均距离:两个类中样本间两两距离的平均值;
  • 中心距离:两个类中样本中心之间的距离;
  • 方差:使得类内距离平方和最小,类间平方和最大。

层次聚类算法的优缺点

优点:

  1. 不需要事先设定簇的数量,我们可以选择看上去最好的簇的数量。
  2. 对于距离公式的选择是不敏感的;而对于其他聚类算法,距离公式的选择是很关键的。
  3. 一个典型的使用场景是当底层数据具有层次结构并且要展示层次结构时。

缺点:

  1. 效率很低,因为它的时间复杂度是O(n³),n是样本个数,不像有线性复杂度的 K-Means 和 GMM。
  2. 根据不同的类间距离的计算公式,可能会容易形成链状结构,或对异常值敏感。

你可能感兴趣的:(机器学习,聚类,算法,机器学习)