K-means聚类算法


K-Means

转载

聚类算法有很多种(几十种),K-Means是聚类算法中的最常用的一种,算法最大的特点是简单,好理解,运算速度快,但是只能应用于连续型的数据,并且一定要在聚类前需要手工指定要分成几类。

算法过程

下面,我们描述一下K-means算法的过程,为了尽量不用数学符号,所以描述的不是很严谨,大概就是这个意思,“物以类聚、人以群分”:

  1. 首先输入k的值,即我们希望将数据集经过聚类得到k个分组。
  2. 从数据集中随机选择k个数据点作为初始大哥(质心,Centroid)
  3. 对集合中每一个小弟,计算与每一个大哥的距离(距离的含义后面会讲),离哪个大哥距离近,就跟定哪个大哥。
  4. 这时每一个大哥手下都聚集了一票小弟,这时候召开人民代表大会,每一群选出新的大哥(其实是通过算法选出新的质心)。
  5. 如果新大哥和老大哥之间的距离小于某一个设置的阈值(表示重新计算的质心的位置变化不大,趋于稳定,或者说收敛),可以认为我们进行的聚类已经达到期望的结果,算法终止。
  6. 如果新大哥和老大哥距离变化很大,需要迭代3~5步骤。

人民代表大会

对于得到的k个分组,计算每个分组内的小弟各元素平均值,作为新大哥。

K-Means聚类过程图示

“+”代表每轮的簇平局值,也就是“大哥”。


文章作者: Extreme Ways
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Extreme Ways !
评论
 上一篇
K-SVD详解 K-SVD详解
K- SVD :为稀疏表示设计过完备字典稀疏表示我们现在有:一个样本向量y = [y1,y2,y3,…,yn].一个字典D (size:n×M)其中,D中的每一列称为D的原子。稀疏表示就是要用D的原子的线性组合来将y表示出来。换句话说,就是
2020-03-15
下一篇 
对最大后验概率的理解 对最大后验概率的理解
当一件事情发生时,若某个参数是未知的,我们如何从事件的结果中推测出这个未知的参数呢?例如,以抛一次硬币为一次实验,重复抛十次,实验结果为:反反反正反反反正反反。实验结果:X={x1=T,x2=T,……,x10=T}(其中T表示反面朝上,H表
2020-03-11
  目录