k-means思路与算法流程

k-means思路:

k-means思路与算法流程_第1张图片K-Means算法的特点是类别的个数是人为给定的,如果让机器自己去找类别的个数,我们有AP聚类算法,先不说,说了就跑题了。
K-Means的一个重要的假设是:数据之间的相似度可以使用欧氏距离度量,如果不能使用欧氏距离度量,要先把数据转换到能用欧氏距离度量,这一点很重要。
(注:可以使用欧氏距离度量的意思就是欧氏距离越小,两个数据相似度越高
K-Means算法有个很著名的解释,就是牧师-村民模型,这也是K-Means算法的一个过程。
k-means思路与算法流程_第2张图片

算法流程:

步骤:(白话)
k-means思路与算法流程_第3张图片
1、随机生成k个聚类中心点(真心随机生成,因为无所谓~但是尽量不要生成在一起)
2、而后分别计算每一个数据点对这些中心的距离,把距离最短的那个当成自己的类别,或者中心点。
3、这样每个点都会有一个中心点了,这是随机生成的中心点的结果,可以看到聚类的并不准确:k-means思路与算法流程_第4张图片
4、这个时候,身为中心点,觉得自己不能离群众这么遥远,他要到群众中去,这样可以收复那些绿颜色的点,像这样:
k-means思路与算法流程_第5张图片
那么他怎么知道移动到哪里呢?
当然是往群众的中心移动啦!所有的属于蓝色类的点的中心,或者说坐标的平均值,就是蓝色小圆圈要去的地方,于是他收获了更多的群众:k-means思路与算法流程_第6张图片绿色的点也往群众的中心移动,但是却少了一批数据跟随他,不过没关系,反正这些变蓝的点和现在自己所在的绿色大本营的格调(欧氏坐标)格格不入(距离太远)。
于是仅仅2步,情况就成了这样:k-means思路与算法流程_第7张图片5、蓝色的中心点又试着微调了几次,绿色和红色的也一样,微调之后发现自己不需要动了,自己的群众基础已经稳定了,乱动可能脱离群众,众叛亲离,所以这个时候算法就收敛了。

步骤(正式说法):

1、首先随机选取样本中的K个点作为聚类中心;
2、分别算出样本中其他样本距离这K个聚类中心的距离,并把这些样本分别作为自己最近的那个聚类中心的类别;
3、对上述分类完的样本再进行每个类别求平均,求解出新的聚类中心;
4、与前一次计算得到的K个聚类中心比较,如果聚类中心发生变化,转过程b,否则转过程e;
5、当质心不发生变化时,停止并输出聚类结果。
k-means思路与算法流程_第8张图片

你可能感兴趣的:(机器学习,聚类,算法,机器学习)