K-Means算法
K-means算法是将样本聚类成k个簇(cluster),具体算法描述如下:
1、 随机选取k个聚类质心点(cluster centroids)为 2、 重复下面过程直到收敛 { 对于每一个样例i,计算其应该属于的类 对于每一个类j,重新计算该类的质心 } |
K是我们事先给定的聚类数,代表样例i与k个类中距离最近的那个类,
的值是1到k中的一个。质心
代表我们对属于同一个类的样本中心点的猜测,拿星团模型来解释就是要将所有的星星聚成k个星团,首先随机选取k个宇宙中的点(或者k个星星)作为k个星团的质心,然后第一步对于每一个星星计算其到k个质心中每一个的距离,然后选取距离最近的那个星团作为
,这样经过第一步每一个星星都有了所属的星团;第二步对于每一个星团,重新计算它的质心
(对里面所有的星星坐标求平均)。重复迭代第一步和第二步直到质心不变或者变化很小。
下图展示了对n个样本点进行K-means聚类的效果,这里k取2。
其中,k的值需要正确选择。如果能够在不同的k下对聚类结果的质量进行评价,我们往往就可猜测到正确的k值。