kmeans算法原理及代码实现
完整的实验代码在我的github上👉QYHcrossover/ML-numpy: 机器学习算法numpy实现 (github.com) 欢迎star⭐
kmeans算法原理
在上一篇文章中,我们介绍了Mean Shift聚类算法的原理和代码实现。不同于Mean Shift聚类的基于密度的方法,k均值聚类是一种基于距离的聚类算法。它将数据集划分为k个簇,每个簇包含最接近它们的数据点。与Mean Shift聚类不同,k均值聚类需要事先指定簇的数量k。
该算法的实现过程包括以下几个步骤:
- 随机选择k个点作为初始中心点。
- 对于每个数据点,计算它与k个中心点的距离,并将其归为距离最近的中心点所在的簇。
- 对于每个簇,重新计算它们的中心点。
- 重复步骤2和3,直到簇不再发生变化或达到预定的迭代次数。
公式
kmeans算法的代价函数为:
J ( c , μ ) = ∑ i = 1 m ∥ x ( i ) − μ c ( i ) ∥ 2 J(c, \mu) = \sum_{i=1}^{m}\|x^{(i)} - \mu_{c^{(i)}}\|^{2} J(c,μ)=∑i=1m∥x(i)−