聚类算法--层次聚类 Hierarchical clustering学习

对于传统的k-means算法,需要手动指定分类的数目k和初始化质心,这两个值的指定对于聚类结果是有很大的影响的。

维基:https://en.wikipedia.org/wiki/Hierarchical_clustering

博客:https://blog.csdn.net/u012500237/article/details/65437525

 Hierarchical clustering-层次聚类

层次聚类是一种聚类分析的算法,构建层次结构,最后以树形结构表示。层次聚类的策略有两个:

Agglomeritive:聚合法,自下而上。  凝聚法指的是初始时将每个样本点当做一个类簇,所以原始类簇的大小等于样本点的个数,然后依据某种准则合并这些初始的类簇,直到达到某种条件或者达到设定的分类数目

Divisive:分裂法,自上而下.分裂法指的是初始时将所有的样本归为一个类簇,然后依据某种准则进行逐渐的分裂,直到达到某种条件或者达到设定的分类数目

 

哪些集合应该合并,聚类应该在何处进行分裂,需要通过一个标准来进行判定。

度量标准:metric,计算点与点之间的距离

常用的计算距离的公式:

《聚类算法--层次聚类 Hierarchical clustering学习》

linkage criteria:链接标准,用于判定两个集合之间的非相似度的函数

《聚类算法--层次聚类 Hierarchical clustering学习》

 

判断两个类的相似度:

SingleLinkage:取两个类中距离最近的两个样本的距离作为这两个集合的距离,最近两个样本之间的距离越小,这两个类之间的相似度就越大。

CompleteLinkage:两个集合中距离最远的两个点的距离作为两个集合的距离

AverageLinkage:把两个集合中的点两两的距离全部放在一起求一个平均值,相对也能得到合适一点的结果

分裂法

 分裂法指的是初始时将所有的样本归为一个类簇,然后依据某种准则进行逐渐的分裂,直到达到某种条件或者达到设定的分类数目。

    输入:样本集合D,聚类数目或者某个条件(一般是样本距离的阈值,这样就可不设置聚类数目)

    输出:聚类结果

    1.将样本集中的所有的样本归为一个类簇;

    repeat:

        2.在同一个类簇(计为c)中计算两两样本之间的距离,找出距离最远的两个样本a,b;

        3.将样本a,b分配到不同的类簇c1和c2中;

        4.计算原类簇(c)中剩余的其他样本点和a,b的距离,若是dis(a)<dis(b),则将样本点归到c1中,否则归到c2中;

    util: 达到聚类的数目或者达到设定的条件

凝聚法

 凝聚法指的是初始时将每个样本点当做一个类簇,所以原始类簇的大小等于样本点的个数,然后依据某种准则合并这些初始的类簇,直到达到某种条件或者达到设定的分类数目。

 输入:样本集合D,聚类数目或者某个条件(一般是样本距离的阈值,这样就可不设置聚类数目)

 输出:聚类结果

      1.将样本集中的所有的样本点都当做一个独立的类簇;

       repeat:

            2.计算两两类簇之间的距离(后边会做介绍),找到距离最小的两个类簇c1和c2;

            3.合并类簇c1和c2为一个类簇;

       util: 达到聚类的数目或者达到设定的条件

    原文作者:聚类算法
    原文地址: https://blog.csdn.net/weixin_40042143/article/details/82532602
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞