Kmeans是一种非监督的聚类方法,是最常用的聚类技术之一。kmeans尝试找到数据的自然类别,通过用户设定的类别个数K,它可以快速的找到“好的”类别中心,“好的”意味着聚类中心位于数据的自然中心。
(一)算法步骤
Kmeans算法一般步骤如下:
1、输入样本数据集合和用户指定的类别数K。
2、分配类别初始化中心点的位置(随机或指定)。
3、将每个样本点放入离它最近的聚类中心所在的集合。
4、移动聚类中心点到它所在集合的中心。
5、转到第3步,直到满足给定的收敛条件。
下图展示了kmeans到底是怎么工作的:
图1.(a)随机设置聚类中心然后将数据样本聚到离它最近的中心(b)将初始中心移动到新聚类集合所在中心(c)数据样本点根据最近邻规则重新聚到类别中心(d)聚类中心再次移到它所在新类别的中心
(二)Kmeans优缺点
Kmeans有以下几个优点:
1、是解决聚类问题的一种经典算法,算法简单、快速。
2、对处理大数据集,该算法是相对可伸缩的和高效率的,因为它的复杂度是线性的,大约是O(nkt),其中n是所有样本的数目,k是簇的数目,t是迭代的次数。通常k<<n。
3、该算法是收敛的(不会无限迭代下去)。
4、算法尝试找出使平方误差函数值最小的k个划分。当簇是密集的、球状或团状的,而簇与簇之间区别明显时,它的聚类效果很好。