K-Means ++ 算法

Kmeans算法的缺陷


• 聚类中心的个数K 需要事先给定,但在实际中这个 K 值的选定是非常难以估计的,很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适
• Kmeans需要人为地确定初始聚类中心,不同的初始聚类中心可能导致完全不同的聚类结果。(可以使用Kmeans++算法来解决)

K-Means ++ 算法


k-means++算法选择初始seeds的基本思想就是:初始的聚类中心之间的相互距离要尽可能的远。


1. 从输入的数据点集合中随机选择一个点作为第一个聚类中心
2. 对于数据集中的每一个点x,计算它与最近聚类中心(指已选择的聚类中心)的距离D(x)
3. 选择一个新的数据点作为新的聚类中心,选择的原则是:D(x)较大的点,被选取作为聚类中心的概率较大
4. 重复2和3直到k个聚类中心被选出来
5. 利用这k个初始的聚类中心来运行标准的k-means算法


从上面的算法描述上可以看到,算法的关键是第3步,如何将D(x)反映到点被选择的概率上,一种算法如下:


1. 先从我们的数据库随机挑个随机点当“种子点”
2. 对于每个点,我们都计算其和最近的一个“种子点”的距离D(x)并保存在一个数组里,然后把这些距离加起来得到Sum(D(x))。
3. 然后,再取一个随机值,用权重的方式来取计算下一个“种子点”。这个算法的实现是,先取一个能落在Sum(D(x))中的随机值Random,然后用Random -= D(x),直到其<=0,此时的点就是下一个“种子点”。
4. 重复2和3直到k个聚类中心被选出来
5. 利用这k个初始的聚类中心来运行标准的k-means算法

可以看到算法的第三步选取新中心的方法,这样就能保证距离D(x)较大的点,会被选出来作为聚类中心了。至于为什么原因比较简单,如下图所示:

 

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

转载于:https://www.cnblogs.com/zjiaxing/p/5616679.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490424.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

螺旋桨设计软件_我们又双叒叕获得一项国家软件著作权!

近日中建三局一公司深圳分公司岗厦天元花园项目“实时监测数据可视化与BIM集成展示平台(简称监测数据可视化集成展示平台)V1.0”荣获国家软件著作权该项成果由岗厦天元花园项目与哈尔滨工业大学深圳校区组成的科研团队共同完成该平台能收集钢结构塔冠的水平位移、应变、温度、风…

计算机界和数学界,也需要一个“希波克拉底誓言”

汉娜弗莱&#xff1a; “未来不会就这么来到我们眼前&#xff0c;我们一直在塑造它。”摄影&#xff1a;Paul Wilkinson | The Guardian来源 The Guardian翻译 刘勤编辑 魏潇一位学界的领军人物表示&#xff0c;数学家、工程师以及科学家们应通过一个计算机界的“希波克拉底…

WCF技术实现基于角色的访问控制

第一次写&#xff0c;小紧张&#xff01; 即将毕业了&#xff0c;现在将我毕业设计中用到的小的编程技术以及自己的一些理解分享出来&#xff0c;希望可以做点小贡献。 首先要感谢网上各路大神无私的分享&#xff0c;没有你们&#xff0c;就没有我的收获。 在大四之前&#xff…

double类型占几个字节_MongoDB 中的数据类型

1 JSON 与 BSONMongoDB 是文档数据库&#xff0c;什么是文档呢&#xff1f;如果你看了之前的文章相信你已经有些概念了&#xff0c;这里的文档不是指 Word、PDF 这样的文档&#xff0c;而是类似 JSON(JavaScript Object Notation) 的对象&#xff0c;由不同的键以及对应的值组成…

李德毅院士:未来交通——自动驾驶与智能网联

图片来源&#xff1a;华龙网转自&#xff1a;主线科技&#xff08;trunktech&#xff09;近日&#xff0c;中国国际智能产业博览会&#xff08;智博会&#xff09;在重庆召开。中国人工智能学会理事长李德毅院士在智博会“人工智能产业发展合作论坛”上&#xff0c;发表了主题为…

C++输入一个整数后接着输入字符串

当我们输入整数&#xff0c;按回车&#xff0c;实际上输入的是:整数和换行符号(\n)。cin把整数读进了&#xff0c;但是换行符号没有读&#xff0c;因此如果接下来输入字符串&#xff0c;即使用cin.getline&#xff0c;首先会读入\n。然后就直接结束了。 下面这个程序需要输入四…

elasticsearch 查看索引_ElasticSearch 索引基本操作

松哥原创的 Spring Boot 视频教程已经杀青&#xff0c;感兴趣的小伙伴戳这里-->Spring BootVue微人事视频教程ElasticSearch 系列第五篇&#xff0c;和大家聊一聊索引的基本操作&#xff0c;前四篇传送门&#xff1a;打算出一个 ElasticSearch 教程&#xff0c;谁赞成&#…

协作机器人鼻祖“重生”,卷土重来的Rethink能否给行业注入一针强心剂?

来源&#xff1a;机器人大讲堂十年之前&#xff0c;他横空出世&#xff0c;创新颠覆 2008年&#xff0c;美国机器人制造专家&#xff0c;麻省理工学院计算机科学与人工智能实验室创始主任罗德尼布鲁克斯创建了Rethink Robotics公司&#xff0c;他将基于行为的人工智能理论和其在…

HTML基础做出属于自己的完美网页

HTML HTML解释&#xff1a; HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写&#xff0c;他是一种制作万维网页面标准语言&#xff08;标记&#xff09;。相当于定义统一的规则&#xff08;W3C&#xff09;&#xff0c;大家都来遵守他&#xff0c;这样就可以让浏…

excel进销存管理系统_【实例分享】勤哲Excel服务器做企业进销存财务管理系统...

如今&#xff0c;企业在推进数字化选型的时常有很多焦虑&#xff0c;难以找到合适的产品正是其中之一。正如一家正在挑选信息化管理软件的企业&#xff0c;对信息化产品的理解与厂商提供的产品可能完全不同&#xff0c;企业真正想要的是具备发货管理之类功能完全贴合企业业务需…

C++ multimap的插入

不同于map&#xff0c;multimap不能使用中括号[]法插入&#xff0c;multimap插入的一种简单做法是&#xff1a; multimap.insert({key, value}) int main(){multimap<int, int> mm;mm.insert({ 1, 2 });mm.insert({ 1, 2 });mm.insert({ 1, 3 });mm.insert({ 5, 6 });m…

人类大脑神经如何进化?寄生虫充当了隐形设计师

来源&#xff1a;网易科技自人类诞生以来&#xff0c;寄生虫就从未停止过与我们的相爱相杀&#xff0c;它们不仅改变了某些人类的进化方向和行为&#xff0c;甚至也影响了大脑神经的进化方式&#xff0c;充当着隐形设计师的角色。美国新墨西哥大学心理学家马可德尔吉迪斯(Marco…

hadoop jar包_【大数据学习】Hadoop的MR分布式开发小实战

前提:hadoop集群应部署完毕。一、实战科目做一个Map Reduce分布式开发&#xff0c;开发内容为统计文件中的单词出现次数。二、战前准备1、本人在本地创建了一个用于执行MR的的文件&#xff0c;文件中有209行&#xff0c;每行写了“这是一个测试文件”的句子。2、将该文件上传至…

最新数据:一图看清全球393家独角兽公司

来源&#xff1a;资本实验室据CB Insights最新数据&#xff0c;截至2019年8月底&#xff0c;全球共有393家未上市公司的估值达到或超过10亿美元以上&#xff0c;也就是我们俗称的“独角兽”公司。这些公司的融资总额超过2920亿美元&#xff0c;平均融资额超过7.43亿美元&#x…

它指导了计算机行业大半个世纪的发展,如今却要走下神坛?

来源&#xff1a;托尼前几天&#xff0c;有这样一条新闻。全球最大的芯片代工巨头台积电&#xff0c;其高管力挺摩尔定律&#xff0c;认为这个定律没有消亡&#xff0c;仍然可以通过增加晶体管密度&#xff0c;实现计算性能的提高。事实上&#xff0c;在摩尔定律是否已经失效这…

nodejs+kafka+storm+hbase 开发

1.环境介绍 如图所示&#xff0c;NODEJS做为数据源的的产生者产生消息&#xff0c;发到Kafka队列&#xff0c;然后参见红线&#xff0c;表示本地开发的环境下数据的流向&#xff08;本地开发时&#xff0c;storm topology运行在本地模式&#xff09; 2.搭建环境,我采用的是ecli…

将代码美观地复制到word的网站

http://www.codeinword.com/ 左边是源代码&#xff0c;右边是排版后的代码&#xff0c;复制右边的代码粘贴到word&#xff0c;可以使得word中的代码美观

c# 网口相机可以通过_电脑可以跑安卓9.0了!完全免费

Android早已超过Windows&#xff0c;坐拥全球用户量最大的操作系统宝座。这么高的人气&#xff0c;当然会有很多可玩性&#xff0c;比如Android -x86项目&#xff0c;即在x86处理器平台上运行Android。据悉&#xff0c;底层升级为Android 9 Pie(android-9.0.0_r50)的x86项目已经…

我的runtime学习笔记

0、简介&#xff1a; OC方法不同于C语言函数&#xff0c;属于动态调用过程&#xff0c;在编译的时候并不能决定真正调用哪个函数&#xff0c;只有在真正运行的时候才会根据函数的名称找到对应的函数来调用。 至于其他理论上的东西不必讲太多&#xff0c;编程讲的就是实用性&…

详解工业机器人和机械手臂的区别

来源&#xff1a;工业机器人目前市场上出现许多机械臂&#xff0c;很多小伙伴不能区分机械臂和机器人是不是同一种概念&#xff0c;今天小编和大伙讲解讲解。机械臂是一种机械装置&#xff0c;可以是自动的也可以是人为控制的&#xff1b;工业机器人是一种自动化设备&#xff0…