K-means

原创 2016年06月02日 12:07:06

K-Means
基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标.
k个初始类聚类中心点的选取对聚类结果具有较大的
公式
这里写图片描述
影响,因为在该算法第一步中是随机的选取任意k个对象作为初始聚类的中心,初始地代表一个簇。该算法在每次迭代中对数据集中剩余的每个对象,根据其各个簇中心的距离将每个对象重新赋给最近的簇。当考察完所有数据对象后,一次迭代运算完成,新的聚类中心被计算出来。如果在一次迭代前后,J的值没有发生变化,说明算法已经收敛。

输入:聚类个数k,以及包含 n个数据对象的数据库。
输出:满足方差最小标准的k个聚类。
优点
1.算法快速、简单;
2.对大数据集有较高的效率并且是可伸缩性的;
3.时间复杂度近于线性,而且适合挖掘大规模数据集。K-Means聚类算法的时间复杂度是O(nkt) ,其中n代表数据集中对象的数量,t代表着算法迭代的次数,k代表着簇的数目。
算法的缺点:
(1)在 K-means 算法中 K 是事先给定的,这个 K 值的选定是非常难以估计的。很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适。这也是 K-means 算法的一个不足。
(2)在 K-means 算法中,首先需要根据初始聚类中心来确定一个初始划分,然后对初始划分进行优化。这个初始聚类中心的选择对聚类结果有较大的影响,一旦初始值选择的不好,可能无法得到有效的聚类结果,这也成为 K-means算法的一个主要问题。对于该问题的解决,许多算法采用遗传算法(GA)
(3) 从 K-means 算法框架可以看出,该算法需要不断地进行样本分类调整,不断地计算调整后的新的聚类中心,因此当数据量非常大时,算法的时间开销是非常大的。所以需要对算法的时间复杂度进行分析、改进,提高算法应用范围。

可以证明的是K-means完全可以保证收敛性。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

k—means定位算法

  • 2014-11-10 16:50
  • 1.41MB
  • 下载

K-Means 数据聚集算法

K-Means是什么?引用一篇网友的文章: http://coolshell.cn/articles/7779.html PostgreSQL有一个k-means插件,可以用来实现kmean...

k-means部分算法

K_means聚类算法研究综述

  • 2014-07-05 21:41
  • 324KB
  • 下载

K-means的简单实现

这篇文章中的K-means是简单的实现,没有调初始质心点和K的值,k的值设为3,初始质心点是测试数据的前三个。 并且没有对数据进行归一化处理,只是用原始数据进行聚类。 下面是代码: #include ...

k-means-jasy

基于K-Means的Feature Location

一、问题描述本文是对jEdit4.3的特征定位(Feature Location)。采用的核心算法是K-Means算法。通过Python3的scikit-learn、matplotlib、numpy进...

The k-means clustering algorithm

  • 2016-04-06 20:55
  • 265KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)