Kmeans算法一般采用两个步骤:
1、遍历每条样本,确定距离最近的中心点为其中心;
2、针对新的每条样本分布重新确定新的中心。重复步骤,直至各样本的中心点不再改变。
由于每次迭代需要所有样本,将其结合随机梯度下降算法,将提高收敛速度。主要见文献[1]。采用如下算法:
经过代码验证,采用iris dataset,有如下效果(效果受初始值影响):
图1为原始分类,图2为传统kmeans,图3为sgd+kmeans
sgd较batch kmeans基本只需一次迭代就可以收敛
refrence
[1]Stochastic Gradient Descent Based K-Means Algorithm on Large Scale Data Clustering