一、简介
K均值聚类算法是先随机选取K个对象作为初始的聚类中心。然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。
二、名词解析
聚类:“类”指的是具有相似性的集合。聚类是指将数据集划分为若干类,使得类内之间的数据最为相似,各类之间的数据相似度差别尽可能大。
**欧氏距离:**欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离。

三、具体步骤

  1. 选取数据空间中的K个对象作为初始中心,每个对象代表一个聚类中心;
    2.计算样本中的数据与这些聚类中心的欧氏距离,按最近原则将这些数据分到距离它们最近的聚类中心所对应的类;
    3.将每个类别中所有对象所对应的均值作为该类别的聚类中心,计算目标函数的值;
    4.判断聚类中心和目标函数的值是否发生改变,若不变,则输出结果,若改变,则用得到的新的聚类中心重新执行第二步。

四、优缺点
优点
(1)算法原理简单。需要调节的超参数就是一个k。
(2)由具有出色的速度和良好的可扩展性。
缺点:
(1)K值选取困难
(2)需要根据初始聚类中心来确定一个初始划分,然后对初始划分进行优化。这个初始聚类中心的选择对聚类结果有较大的影响,一旦初始值选择的不好,可能无法得到有效的聚类结果。
(3)该算法需要不断地对数据样本进行聚类,不断地计算调整后的新的聚类中心,所以数据的时间是非常长的,应该对算法的时间复杂度进行分析、改进,提高算法应用范围。