量子机器学习及区块链技术导论
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.4.1 K-Means算法

通常,无监督学习算法仅使用数据集中的输入向量进行推断,而没有标签作为参考。K-Means算法是最简单和最流行的无监督聚类算法之一,其目标是将相似的数据点聚类在一起并发现潜在信息的模式。K-Means算法中的均值(Means)是指数据的平均值,也就是质心。K-Means算法产生用于定义k个聚类的k个质心,在训练时,通过减少聚类内的平方和,可将每个数据点分配给每个聚类;在测试时,一旦某个数据点与某个质心最接近,则认为该数据点属于这一聚类。

K-Means算法从一组随机选择的质心作为开始,将这些随机选择的质心作为每个聚类的起点,重复进行迭代计算,以优化质心的位置。当发生以下情况之一时,就可以停止迭代:

(1)质心稳定不变,也就是说,由于聚类成功,质心的值已不再会发生变化。

(2)已完成事先定义的迭代次数。

图2.9至图2.11所示为K-Means算法从随机质心开始迭代直到聚类质心不再改变为止的过程,其他所有的数据都与3个质心进行测距,与某数据距离最小的质心所属的聚类就是该数据所属的类别。

img

图2.9 K-Means算法示例:一组随机选择的质心

img

图2.10 K-Means算法示例:质心不再改变

K-Means算法是一种简单直观的无监督学习算法,易实现且收敛速度快;其缺点在是K值的选择会影响速度和性能,若数据不平衡,则会影响聚类效果。

img

图2.11 K-Means算法示例:形成3个聚类