层次聚类

层次聚类分为:凝聚法和分裂法。html

凝聚法:算法

假设有N个待聚类的样本,对于层次聚类来讲,基本步骤就是:spa

       一、(初始化)把每一个样本归为一类,计算每两个类之间的距离,也就是样本与样本之间的类似度(杰卡德距离).net

       二、寻找各个类之间最近的两个类,把他们归为一类(这样类的总数就少了一个);htm

       三、从新计算新生成的这个类与各个旧类之间的类似度;blog

       四、重复2和3直到全部样本点都归为一类,结束。循环

整个聚类过程实际上是创建了一棵树,在创建的过程当中,能够经过在第二步上设置一个阈值,当最近的两个类的距离大于这个阈值,则认为迭代能够终止。另外关键的一步就是第三步,如何判断两个类之间的类似度有很多种方法。能够采用计算两个类中的距离。方法

类似度量:杰卡德距离 http://www.cnblogs.com/heaad/archive/2011/03/08/1977733.htmldi

可是计算复杂度比较高,为了寻找距离最近/远和均值,都须要对全部的距离计算个遍,须要用到双重循环。另外从算法中能够看出,每次迭代都只能合并两个子类,这是很是慢的。vi

 

分裂法:

另外有一种聚类方法叫作divisive hierarchical clustering(自顶而下),过程刚好是相反的,一开始把全部的样本都归为一类,而后逐步将他们划分为更小的单元,直到最后每一个样本都成为一类。在这个迭代的过程当中经过对划分过程当中定义一个松散度,当松散度最小的那个类的结果都小于一个阈值,则认为划分能够终止。这种方法用的不广泛,原文也没有作更多介绍。

        因为这种层次结构,普通的k-means也被称为一种flat clustering。

相关文章
相关标签/搜索