层次聚类的介绍





AGNES算法(自底向上层次聚类)

       AGNES(Agglomerative Nesting) 是凝聚的层次聚类算法,如果簇C1中的一个对象和簇C2中的一个对象之间的距离是所有属于不同簇的对象间欧式距离中最小的,C1和C2可能被合并。这是一种单连接方法,其每个簇可以被簇中的所有对象代表,两个簇之间的相似度由这两个簇中距离最近的数据点对的相似度来确定。

 

       算法描述:

              输入:包含n个对象的数据库,终止条件簇的数目k

              输出:k个簇

(1)       将每个对象当成一个初始簇

(2)       Repeat

(3)                根据两个簇中最近的数据点找到最近的两个簇

(4)                合并两个簇,生成新的簇的集合

(5)       Until达到定义的簇的数目

       算法性能:

(1)       简单,但遇到合并点选择困难的情况。

(2)       一旦一组对象被合并,不能撤销

(3)       算法的复杂度为O(n的平方),不适合大数据集

       DIANA(Divisive Analysis)算法属于分裂的层次聚类,首先将所有的对象初始化到一个簇中,然后根据一些原则(比如最邻近的最大欧式距离),将该簇分类。直到到达用户指定的簇数目或者两个簇之间的距离超过了某个阈值。

       DIANA用到如下两个定义:

(1)       簇的直径:在一个簇中的任意两个数据点都有一个欧氏距离,这些距离中的最大值是簇的直径

(2)       平均相异度(平均距离):

                    

       算法描述:

              输入:包含n个对象的数据库,终止条件簇的数目k

              输出:k个簇,达到终止条件规定簇数目

(1)       将所有对象整个当成一个初始簇

(2)       For ( i=1;i!=k;i++) Do Begin

(3)         在所有簇中挑选出具有最大直径的簇;

(4)           找出所挑出簇里与其他点平均相异度最大的一个点放入splinter group,剩余的放入old party中。

(5)           Repeat

(6)             在old party里找出到splinter group中点的最近距离不大于old party中点的最近距离的点,并将该点加入splinter group

(7)           Until 没有新的old party的点被分配给splinter group;

(8)       Splinter group 和old party为被选中的簇分裂成的两个簇,与其他簇一起组成新的簇集合

(9)       END

       算法性能:

              缺点是已做的分裂操作不能撤销,类之间不能交换对象。如果在某步没有选择好分裂点,可能会导致低质量的聚类结果。大数据集不太适用。


层次聚类算法的分析:

层次聚类法的优点是可以通过设置不同的相关参数值,得到不同粒度上的多层次聚类结构;在聚类形状方面,层次聚类适用于任意形状的聚类,并且对样本的输入顺序是不敏感的。 
层次聚类的不足之处是算法的时间复杂度大,层次聚类的结果依赖聚类的合并点和分裂点的选择。并且层次聚类过程最明显的特点就是不可逆性,由于对象在合并或分裂之后,下一次聚类会在前一次聚类基础之上继续进行合并或分裂,也就是说,一旦聚类结果形成,想要再重新合并来优化聚类的性能是不可能的了。聚类终止的条件的不精确性是层次聚类的另一个缺点,层次聚类要求指定一个合并或分解的终止条件,比如指定聚类的个数或是两个距离最近的聚类之间最小距离阈值。


层次聚类是一种聚类分析方法,可以将数据集中的样本逐渐合并成一个个较大的簇。它不需要指定聚类数目,因为它是一种自底向上的聚类方法,可以根据聚类结果的相似度指标来决定簇的数量。层次聚类的流程一般包括以下步骤: 1. 选择距离度量:层次聚类需要一个计算样本之间距离的度量方法。常用的距离度量方法有欧氏距离、曼哈顿距离、余弦距离等。 2. 计算距离矩阵:根据选择的距离度量方法,计算出数据集中每个样本之间的距离,并将距离值存储在距离矩阵中。 3. 构建初始聚类:将每个样本看做一个初始聚类,并将它们存储在一个集合中。 4. 合并聚类:从初始聚类集合中选取距离最近的两个聚类,将它们合并成一个新的聚类,并将新的聚类加入到聚类集合中。合并过程中需要更新距离矩阵,以反映新的聚类之间的距离。 5. 重复步骤4,直到所有样本都被聚类到一个簇中,或者达到预设的聚类数量。 6. 生成聚类树:将聚类的合并过程可视化为一棵树状结构,称为聚类树或者谱系图。聚类树可以帮助我们直观地理解聚类结果,以及选择最优的聚类数目。 7. 切割聚类树:根据聚类树的分支情况,选择适当的切割点,将聚类树切割成若干个子树,每个子树对应一个聚类结果。 层次聚类方法的优点在于它不需要预先指定聚类数目,而且能够处理非球形的聚类结构。但是它也存在一些缺点,例如计算复杂度高、对噪声和异常值敏感等。因此,在实际应用中需要根据具体场景选择适当的聚类方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值