您的位置:首页 > 其它

k-means 聚类算法的缺陷

2018-02-27 14:26 162 查看
k-means算法是一种典型的基于距离的算法,它以距离作为评价相似度的指标。两个对象的距离越近,则相似度也就越大。

其算法步骤如下:
1.随机选取K个聚类中心点。基于这k个中心点计算每个对象到中心点的距离,并将对象划分成其离最短的那个中心点的那一个类别,也就是第一轮迭代就根据选取的中心点将对象划分成了k类。
2.对每一个类重新计算中心点,也就是中心点根据上一轮迭代的类别进行重算,得到新的k个中心点。

3.基于新的中心点,开始新的聚类迭代,重新计算每个对象离中心点的距离,并划分成最短距离的中心点所对应的类别。

4.重复第2和第3步,直到新的中心点与原来的中心点相等或者小于指定的阈值。
以上就是k-means算法的实现过程。不难看出,k-means算法具备以下的缺陷:

1.k值必须给定

进行k-means算法时,必须指定聚类数量。但是有时候我们并不知道应该聚成多少个类,而是希望算法可以给出一个合理的聚类数量,往往一开始k值很难预先估计并给定。

2.随机的k个中心点影响结果

在k-means算法中,一开始的k个中心点是随机选定的,在后面的迭代中再进行重算,直到收敛。但是根据算法的步骤不难看出,这样一来最后所生成的结果往往很大程度上取决于一开始K个中心点的位置。这样一来,也就意味着结果具备很大的随机性,每次计算结果都会因为初始随机选择的中心质点不一样而导致结果不一样。

3.计算性能

该算法需要不断的对对象进行分类调整,不断的计算调整后新的聚类中心点,因此当数据量非常大时,算法的时间开销是非常大的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  k-means 聚类