博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Data mining (2)
阅读量:5957 次
发布时间:2019-06-19

本文共 1284 字,大约阅读时间需要 4 分钟。

上一篇讲了Partitional Clustering,这一篇聚类的另一种方式,层次分类。 (分享)

Hierarchical CLustering(层次分类)

层次分类方式

(1)Agglomerative(凝聚)

(2)Divisive(分裂)

凝聚的步骤

首先,我用一个通俗的例子来说明下,比如要把10位学生进行聚类,如果我们聚类的标准是空间上的距离,就是说A离B站的近,就认为他们是同一类,而不是根据他们的兴趣爱好,这就是距离的定义,那这样子的话,我们首先算出每两位同学之间的距离,把离得最近的两人先归为一类,那既然是同一类,那就是同一个群体,再算下这9个群体之间的距离,把距离最小的距离再归为一类,直至只有一个类。这就是凝聚。也可以用下面的几点表示。

(1)计算proximity矩阵,就是每两个点(类)之间的距离或者相似度

(2)将距离最短(相似度最高)的点合并在一起

(3)重复(1)(2)步骤,直到最后只有一个类

涉及到的问题

我们很容易就可以想到以两个人为集体跟另一人的空间距离是多少,乃至两个集体之间的距离该如何定义?也正是这个类距离定义的不同,就有了很多不同的算法。

下面给出了定义两个类的相似度的方法,我们知道相似度越高,距离越小。

(1)MIN,以两个Cluster中最近的两个对象的距离作为距离

(2)MAX,以两个Cluster中最远的两个对象的距离作为距离

(3)Group Average,以两个Cluster中所有对象的距离的平均值作为距离

(4)Distance Between Centorids,以两个Cluster中中心的距离作为距离

我们以MIN为例,来说一个例子

(1)我们得到了每两个点之间的相似度,如下

(2)我们发现对象1和对象2之间的相似度是最高的,0.9,所以这两个类得先合并

(3)因为是根据两个类中最短距离作为距离的,所以我们可以直接看,没必要再重新算,我们发现对象4和对象5之间的相似度是0.8,所以将这两个类合并。

(4)接下来,我们发现对象3跟{对象1,对象2}的相似度是0.1,对象3跟{对象4,对象5}的相似度是0.3,因此,我们将对象3跟{对象4,对象5}合并。我们可以得到如下的结果。

当然,我发现MIN是最简单的,但是也有优点,那就是不care类的大小,但是对噪声点敏感。比MIN稍显复杂的是MAX,也可以直接看一个矩阵就能确定聚类结果,下面给出用MAX的聚类结果,另外提一下,MAX的特点正好跟MIN完全相反。

至于其他根据Group Average和Distance Between Centorids,每次合并之后,要重新算下类之间的相似度。

小结

在凝聚过程中,最主要的是定义两个类之间的距离(相似度),对于同一堆数据,不同的距离定义,会得到不同的结果,每个定义都有各自的优势和不足,只有最合适的,没有最好的。根据实际问题实际分析,才是王道。

 

 

 

 

转载于:https://www.cnblogs.com/chuanlong/archive/2013/06/02/3114026.html

你可能感兴趣的文章
linux 笔记本的温度提示
查看>>
数值积分中的辛普森方法及其误差估计
查看>>
Web service (一) 原理和项目开发实战
查看>>
跑带宽度多少合适_跑步机选购跑带要多宽,你的身体早就告诉你了
查看>>
广平县北方计算机第一届PS设计大赛
查看>>
深入理解Java的接口和抽象类
查看>>
java与xml
查看>>
Javascript异步数据的同步处理方法
查看>>
iis6 zencart1.39 伪静态规则
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>
Linux备份ifcfg-eth0文件导致的网络故障问题
查看>>
2018年尾总结——稳中成长
查看>>
JFreeChart开发_用JFreeChart增强JSP报表的用户体验
查看>>
度量时间差
查看>>
通过jsp请求Servlet来操作HBASE
查看>>
Shell编程基础
查看>>
Shell之Sed常用用法
查看>>
3.1
查看>>
校验表单如何摆脱 if else ?
查看>>
<气场>读书笔记
查看>>