Hierarchical clstering 层次聚类

来源:互联网 发布:收藏品数据公司 编辑:程序博客网 时间:2024/06/05 07:28

1.假设有N个待聚类的样本,对于层次聚类来说,步骤:

1)(初始化)把每个样本归为一类,计算每两个类之间的距离,也就是样本与样本之间的相似度;

2)寻找各个类之间最近的两个类,把它们归为一类(这样类的总数就少了一个)

3)重新计算新生成的这个类与各个旧类之间的相似度;

4)重复2和3直到所有样本点都归为一类,结束;

2.整个聚类过程其实是建立一棵树,在建立的过程中,可以通过在第二步上设置一个阀值,当最近的两个类的距离小于这个阀值,则认为迭代结束;

另外关键的一步是第三步,如何判断两个类之间的相似度有许多方法,介绍三种:

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

存在问题:Chaining效果,两个cluster在大局上离得比较远,但由于个别点比较近就被合并了,最后会形成松散的cluster;

2)CompleteLinkage:SingleLinkage的反面,取链各个集合中距离最远的两个点的距离作为两个集合的距离;

3)Average-Linkage:两个集合中的点两两的距离全部放在一起求一个平均值,相对也能得到合适一点的结果;

4)average-linkage的变种就是取两两距离的中值,与取均值相比更加能够解除个别偏离样本对结果的干扰;