0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基本的k-means算法流程

lviY_AI_shequ 来源:未知 作者:李倩 2018-07-24 17:44 次阅读

1、引言

k-means与kNN虽然都是以k打头,但却是两类算法——kNN为监督学习中的分类算法,而k-means则是非监督学习中的聚类算法;二者相同之处:均利用近邻信息来标注类别。

聚类是数据挖掘中一种非常重要的学习流派,指将未标注的样本数据中相似的分为同一类,正所谓“物以类聚,人以群分”嘛。k-means是聚类算法中最为简单、高效的,核心思想:由用户指定k个初始质心(initial centroids),以作为聚类的类别(cluster),重复迭代直至算法收敛。

2、基本算法

在k-means算法中,用质心来表示cluster;且容易证明k-means算法收敛等同于所有质心不再发生变化。基本的k-means算法流程如下:

选取k个初始质心(作为初始cluster); repeat: 对每个样本点,计算得到距其最近的质心,将其类别标为该质心所对应的cluster; 重新计算k个cluser对应的质心; until 质心不再发生变化

对于欧式空间的样本数据,以平方误差和(sum of the squared error, SSE)作为聚类的目标函数,同时也可以衡量不同聚类结果好坏的指标:

表示样本点到cluster的质心距离平方和;最优的聚类结果应使得SSE达到最小值。

下图中给出了一个通过4次迭代聚类3个cluster的例子:

k-means存在缺点:

k-means是局部最优的,容易受到初始质心的影响;比如在下图中,因选择初始质心不恰当而造成次优的聚类结果(SSE较大):

同时,k值的选取也会直接影响聚类结果,最优聚类的k值应与样本数据本身的结构信息相吻合,而这种结构信息是很难去掌握,因此选取最优k值是非常困难的。

3、优化

为了解决上述存在缺点,在基本k-means的基础上发展而来二分 (bisecting) k-means,其主要思想:一个大cluster进行分裂后可以得到两个小的cluster;为了得到k个cluster,可进行k-1次分裂。算法流程如下:

初始只有一个cluster包含所有样本点; repeat: 从待分裂的clusters中选择一个进行二元分裂,所选的cluster应使得SSE最小; until 有k个cluster

上述算法流程中,为从待分裂的clusters中求得局部最优解,可以采取暴力方法:依次对每个待分裂的cluster进行二元分裂(bisect)以求得最优分裂。二分k-means算法聚类过程如图:

从图中,我们观察到:二分k-means算法对初始质心的选择不太敏感,因为初始时只选择一个质心。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    3868

    浏览量

    61309
  • 聚类算法
    +关注

    关注

    2

    文章

    118

    浏览量

    12077
  • K-means
    +关注

    关注

    0

    文章

    28

    浏览量

    11225

原文标题:【十大经典数据挖掘算法】k-means

文章出处:【微信号:AI_shequ,微信公众号:人工智能爱好者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于距离的聚类算法K-means的设计实现

    K-means 算法是典型的基于距离的聚类算法,采用距离作为相似性的评价指标,两个对象的距离越近,其相似度就越大。而簇是由距离靠近的对象组成的,因此算法目的是得到紧凑并且独立的簇。
    的头像 发表于 07-18 09:19 1819次阅读
    基于距离的聚类<b class='flag-5'>算法</b><b class='flag-5'>K-means</b>的设计实现

    使用K-means压缩图像

    山东大学机器学习(实验六内容)—— K-Means
    发表于 08-28 09:25

    调用sklearn使用的k-means模型

    【python】调用sklearn使用k-means模型
    发表于 06-12 13:33

    K-Means有什么优缺点?

    K-Means的主要优点是什么?K-Means的主要缺点是什么?
    发表于 06-10 06:14

    改进的k-means聚类算法在供电企业CRM中的应用

    针对k-means算法存在的不足,提出了一种改进算法。 针对目前供电企业CRM系统的特点提出了用聚类分析方法进行客户群细分模型设计,通过实验验证了本文提出的k-means改进
    发表于 03-01 15:28 15次下载

    Web文档聚类中k-means算法的改进

    Web文档聚类中k-means算法的改进 介绍了Web文档聚类中普遍使用的、基于分割的k-means算法,分析了k-means
    发表于 09-19 09:17 978次阅读
    Web文档聚类中<b class='flag-5'>k-means</b><b class='flag-5'>算法</b>的改进

    K-means+聚类算法研究综述

    介绍了K-means 聚类算法的目标函数、算法流程,并列举了一个实例,指出了数据子集的数目K、初始聚类中心选取、相似性度量和距离矩阵为K-means
    发表于 05-07 14:09 27次下载
    K-<b class='flag-5'>means</b>+聚类<b class='flag-5'>算法</b>研究综述

    基于密度的K-means算法在聚类数目中应用

    针对传统的K-means算法无法预先明确聚类数目,对初始聚类中心选取敏感且易受离群孤点影响导致聚类结果稳定性和准确性欠佳的问题,提出一种改进的基于密度的K-means算法。该
    发表于 11-25 11:35 0次下载

    K-Means算法改进及优化

    传统的k-means算法采用的是随机数初始化聚类中心的方法,这种方法的主要优点是能够快速的产生初始化的聚类中心,其主要缺点是初始化的聚类中心可能会同时出现在同一个类别中,导致迭代次数过多,甚至陷入
    发表于 12-05 18:32 0次下载
    <b class='flag-5'>K-Means</b><b class='flag-5'>算法</b>改进及优化

    基于布谷鸟搜索的K-means聚类算法

    针对原始K-means聚类算法受初始聚类中心影响过大以及容易陷入局部最优的不足,提出一种基于改进布谷鸟搜索(cs)的K-means聚类算法(ACS-K-
    发表于 12-13 17:24 3次下载

    熵加权多视角核K-means算法

    在基于视角加权的多视角聚类中,每个视角的权重取值对聚类结果的精度都有着重要的影V向。针对此问题,提出熵加权多视角核K-means( EWKKM)算法,通过给每个视角分配一个合理的权值来降低噪声视角
    发表于 12-17 09:57 1次下载

    k-means算法原理解析

    对于K-Means算法,首先要注意的是k值的选择,一般来说,我们会根据对数据的先验经验选择一个合适的k值,如果没有什么先验知识,则可以通过交叉验证选择一个合适的k值。
    的头像 发表于 02-12 16:06 8134次阅读
    <b class='flag-5'>k-means</b><b class='flag-5'>算法</b>原理解析

    K-Means算法的简单介绍

    K-Means是十大经典数据挖掘算法之一。K-Means和KNN(K邻近)看上去都是K打头,但却是不同种类的算法。kNN是监督学习中的分类算法
    发表于 07-05 14:18 4616次阅读

    K-MEANS聚类算法概述及工作原理

    K-means 是一种聚类算法,且对于数据科学家而言,是简单且热门的无监督式机器学习(ML)算法之一。
    的头像 发表于 06-06 11:53 3097次阅读

    K-means聚类算法指南

    在聚类技术领域中,K-means可能是最常见和经常使用的技术之一。K-means使用迭代细化方法,基于用户定义的集群数量(由变量K表示)和数据集来产生其最终聚类。例如,如果将K设置为3,则数据集将分组为3个群集,如果将K设置为4,则将数据分组为4个群集,依此类推。
    的头像 发表于 10-28 14:25 838次阅读