K-均值聚类
-
优点:易实现。缺点:可能收敛到局部最小值,大规模数据集上收敛较慢;适用于数值型数据。
-
K-均值聚类(找到给定数据集的k个簇) 算法流程 伪代码:
创建k个点作为起始质心(经常是随机选择) 当任意一个点的簇分配结果发生改变时 对数据集中的每个数据点 对每个质心 计算质心到数据点的间距 将数据点分配到距其最近的簇 对每个簇,计算簇中所有点的均值并将均值作为质心
-
评价指标:误差(实质上是数据点到簇质心的距离的平方值之和,SSE,Sum of Squared
Error),以上K-均值算法的问题在于:会收敛于局部最小值而非全局最小值。 -
二分K-均值算法,伪代码:
将所有点看成一个簇(m个样本中所有特征的均值组成的向量) 当簇数目小于K时 对每一个簇 计算总误差 在给定的簇上面进行K-均值聚类(k=2) 计算将该簇二分之后的总误差 如果该总误差小于当前最小的误差,则将该总误差记为当前最小的误差 选择使得误差最小的那个簇进行划分操作
-
另一种二分-K均值算法,伪代码
将所有点看成一个簇(m个样本中所有特征的均值组成的向量) 当簇数目小于K时 对每一个簇 计算总误差 如果该总误差大于当前最大的误差,则将该总误差记为当前最大的误差 找到具有最大误差的簇进行K-均值聚类(k=2) 选择使得误差最小的那个簇进行划分操作