K-means算法
K-means主要由簇分配和移动聚类中心两部分组成,是一种迭代的算法,2个簇的流程可如下描述:
簇分配:随机选择两个样本点,作为簇中心,将每个样本划分至距离更近的簇中心,作为它所属的簇
移动聚类中心:分别计算两个簇中,属于这个簇所有样本的均值,将这个取平均后的向量位置作为当前簇新的中心
重新进行簇分配、移动聚类中心,不断迭代,直到聚类中心不再改变
用伪代码,可作如下描述:
优化目标函数
随机初始化
注:K-means聚类算法有时候会陷入局部最优解。
如下图所示:
K值(簇的数量)
簇的数量的选择,通常有两种方法,均要求 K< m :
人工选择:根据需求或者已知的知识,进行人工选择簇的数量
肘部法则:如下图所示(图源:吴恩达机器学习),尝试不同的 K ,选择变化率明显变缓的“肘部点”