K-means++算法

K-means++算法,第1张

K-means++算法是K-means算法的改进版本,由David Arthur 和Sergei Vassilvitskii 于2007年提出。传统的K-means算法需要在初始阶段在数据集中随机选择 个点作为聚类中心,而K-means算法的聚类效果和运行时间很大程度上受初始聚类中心的选择的影响。K-means++算法对于初始聚类中心的选择进行了改进。K-means++选择聚类中心的思想为:假设已经选取了 个初始聚类中心( ),则在选取第 个聚类中心时:距离当前 个聚类中心越远的点会有更高的概率被选为第 个聚类中心。

Step1:从数据集 中随机选择一个样本点 作为初始聚类中心

Step2:计算每个样本点 与全部已有聚类中心之间的最短距离,用 示。接着计算每个样本被选为下一个聚类重新的概率

Step3: 重复Step2,直至选出K个聚类中心

Step4:针对数据集中的每个样本 ,计算 到 个聚类中心的距离,并将 分到距离最小的聚类中心所对应的类别中

Step5:针对每个类别 , 重新计算它的聚类中心

Step6:重复Step5和Step6直到聚类中心的位置不再变化

(1) 从 n个数据对象任意选择 k 个对象作为初始聚类中心;

(2) 根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离;并根据最小距离重新对相应对象进行划分;

(3) 重新计算每个(有变化)聚类的均值(中心对象);

(4) 计算标准测度函数,当满足一定条件,如函数收敛时,则算法终止;如果条件不满足则回到步骤(2)。 k-means 算法接受输入量 k ;然后将n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。

k-means 算法的工作过程说明如下:首先从n个数据对象任意选择 k 个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数. k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。

算法的时间复杂度上界为O(n*k*t), 其中t是迭代次数。

k-means算法是一种基于样本间相似性度量的间接聚类方法,属于非监督学习方法。此算法以k为参数,把n 个对象分为k个簇,以使簇内具有较高的相似度,而且簇间的相似度较低。相似度的计算根据一个簇中对象的平均值(被看作簇的重心)来进行。此算法首先随机选择k个对象,每个对象代表一个聚类的质心。对于其余的每一个对象,根据该对象与各聚类质心之间的距离,把它分配到与之最相似的聚类中。然后,计算每个聚类的新质心。重复上述过程,直到准则函数收敛。k-means算法是一种较典型的逐点修改迭代的动态聚类算法,其要点是以误差平方和为准则函数。逐点修改类中心:一个象元样本按某一原则,归属于某一组类后,就要重新计算这个组类的均值,并且以新的均值作为凝聚中心点进行下一次象元素聚类;逐批修改类中心:在全部象元样本按某一组的类中心分类之后,再计算修改各类的均值,作为下一次分类的凝聚中心点。

K-均值算法(K-means clustering algorithm)是一种常见的聚类算法,用于将一组数据划分为K个不同的簇或组。其工作流程如下:

初始化:随机选择K个点作为初始的簇中心(centroid)。

分配数据点:对于每个数据点,计算它与每个簇中心的距离,并将它分配到距离最近的簇中心所在的簇。

更新簇中心:对于每个簇,计算其所有成员的平均值,并将该平均值作为新的簇中心。

重复步骤2和步骤3,直到满足某个停止准则,例如簇中心不再发生变化,簇内平方和达到最小值,或达到预定的迭代次数。

输出:算法输出K个簇及其对应的簇中心。

K-均值算法是一种迭代算法,通过不断地更新簇中心和重新分配数据点,最终将数据点划分为K个不同的簇。该算法的性能与初始的簇中心的选择有关,不同的初始选择可能会导致不同的结果。因此,通常会进行多次运行,选择最终结果最优的一次运行作为算法的输出。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11820007.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存