【十大经典数据挖掘算法】k-means

https://mp.weixin.qq.com/s/SWlE-KBJ4mVza92nJFX1hg

作者简介:

Treant  人工智能爱好者社区专栏作者

博客专栏:https://www.cnblogs.com/en-heng

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)作为聚类的目标函数,同时也可以衡量不同聚类结果好坏的指标:

下图中给出了一个通过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算法对初始质心的选择不太敏感,因为初始时只选择一个质心。

4、参考资料

[1] Pang-Ning Tan, Michael Steinbach, Vipin Kumar, Introduction to Data Mining.
[2] Xindong Wu, Vipin Kumar, The Top Ten Algorithms in Data Mining.

【十大经典数据挖掘算法】k-means相关推荐

  1. 【十大经典数据挖掘算法】Naïve Bayes

    [十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 朴素贝叶斯(Naïve Bayes) ...

  2. 【十大经典数据挖掘算法】C4.5

    [十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 1. 决策树模型与学习 决策树(de ...

  3. 【十大经典数据挖掘算法】PageRank

    作者简介: Treant 人工智能爱好者社区专栏作者 博客专栏:https://www.cnblogs.com/en-heng 引言 PageRank是Sergey Brin与Larry Page于1 ...

  4. 十大经典数据挖掘算法:SVM

    作者简介: Treant 人工智能爱好者社区专栏作者 博客专栏:https://www.cnblogs.com/en-heng SVM(Support Vector Machines)是分类算法中应用 ...

  5. k均值例子 数据挖掘_【十大经典数据挖掘算法】k-means

    作者简介: Treant 人工智能爱好者社区专栏作者 博客专栏:https://www.cnblogs.com/en-heng 1.引言 k-means与kNN虽然都是以k打头,但却是两类算法--kN ...

  6. 十大经典数据挖掘算法之k-means

    kmeans聚类理论篇 前言 kmeans是最简单的聚类算法之一,但是运用十分广泛.最近在工作中也经常遇到这个算法.kmeans一般在数据分析前期使用,选取适当的k,将数据分类后,然后分类研究不同聚类 ...

  7. 技术08期:十大经典数据挖掘算法【PageRank篇】

    PageRank可以较为直观的理解为是对网页重要性排序的一种算法. Googel 能在全球互联网搜索引擎中处于较高地位,该算法功不可没. 导 读 早期的搜索引擎通过计算用户查询关键词与网页内容的相关程 ...

  8. 【十大经典数据挖掘算法】EM

    作者简介: Treant 人工智能爱好者社区专栏作者 博客专栏:https://www.cnblogs.com/en-heng 1.极大似然 极大似然(Maximum Likelihood)估计为用于 ...

  9. 十大经典数据挖掘算法:EM

    作者简介: Treant 人工智能爱好者社区专栏作者 博客专栏:https://www.cnblogs.com/en-heng 1.极大似然 极大似然(Maximum Likelihood)估计为用于 ...

最新文章

  1. python字典的键可以用列表吗_python字典多键值及重复键值的使用方法(详解)
  2. 『创建型』简单工厂SimpleFactory、工厂方法FactoryMethod、抽象工厂AbstractFactory
  3. 【行业】点餐App未来必须面对的三大难题
  4. [USACO5.4]奶牛的电信Telecowmunication
  5. IDEA:No SLF4J providers were found.
  6. java 数组写法_java书写、数据类型、数组定义
  7. mysql with as 用法_Python之图解with语句
  8. cad在线转低版本_【设计专业干货】史上最齐全的CAD大全
  9. gcn语义分割_另辟蹊径,中科院自动化所等首次用图卷积网络解决语义分割难题...
  10. 乔布斯斯坦福大学演讲pdf_演讲能力训练方法amp;优秀的演讲视频
  11. Django 之 Session的简单使用
  12. 生成特定区间的随机数
  13. About scrum reports
  14. 微信运营必须收藏的软件工具网站合集
  15. 昂达 v891 连接上adb 调试
  16. Python验证信用卡号码是否有效
  17. 为什么要安全域,哪些区域需要单独划分安全域
  18. Summary——CrowdPose: Efficient Crowded Scenes Pose Estimation and A New Benchmark
  19. 用微信小程序做H5游戏尝试
  20. 电商平台订单交易数据分析

热门文章

  1. 百万奖金 !「悟道之巅」AI创新应用大赛,开幕!
  2. 青源LIVE第22期|旷视刘松涛:YOLOX,高性能目标检测的最新实践
  3. 图灵奖得主Joseph Sifakis:物联网自主系统设计的边界与风险(附视频)
  4. 关于Canvas的一些经验
  5. AD-NeRF:用于说话人头部合成的音频驱动神经辐射场
  6. PyTorch学习笔记——pytorch图像处理(transforms)
  7. ICLR 2022 || 通过邻域/度/初始特征重建的等图自编码器
  8. 著名统计学家David Cox去世:他提出的「COX回归模型」曾影响一代人
  9. 抓取了1400家科技公司的招聘信息,我发现数据工程师比数据科学家更有市场
  10. 知否,知否,交通数据邂逅【数据故事计划二等奖】