Kmeans算法的缺陷

聚类中心的个数K 需要事先给定,但在实际中这个 K 值的选定是非常难以估计的,很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适
Kmeans需要人为地确定初始聚类中心,不同的初始聚类中心可能导致完全不同的聚类结果。(可以使用Kmeans++算法来解决)
针对上述第2个缺陷,可以使用Kmeans++算法来解决
K-Means ++ 算法
 k-means++算法选择初始seeds的基本思想就是:初始的聚类中心之间的相互距离要尽可能的远。
从输入的数据点集合中随机选择一个点作为第一个聚类中心
对于数据集中的每一个点x,计算它与最近聚类中心(指已选择的聚类中心)的距离D(x)
选择一个新的数据点作为新的聚类中心,选择的原则是:D(x)较大的点,被选取作为聚类中心的概率较大
重复2和3直到k个聚类中心被选出来
利用这k个初始的聚类中心来运行标准的k-means算法
 从上面的算法描述上可以看到,算法的关键是第3步,如何将D(x)反映到点被选择的概率上,一种算法如下:
先从我们的数据库随机挑个随机点当“种子点”
对于每个点,我们都计算其和最近的一个“种子点”的距离D(x)并保存在一个数组里,然后把这些距离加起来得到Sum(D(x))。
然后,再取一个随机值,用权重的方式来取计算下一个“种子点”。这个算法的实现是,先取一个能落在Sum(D(x))中的随机值Random,然后用Random -= D(x),直到其<=0,此时的点就是下一个“种子点”。
重复2和3直到k个聚类中心被选出来
利用这k个初始的聚类中心来运行标准的k-means算法
可以看到算法的第三步选取新中心的方法,这样就能保证距离D(x)较大的点,会被选出来作为聚类中心了。至于为什么原因比较简单,如下图 所示:

假设A、B、C、D的D(x)如上图所示,当算法取值Sum(D(x))*random时,该值会以较大的概率落入D(x)较大的区间内,所以对应的点会以较大的概率被选中作为新的聚类中心。
---------------------

摘自:https://blog.csdn.net/chlele0105/article/details/12997391

转载于:https://www.cnblogs.com/bonelee/p/10461476.html

K-Means ++ 和 kmeans 区别相关推荐

  1. 文献记录(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 ...

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

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

  3. 如何在Python中建立和训练K最近邻和K-Means集群ML模型

    One of machine learning's most popular applications is in solving classification problems. 机器学习最流行的应 ...

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

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

  5. K means 图片压缩

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

  6. sklearn中的k_means和KMeans区别

    sklearn中的k_means和KMeans区别 1.KMeans的缺点 2.sklearn.KMeans参数 3.sklearn.KMeans属性 KMeans **: 1.k点中心个数的确定,很 ...

  7. 机器学习(十四):K均值聚类(kmeans)

    k均值聚类方法是一种无监督机器学习技术,用于识别数据集中的数据对象集群.有许多不同类型的聚类方法,但k -means是最古老和最平易近人的方法之一.这些特性使得在 Python 中实现k -means ...

  8. 为了联盟还是为了部落 | K means

    1. 问题 人类有个很有趣的现象,一群人在一起,过一段时间就会自发的形成一个个的小团体.好像我们很擅长寻找和自己气质接近的同类.其实不只是人类,数据也有类似情况,这就是聚类(Clustering)的意 ...

  9. k均值聚类算法(K Means)及其实战案例

    算法说明 K均值聚类算法其实就是根据距离来看属性,近朱者赤近墨者黑.其中K表示要聚类的数量,就是说样本要被划分成几个类别.而均值则是因为需要求得每个类别的中心点,比如一维样本的中心点一般就是求这些样本 ...

  10. 算法杂货铺——k均值聚类(K-means)

    算法杂货铺--k均值聚类(K-means) 2010-09-20 20:05 by T2噬菌体, 57998 阅读, 48 评论, 收藏, 编辑 4.1.摘要 在前面的文章中,介绍了三种常见的分类算法 ...

最新文章

  1. 清华大学梁宸计算机系,应用数学专业论文
  2. 面对500篇GNN论文,心态差点儿崩了,幸好我有这本小书
  3. jsp页面取整数 和Java页面取整数
  4. 1.75万亿参数、在国产超算上训练,刚刚智源发布了全球最大预训练模型“悟道2.0”...
  5. Facebook Docusaurus 中文文档 自定义页面
  6. LeetCode 1290. 二进制链表转整数
  7. 针对ArcGIS Server 跨域问题的解释
  8. Jayrock: JSON and JSON-RPC for .NET
  9. perl--CGI编程之Apache服务器安装配置
  10. 百度文库内容复制文字解决方法
  11. MTK LED驱动异常检测步骤
  12. SQL Server 2008 误删除数据的恢复
  13. VR时代的媒介——虚拟的真实感就是真实
  14. 构建Spring Web应用程序
  15. 用Boost::spirit库写C++的源代码解析器(一) 一个简单的例子:解析enum的解析器雏形
  16. design pattern scard
  17. markdown中数学符号和公式总结
  18. 计算机应用基础165791,[2018年最新整理]人大网大计算机应用基础试题答案.doc
  19. 小白前端学习流程【爱创课堂专业前端培训】
  20. ffmpeg转换视频内存溢出的问题

热门文章

  1. 使用Shell(bash) 来检查 git 本地某个分支是否存在
  2. prometheus 插件node_exporter 启动方式
  3. php解析QQmv直链,网易云音乐直链解析API源代码^-^
  4. mysql单列索引和多列索引_mysql 单列索引与多列索引
  5. 用python3做学生管理系统_详解用python实现基本的学生管理系统(文件存储版)(python3)...
  6. 忽略并存在数据损坏风险_内部审计快速启动数据分析的6个关键点
  7. fastd java下载_配置 FastDFS Java 客户端
  8. android .a .so区别,.so,.la和.a库文件有什么区别?
  9. 每天一个linux命令(9):touch 命令
  10. 【Java Web开发指南】深入浅出Spring和SpringMVC