点云K-Means聚类算法

因为是老师的作业,所以最近就研究了一下K-Means算法,也就做一下关于这个算法的笔记。

文章目录

  • 一、K-Means算法
  • 二、K-Means算法步骤
  • 三、代码实现效果

一、K-Means算法

在诸多的聚类方法中,K-Means聚类方法是属于“基于原型的聚类”(也称为原型聚类)的方法,此类方法均是假设聚类结构能通过一组原型刻画,在现实聚类中极为常用。通常情况下,该类算法会先对原型进行初始化,然后再对原型进行迭代更新求解。采用不同的原型表示、不同的求解方式,也将会产生不同的算法。

K-Means算法作为一种经典的“原型聚类”算法,其原型选择的是“K个聚类中心”,迭代求解的方式是以相邻两次求解的“质心”(同一类所有的点的x,y,z坐标的平均值)变化程度而进行的,这也可能就是K-Means聚类名字的由来:K个聚类中心+质心(坐标平均值)。

二、K-Means算法步骤

过程其实相对简单:

1、初始化原型,也就是指定K值和K个聚类中心。这其中聚类中心的指定可以人为的输入、也可以随机选择或者其他方式都可以,不过尽量保证聚类中心之间的距离不要选的太近。
2、聚类。遍历所有数据点,计算每个数据点到这K个聚类中心的距离(我这里选择的是欧式距离,也可以选择马氏距离或者其他距离),将每个数据点分配给距离该点最近的聚类中心所属的类别,

你可能感兴趣的:(点云杂记,聚类,算法,kmeans)