算法原理

K -Means算法的工作原理:首先随机从数据集中选取K个点,每个点初始地代表每个簇的聚类中心,然后计算剩余各个样本到聚类中心的距离﹐将它赋给最近的簇﹐接着重新计算每簇的平均值﹐整个过程不断重复,如果相邻两次调整没有明显变化,说明数据聚类形成的簇已经收敛。本算法的一个特点是在每次迭代中都要考察每个样本的分类是否正确。若不正确﹐就要调整,在全部样本调整完后,再修改聚类中心,进入下一次迭代。这个过程将不断重复直到满足某个终止条件,终止条件可以是以下任何一个:

  • 没有对象被重新分配给不同的聚类。
  • 聚类中心不再发生变化。
  • 误差平方和局部最小。

K- Means算法步骤

  • 从N个数据对象任意选择K个对象作为初始聚类中心。
  • 循环③到④直到每个聚类不再发生变化为止。
  • 根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离,并根据最小距离重新对相应对象进行划分。
  • 重新计算每个聚类的均值(中心对象),直到聚类中心不再变化。这种划分使得下式最小:

K- Means算法特点

  • 在K - Means算法中K是事先给定的,这个K值的选定是非常难以估计的。
  • 在K-Means算法中,首先需要根据初始聚类中心来确定一个初始划分,然后对初始划分进行优化。
  • K-Means算法需要不断地进行样本分类调整,不断地计算调整后的新的聚类中心,因此当数据量非常大时,算法的时间开销是非常大的。
  • K-Means算法对一些离散点和初始K值敏感,不同的距离初始值对同样的数据样本可能得到不同的结果。

K- Means算法应

数学建模学习(57):K-Means聚类原理分析讲解与应用相关推荐

  1. 清风数学建模学习笔记——系统(层次)聚类原理详解及案例分析

    系统聚类   系统聚类的合并算法通过计算两类数据点间的距离,对最为接近的两类数据点进行组合,并反复迭代这一过程,直到将所有数据点合成一类,并生成聚类谱系图.此外,系统聚类可以解决簇数 K 的取值问题, ...

  2. 数学建模学习笔记(四)层次分析法(AHP)

    应用场景: 1.最佳方案选取 2.评价类问题 3.指标体系的优选 步骤: 1.建立层次结构模型: 2.构造判断(成对比较)矩阵: 3.层次单排序及其一致性检验: 4.层次总排序及其一致性检验: 建立层 ...

  3. 数学建模学习笔记(一):插值法

    文章目录 前言 一.一维插值问题的描述 二.常用插值方法 1.Lagrange插值法 2.Newton插值法 三.高次插值的Runge现象 四.Matlab插值 1.一维插值 2.二维插值 3.散乱点 ...

  4. 数学建模学习笔记之评价问题聚类分析法

    数学建模学习笔记之评价问题聚类分析法 物以类聚.人以群分. 聚类分析是一个很大的概念,显然根据分类的依据不同会出现很多很多聚类的方法.例如K-Means .Sequential Leader.Mode ...

  5. OpenCV的k - means聚类 -对图片进行颜色量化

    OpenCV的k - means聚类 目标 学习使用cv2.kmeans()数据聚类函数OpenCV 理解参数 输入参数 样品:它应该的np.float32数据类型,每个特性应该被放在一个单独的列. ...

  6. OpenCV官方文档 理解k - means聚类

    理解k - means聚类 目标 在这一章中,我们将了解k - means聚类的概念,它是如何工作等. 理论 我们将这个处理是常用的一个例子. t恤尺寸问题 考虑一个公司要发布一个新模型的t恤. 显然 ...

  7. 【数学建模学习笔记【集训十天】之第六天】

    数模学习目录 Matplotlib 学习 Matplotlib简介 Matplotlib 散点图 运行效果如下: Matplotlib Pyplot 运行效果如下: 关于plot() 运行效果如下: ...

  8. 数学建模学习交流论文写作课件

    数学建模学习交流论文写作课件 参考资料:数学建模清风:论文写作方法课程 https://www.bilibili.com/video/BV1Na411w7c2

  9. 数学建模学习思维导图

    数学建模学习 建模方法框架总结

  10. 数学建模学习记录——数学规划模型

    数学建模学习记录--数学规划模型 一.线性规划问题 MatLab中线性规划的标准型 MatLab中求解线性规划的命令 二.整数线性规划问题 三.非线性规划问题 MatLab中非线性规划的标准型 Mat ...

最新文章

  1. 一文全览机器学习建模流程(Python代码)
  2. 第一届中国三维视觉大会China3DV论文展示
  3. 在eclipse中配置android ndk的自动编译环境builders
  4. 网络公开课资源 ——关注CS/AI/Math
  5. NF5270M3服务器主板安装系统,NF5270M3 – 主板相关
  6. OA系统部署短信过程
  7. matlab打开笔记本摄像头_matlab窗口调用摄像头
  8. SQL工作笔记-达梦(MySQL)将一个模式(库)中的一个表迁入到其他模式(库)
  9. 利用Linux命令行进行文本按行去重并按重复次数排序
  10. C# 最简单的全局键盘鼠标钩子
  11. 基于 Laravel 9 和 Bulma 开发的个人博客
  12. CentOS7图形界面和命令行界面的切换快捷键
  13. 已满的c盘如何清理无用的文件
  14. puppet的使用:ERB模板介绍
  15. 用canvas绘制流星夜空
  16. 基于小鼠的基因集数据库资源(人鼠基因集比较)
  17. 手工冰粉社区forum.bingfen.com.cn上线...xiuno模版V2完善记录
  18. python天津儿童培训少儿编程课一定要了解
  19. Qt on Mac 开发之 读取苹果系统OSX上的plist资源文件
  20. 二分查找算法递归实现

热门文章

  1. java steam的缓冲区_SSM框架完结篇 SpringMVC与Steam前后台功能模块开发
  2. gbq可以算出土建量吗_广联达土建算量软件必备操作指南
  3. Project 制作工作进度计划 排除休息日
  4. linux怎么安装uwf命令,linux实题小练
  5. axure rp8 添加动态面板_AxureRP教程–动态面板高级应用
  6. 两种方法解除网页复制限制
  7. [Matlab]维纳滤波器设计
  8. python使用Jpype调用java程序
  9. SOLIDWORKS在机械设计行业的优势所在
  10. 74HC595芯片单颗与级联的万能代码|2021-09-03