K均值聚类是一种无监督学习算法,通过迭代过程将数据集划分为K个簇,使得同一簇内的数据点距离尽可能近,而不同簇之间的距离尽可能远。
K-means算法是一种基于形心的聚类方法,在所有聚类算法中最简单且最常用。
应用此算法需要给定一个数据集D以及期望划分成的簇的数量k,然后通过该算法将数据集划分为k个不同的簇。每个数据项通常只能属于其中一个簇。
具体来说,假设我们的数据集位于m维欧氏空间内,在开始时可以随机选择k个点作为初始形心(Ci, i∈{1,2,...k}),这里的每一个形心代表一个簇,也就是一组特定的数据集合。接下来计算所有n个数据项与这些形心之间的距离(通常在欧式空间中使用的是欧氏距离)。对于每个数据项Dj,j∈{1,…n},如果它最接近某个特定的Ci,则将该数据项归类为属于这个簇。
通过上述步骤初步划分了数据集后,接下来重新计算各个簇的形心。这一步骤涉及对各簇内所有数据点在每一维度上的平均值进行求解,并以此更新每一个簇的新形心位置。重复执行这一过程直到每个簇的中心不再发生变化为止。