关于K-Means聚类算法的,大家交流一下。

论文里都说:K-Means算法对数据输入顺序敏感。怎么理解呢?
我的理解是:K-Means算法选取前K个点为中心,数据输入顺序不同,选取的K个中心点就不同,因此聚类结果不同。这个的根源还是K-Means算法对初始聚类中心的敏感性
而且,我做过实验,打乱了iris中数据的顺序,得到3个不同的数据集。但是我采用相同的中心,得到的结果是一样的。
大家是怎么理解:K-Means算法对数据输入顺序敏感的,这个问题的?
谢谢啊!

当然是敏感的,跟程序中如何处理数据有很大的关系。比如两个中心点(-1,0)(1,0),这时读入数据(0,0),那么程序计算与所有中心点的距离,因为距离相同,程序会给其中一个,至于给哪个,都是由程序决定,一般按数据存储的先后顺序来给。而且结果不同不能代表聚类结果差,而是说明结果的多样化,本身K的选取就是没有一个约定的方法,所以结果有差别也是理所当然的。关键是你要如何体现你的算法的优越性。就是要跟别的算法作比较,比如从算法的空间、时间复杂度,算法的运行处理速度等等因素来做比较。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-06
相同的初始中心,在后面的数据不同的输入顺序下,仍然可能造成不同数据集结果。直观上因为不同的输入顺序中对各中心的影响不同。
你要验证你的理解的正确性,需要给出严格证明;
而要否定你的理解,只需要做出反例即可。追问

谢谢你的回答,你的回答很好,请问你可以举出这样的反例吗?谢谢你了

追答

我暂时没空帮你构造反例……不过这位叫蔚蓝的朋友MS举了一种也算是反例的情况(等距离)。

第2个回答  2011-05-06
bjsjjachjasch
相似回答