无监督学习2–基于层次和模型的聚类算法
上次的无监督学习1笔记中学习了基于基于原型的聚类算法。今天来记录基于层次的聚类算法和基于密度的聚类算法。
一、基于层次的聚类算法
层次聚类法试图在不同层次对数据集进行划分,从而形成树形的聚类结构,数据集的划分可采用“自下向上”的聚合策略,也可以采用“自顶向下”的分拆策略。聚类的层次被表示成树形图。树根拥有所有样本的唯一聚类,叶子是仅有一个样本的聚类。
层次聚类由不同层次的分割聚类组成,层次之间的分割具有嵌套的关系。它不需要输入参数,这是它的一个明显的优点,其缺点是终止条件必须具体指定。
与原型聚类和密度聚类不同,层次聚类试图在不同的“层次”上对样本数据集进行划分,一层一层地进行聚类。
典型的分层聚具体有:Hierarchical Clustering算法、 BIRCH算法等。
1.基本概念:判断两个簇之间的距离
层次聚类法涉及到一个很关键的地方就是判断簇之间的距离。判断的准则叫做链接准则。对于AgglomerativeClustering算法,scikit-learn有以上4种准则在调用层次聚类算法时可选。
计算两个组合数据点间距离常用的方法是:Single Linkage,Complete Linkage和Average Linkage,3种计算方法解析如下:
Single Linkage是将两个簇中最近的两个点间的距离作为这两个组合数据点的距离,该方法易受极端值的影响,两个不相似的点可能由于其中的某个极端的点距离较近而组合在一起。
Complete Linkage与Single Linkage相反,将两个簇中距离最远的两个点间的距离作为这两个簇的距离,Complete Linkage的