您的位置:首页 > 其它

数据挖掘回顾十:聚类算法之 K均值 (K-Means) 算法

2015-04-12 22:47 676 查看
由此,跨入无监督学习。即从此没有训练集和测试集之说,无监督学习只有一个数据集。

并且,在分类或回归算法中(有监督学习),数据集中的一条数据包含两个信息:各特征属性值、类别标签或目标值。而聚类算法的数据集中每一条数据只包含一个信息:各特征属性值。

聚类,顾名思义,就是聚类,呵呵。即把数据集中的数据凝聚成一个或多个小类,这些各个小类自己内部的数据之间有相似的特征属性。

K均值算法,顾名思义,包括两个方面:一在 K,即要把数据集分成 K 个小类。二在均值,即每次迭代选择每一个小类标识的时候,总是求这个小类中所有数据的平均值作为当前小类的标识ci,其中i=1,...,k。

K均值算法如下:

首先,从数据集中确定K个数据分别作为K个小类的初始标识。

然后,进行一次次的迭代,直到满足一定的条件,迭代结束。每次迭代做如下两件事情(先做1后做2):

1,对数据集中的每一条数据,通过计算其与当前迭代周期的K个小类的标识ci之间的距离(比如可以是欧式距离),找出K个距离中最小的那个,然后这条数据就划到距离最小对应的小类。

2,重新计算K各小类的均值,得到一个个新的小类的标识ci。

注:*,第一个标红处,即在数据集中确定K个数据作为K个小类的初始标识,如何选定K的大小,然后以及如何选定这K个数据,这有很多种方法。比如随机选择K个数据。比如K的大小可以多试几次。以验证K取哪种值时,聚类效果最好。

      **,第二个标红处,什么条件,迭代会结束?条件就是:当前迭代产生的K个小类和上轮迭代产生的K个小类中的数据一模一样,所有数据的类别都没有发生变化。

至此为止,对于K均值,相信大家都非常明白了。但在实际应用中,可能要经过反复试验才能确定相关的最佳参数,比如K的大小,比如如何选择最初始的K个小类的标识。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: