第34集 python机器学习:凝聚聚类
作者头像
  • 智说财经
  • 2019-10-22 12:02:11 0

凝聚聚类是一种聚类算法,它通过一系列步骤逐步合并最相似的簇,直至满足特定的终止条件。在scikit-learn中,终止条件通常是簇的数量。为了确定两个簇之间的相似度,算法采用不同的链接准则,如ward、average和complete。

  • ward:默认选项,选择两个簇进行合并,以使所有簇内的方差增加最小,从而通常形成大小相近的簇。
  • average:将两个簇中所有点之间的平均距离最小化,然后合并这两个簇。
  • complete:将两个簇中最大距离最小化,然后合并这两个簇。

ward方法通常适用于大多数数据,但如果簇的大小差异较大,使用average和complete可能会更合适。

接下来,我们使用make_blobs数据集来展示凝聚聚类的效果。由于凝聚聚类没有predict方法,我们使用fit_predict方法来进行聚类。结果显示,算法成功地将数据点分为三个簇。

此外,凝聚聚类还生成了层次结构,这可以通过层次凝聚和树状图来观察。尽管scikit-learn本身没有提供绘制树状图的功能,但可以使用Scipy来实现。通过绘制树状图,我们可以更直观地看到数据点是如何逐步合并成簇的。

例如,我们使用ward方法处理一个包含12个样本的数据集,并生成了一个链接数组。接着,我们使用Scipy的dendrogram函数绘制树状图。图中的虚线分别标记了将数据划分为两个簇和三个簇的位置,展示了数据点合并的过程。

尽管凝聚聚类在处理复杂形状的数据(如two_moons数据集)时表现不佳,但通过层次凝聚和树状图,我们可以更好地理解数据点的分布和聚类过程。接下来,我们将探讨另一种聚类算法——DBSCAN,以应对这类复杂情况。

    本文来源:图灵汇
责任编辑: : 智说财经
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
聚聚机器python学习
    下一篇