K-means即为1967年MacQueen首次提出的K均值聚类算法,在许多实践应用中取得了很好的效果,下面对k-means算法做简要介绍。
设数据集由n个对象组成,预备分成k类,初始化时,从n个数据对象<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />中随机选取k个作为簇的初始均值,对剩余数据对象,计算其与各个簇均值的距离,从而将其指派到最相似的簇。指派完毕后,重新计算各个簇的均值,并对各个数据对象重新进行指派。如此重复直至准则函数式(所有数据对象与所在簇的均值的差的平方相加)收敛。
此种聚类方法的缺陷:
  1. K值的选择与问题域相关,通常用户需选择若干个k值实验,从而得到最佳分类的数目。
  2. 由于初始化时对簇均值的选择是随机的,即使对于同一个k值,最终聚类结果一般来说也是不相同的,并且很可能导致最终结果得到的不是k个聚类。为了减少这种情况的发生,我在程序中加入了简单的处理方法:每进行一轮数据对象指派,便检查是否有空簇,随机选取一个数据对象作为空簇的新的均值。
  3. 传说对脏数据很敏感,但是我不知道如何验证。
总之,这种聚类方法比较适合对大量数据做初步聚类,一般来说聚类结果可以采用多次执行聚类分析后较稳定的结果,也就是出现次数较多的那个聚类结果。
而对于我的程序(附件里下载源码)本身,命名还是不规范(总是忧愁取啥名),代码还不够简洁,我努力改,愿下次贴代码的时候有很大的进步,也欢迎各位批判。
附件下载解压后,在VS下新建一个项目,然后在相应位置添加相应文件后编译执行。

转载于:https://blog.51cto.com/smallclouds/756431

k-means聚类分析的C++实现相关推荐

  1. kmeans改进 matlab,基于距离函数的改进k―means 算法

    摘要:聚类算法在自然科学和和社会科学中都有很普遍的应用,而K-means算法是聚类算法中经典的划分方法之一.但如果数据集内相邻的簇之间离散度相差较大,或者是属性分布区间相差较大,则算法的聚类效果十分有 ...

  2. 全国113个城市空气质量的K均值聚类分析--基于R

    下表给出了2017年全国113个环保重点城市空气质量年度数据(资料来源:中华人们共和国国家统计局).它们分别为:二氧化硫平均浓度(微克每立方米,),二氧化氮平均浓度(微克每立方米,);可吸入颗粒物(P ...

  3. SPSS聚类分析:K均值聚类分析

    SPSS聚类分析:K均值聚类分析 一.概念:(分析-分类-K均值聚类) 1.此过程使用可以处理大量个案的算法,根据选定的特征尝试对相对均一的个案组进行标识.不过,该算法要求您指定聚类的个数.如果知道, ...

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

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

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

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

  6. 文献记录(part89)--I-k-means-+:An iterative clustering algorithm based on an enhanced k -means

    学习笔记,仅供参考,有错必究 关键词:k均值:解决方案改进:准确的k均值:迭代改进 I-k-means-+:An iterative clustering algorithm based on an ...

  7. 【MATLAB统计分析与应用100例】案例018:matlab读取Excel数据,进行K均值聚类分析

    文章目录 1. K均值聚类分析结果 2. matlab完整代码 (1)读取数据,并进行标准化变换 (2)选取初始凝聚点,进行聚类 (3)绘制轮廓图 1. K均值聚类分析结果 2. matlab完整代码 ...

  8. Matlab对图像进行鼠标取点操作及K值聚类分析

    这篇文章将以良乡大学城某大学附近的共享单车图进行鼠标取点操作以及对相关图像的处理,将共享单车以数据点的形式呈现,并且对数据点进行K值聚类找到最佳的中心点. 图1-1 一周的数据点位移展示图 PART  ...

  9. 手把手教你R语言做k均值聚类分析

    今天聊聊k均值聚类分析,我们先要知道什么是类,在大数据时代,我们每个人都被打上很多个性标签,比如:宅男,月光族,手机控,非主流等等,每个标签都可以算是一个类,因此,可以不严谨的说:类是一些有特殊属性个 ...

  10. K means 图片压缩

    k-means的基本原理较为清晰,这里不多赘述,本次博客主要通过基础的k means算法进行图像的压缩处理. 原理分析 在彩色图像中,每个像素的大小为3字节(RGB),可以表示的颜色总数为256 * ...

最新文章

  1. 旧手机别卖掉换脸盆了,自制服务器了解一下!
  2. 【全文搜索引擎】Elasticsearch之模糊查询
  3. spark 持久化 mysql_Spark 从零到开发(八)nginx日志清洗并持久化实战
  4. mysql long varchar2_long查询结果转换为varchar2类型
  5. VC程序初始化隐藏窗体
  6. python不定长参数详解
  7. AtCoder ZONe Energy Programming Contest 题解
  8. Web开发常出现的错误[个人收集]
  9. C++ 对引用的理解2
  10. 钉钉上手体会:阿里实用主义的野望
  11. mysql 海量数据库的查询优化及分页算法方案_mysql 海量数据库的查询优化及分页算法方案...
  12. python中合法的二进制整数_python:求整数的二进制表示
  13. 可能存在无限递归_无限分类递归+排序解剖
  14. 红黑树与平衡二叉树_大佬用这近百张图来给我解释红黑树,看完直接跪了!
  15. 修改软件的ico图片方法
  16. VC2005编译安装QT
  17. bootice添加黑苹果引导_2019款小米air12.5完美黑苹果10.15.6macOS CatalinaEFI
  18. Python札记6_字典1
  19. 【Python游戏】实现一个恶搞游戏,粉丝大战xxx小游戏(狗头保命) | 附带源码
  20. MQTT-Eclipse paho mqtt重连机制

热门文章

  1. Ubuntu学习日记--Lesson2:创建、重命名、删除文件及文件夹,强制清空回收站方法
  2. 逻辑回归与线性回归的区别与联系
  3. ubuntu vscode_17. ubuntu设为服务器+vscode远程开发
  4. onlaunch 异步_微信小程序之onLaunch与onload异步问题
  5. axure 发布 主页_车队如何在黑鸟APP发布同城活动?教程来了!
  6. java靜態常量_Java靜態變量、靜態常量、靜態方法
  7. 使用Julia进行图像处理--图像表示与匹配算法
  8. android seekbar 圆角,android - 最小或最大时,圆角android seekbar的ui奇怪行为 - 堆栈内存溢出...
  9. python 字符串函数_Python字符串函数
  10. java中接口私有反方_接口中的Java 9私有方法