层次聚类算法(二)

  上篇博文简单的讲述了层次聚类的基本概念,接下来就是具体的讲述凝聚的聚类算法AGNES算法与分裂的聚类算法DIANA聚类算法。


  AGNES算法:

  算法描述:

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

               输出:k个簇

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

     (2)       Repeat

     (3)       根据两个簇中最近的数据点找到最近的两个簇(这个地方的最近的衡量标准就是上篇博文所讲的四种距离度量方式)

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

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

       算法性能:

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

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

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

   不管是从原理上还是实现上,AGNES算法都显得十分简单。在K-MEANS算法中,初始化中心点的确定可以由AGNES、DIANA算法来大致确定。



  DIANA算法:

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

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

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

  (2  For ( i=1;i!=k;i++) DoBegin

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

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

  (5)   Repeat

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

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

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

  (9)END

 

  算法基本思想:每次选出最大的簇,将最大的簇进行分裂为两个簇。

  算法性能:

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


  层次聚类缺点:

  传统的层次聚类算法的效率比较低 O(tn2 )t: 迭代次数 n: 样本点数,最明显的一个缺点是不具有再分配能力,即如果样本点 A 在某次迭代过程中已经划分给类簇 C1 ,那么在后面的迭代过程中 A 将永远属于类簇 C1 ,这将影响聚类结果的准确性。



    

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值