k-means算法比较简单。k-means算法中,用簇来表示簇;很容易证明k-means算法的收敛等价于所有质心不再变化。k-means算法的基本流程如下:简介,又称K-means算法,是无监督学习中的一种聚类算法。k-means算法的基本思想比较简单。k-means算法中,用簇来表示簇;很容易证明k-means算法的收敛等价于所有质心不再变化。基本的k-means算法过程如下:选择k个初始质心(作为初始簇,每个初始簇只包含一个点);repeat:对于每个样本点,计算离它最近的质心,并将其类别标记为该质心对应的簇;重新计算k个簇对应的质心(质心为簇内样本点的均值);直到质心不再变化12345次重复次数决定了算法的迭代次数。其实k-means的本质就是最小化目标函数,目标函数是每个点到其簇质心的距离的平方和:N是元素个数,x代表元素,c(j)表示第j个簇的质心算法复杂度时间复杂度为O(nkt),其中n表示元素个数,t表示算法迭代次数,k表示簇数优缺点优缺点简单快速;对大数据集效率高,可扩展Scalable;时间复杂度接近线性,适合挖掘大规模数据集。缺点k-means是局部优化,因此对初始质心的选取比较敏感;选择能够达到目标函数最优功能的k值是非常困难的。代码代码已经在github上实现,这里也贴出测试数据集,获取地址为testSet
