几种常用聚类方法的比较

几种常用聚类方法的比较 « 汗青-home

几种常用聚类方法的比较

Categories: 未分类
Tags: No Tags
Comments: 1 Comment
Published on: 2012 年 3 月 25 日

聚类算法是数据处理的重要手段,是将数据对象分成类或者簇的过程,使同一个簇里的对象具有高的相似性,而不同簇中的对象高度相异。如图【1】将所有的对象划分成三个簇以及探查出一个噪声对象(point b)的结果是非常令人满意的。

【图1】

归纳化的假设:

1.如果知道聚类后的几个簇的中心(或者是重心等其他的几何以及其他度量的位置),那么一次遍历便可以完成聚类过程;

2.如果知道每个对象的所属类,那么类/簇的中心也很容易确定。

其实,聚类分析的一个目标就是要完成对象所属的确定以及类的中心。从上面的假设可以看出这两个目标互为因果,要解决这个问题就要打破其中的某个环节。

(一)、K-means

K-means 首先假设随机标记的几个点作为中心,完成一次聚类;然后重新评估中心,不断迭代直至中心不再变化。

从上述描述不难看出k-means 方法的问题所在:

  1. 随机选取“几个”,即“K值”必须事先给出。

对于K值的确定,目前还没有智能化的公认的方法;在实际中如果要应用k-means常常要人为设定。

  1. 随机选取的对象作为初始化的各个类的中心,往往会对最终的结果产生很大的影响。

这个弱点导致k-means方法对outline是敏感的。特别的当随机选取的初始化中心本身距离很近时效果会变的非常差劲。

【图2】

【图3】

    例如如果初始化选在了point a,b,c, 那么经过数次的迭代之后效果是十分理想的;但如果选在了point a,d,e; 那么 最后的结果可能是如图【3】一般;左侧的类即使经过多次迭代让然会被划分到一个类里,效果是十分差劲的。

另一方面,对含有大量噪声对象的数据集,k-means方法不能将噪声识别。事实上,当初始化的中心距离很近而且与它划分到同一类的对象都是类噪声的对象(不足以较大幅度影响类中心的评估)时,就会产生上述差的效果。

非正式的优化办法

根据上述的分析在初始化中心时,初始化选取的对象最好是恰好对应于最终的几个类里的成员对象;那效果无疑是最好的。现实中最好的效果往往只是我们的想象而已。

现实中我们只能是我们的做法尽量接近于上述情况。例如在初始化前首先将全部对象遍历一遍,而选取所有对象中的差异化最大的对象作为初始化的中心(我们有理由相信差异化尺度大的对象应该不属于好的聚类结果里的同一类)。

(二)、层次聚类以及评估办法

1 Comment
原文地址:https://www.cnblogs.com/lexus/p/2815970.html