首页 > 中心动态 > 技术动态

短文一篇:层次聚类

2016-08-04


层次聚类(hierarchical clustering)算法极为简单:有N多节点,最开始认为每个节点为一类,然后找到距离最近的节点“两两合并”,合并后的两个节点的平均值作为新的节点,继续两两合并的过程,直到最后都合并成一类。

下图表明了聚类的过程,距离最近的节点合并(第一步中,如果有两对节点距离一样,那就同时合并)

如果用数据挖掘工具来做(如SPSS),一般会生成一个树形图,那么我们可以根据分析问题的具体情况,选择到底最终要聚成几类:

如果从纯理论上讲,判断聚成几类可以参考每一步合并的“距离”是不是有明显差距,我们的例子中:

第一步:A和B,C和D合并时候,距离很近,就算大概是1(就是肉眼估算,没有什么测量)

第二步:CD和E合并,距离其实也很近,大概2

第三步:CDE和F合并,距离远了,大概8

第四步:CDEF和AB合并,距离大概9

可见,第二步到第三步,距离有了一个质的提升,说明相对接近的都已经合成一推儿,开始远距离“结合”了,因此,就在第二步的地方结束,应该是一个较好的聚类选择,也就是聚成3类。

当然,真正聚成几类一定不要从理论出发,还是要看实际案例中,聚成几类最合理,最好解释,最能说明问题.

层次聚类运算速度比较慢,因为要每次都要计算多个cluster内所有数据点的两两距离,处理大量数据时非常吃力,最大的优点,就是它一次性地得到了整个聚类的过程,只要得到了上面那样的聚类树,想要分多少个cluster都可以直接根据树结构来得到结果,改变 cluster数目不需要再次计算数据点的归属。



END.



注:本文转载于36大数据