k-means算法

K-means算法:

K-means算法是十大经典数据挖掘算法之一,它将原始数据集划分为k个聚类,同一个聚类中的数据相似度高不同聚类中数据点相似度低,而相似度一般通过欧式距离来度量,即归到同一个聚类中的数据点到聚类中心的距离较近。K-means算法的核心思想是,先随机从数据集中选择k个点作为中心,然后将所有的点归类到每个聚类中。

聚类步骤描述如下:

(1)选择k个类心作为初始的中心,尽量能翻译所有数据点的大致分布情况,

(2)计算每个点到K个类心的距离,排序后归类到距离最近的聚类中,

(3)根据每个聚类的平均值重新更新类心

(4)重新执行(2)(3)两步不断迭代优化。

K-means算法虽然过程简单,但是确实每场耗时的一个过程,因为每次都要计算每个点到每个类心的欧式距离,当数据集非常大时,会耗费大量时间,虽然迭代次数越多效果越好,实际上迭代五次就能达到很好的效果。

理论:

通过k-meangs聚类算法将原始数据进行聚类,把n个数据点划分到k个不同的组中。设表示量化后的数据集k-means算法。每个元素代表一个类。失真度度量,使用平方和来度量。

k-means算法是第k-means算法类的代表点,失真度度量:

k-means算法

由上可知,为了最小化失真度,应该选取每个组的中心点作为这个组的代表点。K-means算法迭代过程需要耗费大量时间。通常选择迭代次数为5次能达到较好效果,一般次数越多聚类越好。