聚类算法是机器学习中的一类无监督学习方法,用于将无标签的数据进行聚类划分。最简单的也最典型的一类算法就是KMeans算法。此处的K表示划分成K个聚类。利用各个点到质心之间的距离的平方和作为将节点划分到不同类的标准。当然也可以采用其他的距离计算方法,不一定是欧式距离方法。
一、KMeans
此方法一般是在数据分析前期使用,选取适当的K,将数据聚类后,研究不同聚类下数据的特点。
算法原理:
(1)随机选择K个中心点;
(2)在第j次迭代中,对于每个样本点,选取最近的中心点,归为该类;
(3)更新中心点为每类的均值;
(4)j < j-1,重复(2)(3)迭代更新,直到误差小到某个值或者达到一定的迭代步数,误差不变,也就是收敛为止;
空间复杂度为O(n),时间复杂度为O(l*K*N),其中N为样本个数,K为中心点个数,即聚类数,I为迭代次数
为什么迭代后误差逐渐减小:
SSE=
对于 而言,