K-Means ++ 和 kmeans 区别
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 区别相关推荐
- 文献记录(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 ...
- kmeans改进 matlab,基于距离函数的改进k―means 算法
摘要:聚类算法在自然科学和和社会科学中都有很普遍的应用,而K-means算法是聚类算法中经典的划分方法之一.但如果数据集内相邻的簇之间离散度相差较大,或者是属性分布区间相差较大,则算法的聚类效果十分有 ...
- 如何在Python中建立和训练K最近邻和K-Means集群ML模型
One of machine learning's most popular applications is in solving classification problems. 机器学习最流行的应 ...
- OpenCV的k - means聚类 -对图片进行颜色量化
OpenCV的k - means聚类 目标 学习使用cv2.kmeans()数据聚类函数OpenCV 理解参数 输入参数 样品:它应该的np.float32数据类型,每个特性应该被放在一个单独的列. ...
- K means 图片压缩
k-means的基本原理较为清晰,这里不多赘述,本次博客主要通过基础的k means算法进行图像的压缩处理. 原理分析 在彩色图像中,每个像素的大小为3字节(RGB),可以表示的颜色总数为256 * ...
- sklearn中的k_means和KMeans区别
sklearn中的k_means和KMeans区别 1.KMeans的缺点 2.sklearn.KMeans参数 3.sklearn.KMeans属性 KMeans **: 1.k点中心个数的确定,很 ...
- 机器学习(十四):K均值聚类(kmeans)
k均值聚类方法是一种无监督机器学习技术,用于识别数据集中的数据对象集群.有许多不同类型的聚类方法,但k -means是最古老和最平易近人的方法之一.这些特性使得在 Python 中实现k -means ...
- 为了联盟还是为了部落 | K means
1. 问题 人类有个很有趣的现象,一群人在一起,过一段时间就会自发的形成一个个的小团体.好像我们很擅长寻找和自己气质接近的同类.其实不只是人类,数据也有类似情况,这就是聚类(Clustering)的意 ...
- k均值聚类算法(K Means)及其实战案例
算法说明 K均值聚类算法其实就是根据距离来看属性,近朱者赤近墨者黑.其中K表示要聚类的数量,就是说样本要被划分成几个类别.而均值则是因为需要求得每个类别的中心点,比如一维样本的中心点一般就是求这些样本 ...
- 算法杂货铺——k均值聚类(K-means)
算法杂货铺--k均值聚类(K-means) 2010-09-20 20:05 by T2噬菌体, 57998 阅读, 48 评论, 收藏, 编辑 4.1.摘要 在前面的文章中,介绍了三种常见的分类算法 ...
最新文章
- 清华大学梁宸计算机系,应用数学专业论文
- 面对500篇GNN论文,心态差点儿崩了,幸好我有这本小书
- jsp页面取整数 和Java页面取整数
- 1.75万亿参数、在国产超算上训练,刚刚智源发布了全球最大预训练模型“悟道2.0”...
- Facebook Docusaurus 中文文档 自定义页面
- LeetCode 1290. 二进制链表转整数
- 针对ArcGIS Server 跨域问题的解释
- Jayrock: JSON and JSON-RPC for .NET
- perl--CGI编程之Apache服务器安装配置
- 百度文库内容复制文字解决方法
- MTK LED驱动异常检测步骤
- SQL Server 2008 误删除数据的恢复
- VR时代的媒介——虚拟的真实感就是真实
- 构建Spring Web应用程序
- 用Boost::spirit库写C++的源代码解析器(一) 一个简单的例子:解析enum的解析器雏形
- design pattern scard
- markdown中数学符号和公式总结
- 计算机应用基础165791,[2018年最新整理]人大网大计算机应用基础试题答案.doc
- 小白前端学习流程【爱创课堂专业前端培训】
- ffmpeg转换视频内存溢出的问题
热门文章
- 使用Shell(bash) 来检查 git 本地某个分支是否存在
- prometheus 插件node_exporter 启动方式
- php解析QQmv直链,网易云音乐直链解析API源代码^-^
- mysql单列索引和多列索引_mysql 单列索引与多列索引
- 用python3做学生管理系统_详解用python实现基本的学生管理系统(文件存储版)(python3)...
- 忽略并存在数据损坏风险_内部审计快速启动数据分析的6个关键点
- fastd java下载_配置 FastDFS Java 客户端
- android .a .so区别,.so,.la和.a库文件有什么区别?
- 每天一个linux命令(9):touch 命令
- 【Java Web开发指南】深入浅出Spring和SpringMVC