标签:依次 选择 问题 net lan copy 撤销 tail views
凝聚层次聚类:
所谓凝聚的,指的是该算法初始时,将每个点作为一个簇,每一步合并两个最接近的簇。另外即使到最后,对于噪音点或是离群点也往往还是各占一簇的,除非过度合并。对于这里的“最接近”,有下面三种定义。我在实现是使用了MIN,该方法在合并时,只要依次取当前最近的点对,如果这个点对当前不在一个簇中,将所在的两个簇合并就行:
(1)单链(MIN):定义簇的邻近度为不同两个簇的两个最近的点之间的距离。
(2)全链(MAX):定义簇的邻近度为不同两个簇的两个最远的点之间的距离。
(3)组平均:定义簇的邻近度为取自两个不同簇的所有点对邻近度的平均值。
根据该算法,实现如下代码。开始时计算每个点对的距离,并按距离降序依次合并。另外为了防止过度合并,定义的退出条件是90%的簇被合并,即当前簇数是初始簇数的10%:
实现代码如下:
另外我们可以看出凝聚的层次聚类并没有类似基本K均值的全局目标函数,没有局部极小问题或是很难选择初始点的问题。合并的操作往往是最终的,一旦合并两个簇之后就不会撤销。当然其计算存储的代价是昂贵的。
标签:依次 选择 问题 net lan copy 撤销 tail views
原文地址:http://www.cnblogs.com/gswang/p/7506643.html