KMeans算法是一种典型的基于距离的聚类方法,它主要通过计算对象间的距离来评估相似性。距离越近,对象之间的相似度越高。该算法的目标是将彼此间距离较近的对象聚集在一起,形成紧密且相互独立的簇。
KMeans算法的结果很大程度上取决于初始聚类中心的选择。在算法的第一步中,会随机选择K个对象作为初始聚类中心,这些中心点初步代表了K个不同的簇。之后,在每次迭代中,算法会对数据集中的每个剩余对象,根据其与各个簇中心的距离,将其分配给最近的簇。当所有数据对象都被处理完毕后,一次迭代完成,新的聚类中心会被重新计算。
算法的具体步骤如下:首先,从N个数据样本中随机选择K个样本作为初始聚类中心。本文中,聚类中心的初始化是在样本空间内随机生成K个聚类中心。其次,对于每个数据样本,计算其与每个聚类中心的距离,并将其归类到距离最近的聚类中心所属的簇。然后,重新计算已经形成的各个簇的中心点。最后,重复上述第二步和第三步,直到新的聚类中心与旧的聚类中心之间的差异小于预设的阈值,此时算法停止运行。
需要注意的是,初始聚类中心的选择对最终的聚类效果有很大影响。例如,如果从数据集的左端选取四个点作为初始聚类中心,可能会导致聚类结果偏向于左侧;同样,从右端、上端或下端选取四个点也会产生类似的效果。此外,从数据集中随机选取四个点作为初始聚类中心,也可能导致不同的聚类结果。
参考文献: - https://github.com/MLEveryday/100-Days-Of-ML-Code - https://www.cnblogs.com/eczhou/p/7860424.html - http://www.avikjain.me