一、什么是簇?

我们知道聚类就是让机器把数据集中的样本按照特征的性质分组,直观上来看,簇是一组一组聚集在一起的数据,在 一个簇 中的数据就认为是 同一类 ,簇就是聚类的结果表现。实际上簇并没有明确的定义,并且簇的划分没有客观标准,我们可以利用下图来理解什么是簇。该图显示了20个点和将它们划分成簇的3种不同方法,标记的形状(口、△、☆等)表示簇的隶属关系。

图中分别将数据划分成两个簇、四个簇和六个簇。直观地看,将图b的2个较大的簇再划分成4个簇好像也不无道理,这可能是人的视觉系统造成的假象。

该图表明簇的定义是不精确的,而最好的定义依赖于数据的特性和期望的结果。

二、什么是质心?

簇中所有 数据的均值 通常被称为这个 簇的“质心”( centroids) 。在一个二维平面中,一簇数据点的质心的横坐标就是这一簇数据点的横坐标的均值,质心的纵坐标就是这一簇数据点的纵坐标的均值。同理可推广至高维空间。
一、KMeans算法原理

KMeans算法作为聚类算法的典型代表,那它是怎么完成聚类的呢?
在 KMeans 算法中, 簇的个数用k表示,k是一个超参数,需要我们人为输入来确定。 Kmeans 的核心任务就是根据我们设定好的 k ,找出 k个最优的质心,并将离这些质心最近的数据分别分配到这些质心代表的簇中去。

二、KMeans算法流程

(1)首先设置参数k, k的含义为将数据聚合成几类(这里取k=3);
(2)从数据当中,随机的选择三(k)个点,成为聚类初始中心点;(图中初始三个中心点用蓝色、红色和黄色标记)


(3)计算所有其他点到这三(k)个点的距离, 然后找出离每个数据点最近的中心点, 将该点划分到这个中心点所代表的的簇当中去。那么所有点都会被划分到三(k)个簇当中去。


(4)重新计算三个簇的质心,作为下一次聚类的中心点;

(5)重复上面的3-4步的过程,重新进行聚类,不断迭代重复这个过程。
(6)停止条件:
第一种:当重新聚类后,所有样本点归属类别都没有发生变化的时候。
第二种:当迭代次数达到规定的最大次数时,也会停止。

在什么情况下,质心的位置会不再变化呢?

引言: 在上节介绍KMeans算法流程中,我们简单介绍了聚类停止的条件,其中簇不再发生变化的条件,本质上是指簇的质心位置不再发生改变。为什么呢?

因为:在我们找质心的过程中,当每次迭代中被分配到这个质心上的样本都是一致时,也就是说:每次新生成的簇都是一致的,所有的样本点都不会再从一个簇转移到另一个簇,质心就不会变化了。
接下来,我们以可视化的形式详细讨论质心的位置的变化情况。
质心位置变化的可视化展示过程

上面论述的过程,我们可以由下图来显示:我们规定,将数据分为 4 簇(k=4),其中白色 X 代表质心的位置,每个颜色块代表着围绕着质心所形成的簇。

注:灰色箭头表示质心的变化情况
在数据集下多次迭代(iteration),就会有:

第六次迭代之后,基本上质心的位置就不再改变了,生成的簇也变得稳定。此时我们的聚类就完成了。

KMeans算法流程相关推荐

  1. 【AI面试题】Kmeams算法流程以及Kmeans++介绍

    1. Kmeans算法流程 随机初始化K个中心点: 计算所有样本分别到K个中心点的距离: 比较每个样本到K个中心点的距离(这里的距离也可以使用欧氏距离),并将样本分类到距离最近的中心点所在的类别中: ...

  2. python实现K-means算法

    K-means算法流程: 随机选k个样本作为初始聚类中心 计算数据集中每个样本到k个聚类中心距离,并将其分配到距离最小的聚类中心 对于每个聚类,重新计算中心 回到2,至得到局部最优解 python代码 ...

  3. 6.6 二分 K-Means 算法-机器学习笔记-斯坦福吴恩达教授

    二分 K-Means 算法 该算法补充自 <机器学习实战> 一书 常规的 K-Means 算法的误差通常只能收敛到局部最小,在此,引入一种称为二分 K-Means(bisecting km ...

  4. 2021-03-15 数据挖掘算法—K-Means算法 Python版本

    数据挖掘算法-K-Means算法 Python版本 简介 又叫K-均值算法,是非监督学习中的聚类算法. 基本思想 k-means算法比较简单.在k-means算法中,用cluster来表示簇:容易证明 ...

  5. 机器学习之K均值(K-Means)算法

    1.K-Means简介 K均值(K-Means)算法是无监督的聚类方法,实现起来比较简单,聚类效果也比较好,因此应用很广泛.K-Means算法针对不同应用场景,有不同方面的改进.我们从最传统的K-Me ...

  6. 机器学习7—聚类算法之K-means算法

    K-均值算法(K-means) 前言 聚类算法模型 常见的聚类算法 一.K-means算法描述 二.示例说明K-means算法流程 三.K-means算法中Kmean()函数说明 四.K-means算 ...

  7. k-means算法及改进

    k-means是最常用的聚类算法 k-means算法流程 1)选择k个类为初始中心 2)在第i次迭代中,对任意样本,计算其到各中心的距离,将样本归到距离最短的中心所在的类 3)利用均值等方法更新类的中 ...

  8. Kmeans算法及简单案例

    Kmeans算法及简单案例 Kmeans算法流程 选择聚类的个数k. 任意产生k个聚类,然后确定聚类中心,或者直接生成k个中心. 对每个点确定其聚类中心点. 再计算其聚类新中心. 重复以上步骤直到满足 ...

  9. k-means算法、性能及优化

    k-means算法.性能及优化 一.k-means算法简介 k-means是用来解决著名的聚类问题的最简单的非监督学习算法之一. 该过程遵循一个简易的方式,将一组数据划分为预先设定好的k个簇.其主要思 ...

  10. K-means算法详解

    目录 什么是K-means算法? 如何寻找K值和质心? K-means算法流程 1.什么是K-means K-Means是一种聚类算法,其中K表示类别数,Means表示均值.K-means算法通过预先 ...

最新文章

  1. 项目经理必读:虚拟化评估与设计14步
  2. Android自定义控件前导基础知识学习(一)——Canvas
  3. Gauss-Newton算法学习
  4. ArrayList和Vector的异同
  5. lazarus开发android应用程序指南,Lazarus开发Android应用程序指南(2)
  6. python内嵌函数和闭包与java 匿名内部类_Java匿名内部类构造原理分析
  7. SolarWinds 公司:Web Help Desk 实例正遭攻击
  8. LeaRun.Java可视化流程简单配置过程
  9. 苹果cms后台登录验证码错误或显示不出来解决方法
  10. 《第十三届服创大赛A23项目-基于区块链的艺术品数字资产确权流通系统》的未完成版
  11. Spring mcv 框架 浅谈
  12. 吉林大学计算机科学与技术学院学士,贾海洋(吉林大学计算机科学与技术学院副教授)...
  13. zabbix_get [71696]: Check access restrictions in Zabbix agent configuration
  14. excel中读取数据拟合幂律分布
  15. GT-S7562刷机、Root、App2SD、删除系统程序、安装Google服务框架
  16. 淘宝 Android 端图片体验优化实践
  17. Android 百度地图 行动轨迹用彩色线画出实现方法
  18. web前端:文本、字体、图像、列表 全【含精灵图,box-sizing,字符间距,首行缩进,垂直对齐】
  19. 打工人的疲劳和压力,别人不懂 AI 懂
  20. 常见WEB漏洞问题危害及修复建议

热门文章

  1. 经天测绘测量工具包_公共土地测量系统
  2. Tolua使用笔记(上)
  3. 移动前端开发的一些简单分类!
  4. 一个商品SKU是怎么生成的
  5. GEE实现夜光遥感数据分析
  6. 微信公众号一次群发多个推文
  7. dm9000数据速率_STM32网络通信之DM9000A电路设计
  8. 阿里短信验证码接口和支付宝沙箱支付接口
  9. 微信小程序下拉刷新不回弹
  10. 【python学习笔记】Python对经纬度处理