1. 首页 > 电脑手机 >

kmeans聚类算法特点(kmeans聚类算法举例子)

kmeans算法原理

kmeans算法原理如下:

kmeans聚类算法特点(kmeans聚类算法举例子)kmeans聚类算法特点(kmeans聚类算法举例子)


K-means算法是一种典型的基于划分的聚类算法该算法具有运算速度快,执行过程简单的优点,在很多大数据处理领域得到了广泛的应用。

利用相似性度量方法来衡量数据集中所有数据之间的关系,将关系比较密切的数据划分到一个中。K-means算法首先需要选择K个初始化聚类中,计算每个数据对象到K个初始化聚类中心的距离。

将数据对象分到距离聚类中心近的那个数据集中,.当所有数据对象都划分以后,就形成了K个据集(即K个簇),接下来重新计算每个簇的数据对象的均值,将均值作为新的聚类中心。

后计算每个数据对象到新的K个初始化聚类中心的距离,重新划分,每次划分以后,都需要重新计算初始化聚类中心,一直重复这个过程,直到所有的数据对象无法更新到其他的数据集中。

知识扩展:

k-means算法优缺点

1、优点:算法简单易实现。对于大数据集,这种算法相对可伸缩且是高效的,计算复杂度为O(TNk}接近于线性(其中T是迭代次数、N是样本总数、k为聚类簇数)。虽然以局部结束,但一般情况 下达到的局部已经可以满足聚类的需求。

2、缺点:需要人工预先确定初始K值,该值与实际的类另数可能不吻合。tK均值只能收敛到局部。因为求解这个代价函数是个NP问题,采用的是贪心策略,所以只能通过多次迭代收敛到局部,而不是全局。

K<均值的效果受初始值和离群点的影响大。因为k均值本质上是基于距离度量来划分的,均值和大的维度将对数据的聚类结果产生决定性的影响,因此需要进行归-化处理:此外,离群点或噪声对均值会产生影响,导致中心偏移,因此需要进行预处理。

聚类算法

1. 概述

K-means聚类算法也称k均值聚类算法,是集简单和经典于一身的基于距离的聚类算法。它采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为类簇是由距离靠近的对象组成的,因此把得到 紧凑且独立的簇作为终目标。

2. 算法核心思想

K-means聚类算法是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或小数目)对象被重新分配给不同的聚类,没有(或小数目)聚类中心再发生变化,误平方和局部小。

3. 算法实现步骤

1、首先确定一个k值,即我们希望将数据集经过聚类得到k个。

2、从数据集中随机选择k个数据点作为质心。

3、对数据集中每一个点,计算其与每一个质心的距离(如欧式距离),离哪个质心近,就划分到那个质心所属的。

4、把所有数据归好后,一共有k个。然后重新计算每个的质心。

5、如果新计算出来的质心和原来的质心之间的距离小于某一个设置的阈值(表示重新计算的质心的位置变化不大,趋于稳定,或者说收敛),我们可以认为聚类已经达到期望的结果,算法终止。

6、如果新质心和原质心距离变化很大,需要迭代3~5步骤。

4. 算法步骤图解

上图a表达了初始的数据集,假设k=2。在图b中,我们随机选择了两个k类所对应的类别质心,即图中的红色质心和蓝色质心,然后分别求样本中所有点到这两个质心的距离,并标记每个样本的类别为和该样本距离小的质心的类别,如图c所示,经过计算样本和红色质心和蓝色质心的距离,我们得到了所有样本点的第一轮迭代后的类别。此时我们对我们当前标记为红色和蓝色的点分别求其新的质心,如图d所示,新的红色质心和蓝色质心的位置已经发生了变动。图e和图f重复了我们在图c和图d的过程,即将所有点的类别标记为距离近的质心的类别并求新的质心。终我们得到的两个类别如图f。

K-means术语:

簇:所有数据的点,簇中的对象是相似的。

质心:簇中所有点的中心(计算所有点的中心而来)

5. K-means算法优缺点

优点:

1、原理比较简单,实现也是很容易,收敛速度快。

2、当结果簇是密集的,而簇与簇之间区别明显时, 它的效果较好。

3、主要需要调参的参数仅仅是簇数k。

缺点:

1、K值需要预先给定,很多情况下K值的估计是非常困难的。

2、K-Means算法对初始选取的质心点是敏感的,不同的随机种子点得到的聚类结果完全不同 ,对结果影响很大。

3、对噪音和异常点比较的敏感。用来检测异常值。

4、采用迭代方法,可能只能得到局部的解,而无法得到全局的解。

kmeans聚类算法是什么?

K-means算法是为经典的基于划分的聚类方法,是十大经典数据挖掘算法之一。K-means算法的基本思想是:以空间中k个点为中心进行聚类,对靠近他们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到的聚类结果。

聚类属于无监督学习,以往的回归、朴素贝叶斯、SVM等都是有类别标签y的,也就是说样例中已经给出了样例的分类。而聚类的样本中却没有给定y,只有特征x,比如假设宇宙中的星星可以表示成三维空间中的点集。

扩展资料:

k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。

(1)适当选择c个类的初始中心;

(2)在第k次迭代中,对任意一个样本,求其到c个中心的距离,将该样本归到距离短的中心所在的类;

(3)利用均值等方法更新该类的中心值;

(4)对于所有的c个聚类中心,如果利用(2)(3)的迭代法更新后,值保持不变,则迭代结束,否则继续迭代。

参考资料来源:

聚类算法 - kmeans

kmeans即k均值算法。k均值聚类是的划分聚类算法,由于简洁和效率使得他成为所有聚类算法中广泛使用的。给定一个数据点和需要的聚类数目k,k由用户指定,k均值算法根据某个距离函数反复把数据分入k个聚类中。

简易动画过程在这, 传送门

第一步 ,输入k的值,即我们希望将数据集经过聚类得到k类,分为k组

第二步 ,从数据集中随机选择k个数据点作为初识的聚类中心(质心,Centroid)

第三步 ,对中每一个数据点,计算与每一个聚类中心的距离,离哪个中心距离近,就标记为哪个中心。待分配完全时,就有第一次分类。

第四步 ,每一个分类根据现有的数据重新计算,并重新选取每个分类的中心(质心)

第五至N步 ,重复第三至四步,直至符合条件结束迭代步骤。条件是如果新中心和旧中心之间的距离小于某一个设置的阈值(表示重新计算的质心的位置变化不大,趋于稳定,或者说收敛),可以认为我们进行的聚类已经达到期望的结果,终止迭代过程。

该算法的核心就是选择合适的k值,不同的k值出来有不同的结果。

手肘法的核心指标是SSE(sum of the squared errors,误平方和),

其中,Ci是第i个簇,p是Ci中的样本点,mi是Ci的质心(Ci中所有样本的均值),SSE是所有样本的聚类误,代表了聚类效果的好坏。

手肘法的核心思想是:随着聚类数k的增大,样本划分会更加精细,每个簇的聚合程度会逐渐提高,那么误平方和SSE自然会逐渐变小。并且,当k小于真实聚类数时,由于k的增大会大幅增加每个簇的聚合程度,故SSE的下降幅度会很大,而当k到达真实聚类数时,再增加k所得到的聚合程度回报会迅速变小,所以SSE的下降幅度会骤减,然后随着k值的继续增大而趋于平缓,也就是说SSE和k的关系图是一个手肘的形状,而这个肘部对应的k值就是数据的真实聚类数。当然,这也是该方法被称为手肘法的原因。

该方法的核心指标是轮廓系数(Silhouette Coefficient),某个样本点Xi的轮廓系数定义如下:

其中,a是Xi与同簇的其他样本的平均距离,称为凝聚度,b是Xi与近簇中所有样本的平均距离,称为分离度。而近簇的定义是

其中p是某个簇Ck中的样本。事实上,简单点讲,就是用Xi到某个簇所有样本平均距离作为衡量该点到该簇的距离后,选择离Xi近的一个簇作为近簇。

求出所有样本的轮廓系数后再求平均值就得到了 平均轮廓系数 。平均轮廓系数的取值范围为[-1,1],且簇内样本的距离越近,簇间样本距离越远,平均轮廓系数越大,聚类效果越好。那么,很自然地,平均轮廓系数的k便是佳聚类数。

(1)容易理解,聚类效果不错,虽然是局部, 但往往局部就够了

(2)处理大数据集的时候,该算法可以保证较好的伸缩性

(3)当簇近似高斯分布的时候,效果非常不错

(4)算法复杂度低

(1)K 值需要人为设定,不同 K 值得到的结果不一样

(2)对初始的簇中心敏感,不同选取方式会得到不同结果

(3)对异常值敏感

(4)样本只能归为一类,不适合多分类任务

(5)不适合太离散的分类、样本类别不平衡的分类、非凸形状的分类

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息