现。请看图6-29的例子。
K-Means的工作原理为:对于将含有n个样本组成的样本集分成k类的任务,按照如下步骤进行:
(1)从n个样本中随机选取k个点作为初始聚类中心。
(2)计算每个样本到各个聚类中心的相似度,并划分到相似度最高的聚类中心。
(3)重新计算每个聚类的均值,将其作为新的聚类中心。
(4)重复步骤(2)和(3),直到所有聚类中心不再改变为止。
可以看到,K-Means算法是一个反复迭代求解的过程。K是需要预先设定好的超参数。K-Means的优势在于速度快,因为我们真正做的是计算点和组中心之间的距离,只需要非常少的计算。因此,它具有线性复杂度O(n)。另一方面,K-Means有一些缺点。首先,你必须选择有多少组/类。理想情况下,我们希望聚类算法能够解决分多少类的问题。K-Means也从随机选择的聚类中心开始,所以它可能在不同的算法中产生不同的聚类结果。因此,结果可能不可重复并缺乏一致性。其他聚类方法更加一致。K-Medians是与K-Means有关的另一个聚类算法,除了不是用均值而是用组的中值向量来重新计算组中心。这种方法对异常值不敏感(因为使用中值),但对于较大的数据集要慢得多,因为在计算中值向量时,每次迭代都需要进行排序。
6.7.2 均值漂移聚类
均值漂移聚类是基于滑动窗口的算法,它试图找到数据点的密集区域。这是一个基于质心的算法,意味着它的目标是定位每个组/类的中心点,通过将中心点的候选点更新为滑动窗口内点的均值来完成。然后,在后处理阶段对这些候选窗口进行过滤以消除近似重复,形成最终的中心点集及其相应的组。请看图6-30的例子。
人工智能与大数据技术导论
186