Advertisement

聚类算法k-means算法及其改进算法

阅读量:

聚类算法属于无监督学习的范畴,其核心目标是将数据集划分为多个类别,使得同一类别内部的数据具备较高的相似性,而不同类别之间的数据则呈现出较大的差异性。根据分类标准的不同,聚类算法主要分为“软聚类”与“硬聚类”两种类型。在“硬聚类”中,每个样本点都会被100%地归属于某一特定类别;而在“软聚类”中,样本点则以一定概率分布的方式被分配至不同的类别之中。当谈及聚类算法时,K-means算法通常首当其冲被提及,也被称为K-均值算法。该方法具有直观的逻辑结构和简便的实现方式。本文以K-means算法为切入点,逐步介绍其多种优化版本,例如K-means++以及核函数K-means等改进型方法。

K-means 的步骤可以分为:

(1)、从数据集中随机挑选 K 个样本点,将其设定为 K 个类别对应的初始聚类中心,并用 Ki 表示这些中心点。

(2)、对所有数据点 Pj 进行逐一处理,通过计算其与各个聚类中心之间的距离,确定距离 Pj 最近的中心 Ki。由此可以判定第 j 个数据点归属于第 i 类别。

(3)、针对第 i 类中的所有数据点,重新计算其几何中心位置,并将该位置作为更新后的聚类中心。

(4)、持续重复执行步骤(2)和(3),直至所有类别对应的聚类中心位置稳定,不再发生改变。

以下为 K -means 算法的代码实现:

复制代码
 #include<iostre

全部评论 (0)

还没有任何评论哟~