K-means算法补充:K-means++

zz/2024/4/19 23:11:07

K-means算法是机器学习经典算法之一,对于机器学习的初学者来说,最先接触的应该就是该算法,对于K-means算法思想都已经很熟悉了,本文主要介绍K-means聚类中心的初始化。

K-means算法对聚类中心的初始化比较敏感,不同的初始值会带来不同的聚类结果。在标准的K-means算法中,初始聚类中心采用随机采样方式,但是不能保证得到期望的聚类结果。为了获得较好的聚类结果,也可以采用多次随机初始聚类中心,然后对比分析聚类结果进行选择聚类中心,但却需要很多计算时间。

David Arthur提出的K-means++算法,能够有效产生聚类中心。K-means++算法:首先随机初始化一个聚类中心C={c1};然后通过迭代计算最大概率值:
这里写图片描述
其中d(x,C)为:这里写图片描述
然后加入下一个聚类中心:


http://www.ngui.cc/zz/2700345.html

相关文章

疯狂地学习C语言

一个月疯狂的学习《C程序设计题解与上机指导》。

最短路径Dijkstra算法(JAVA)

/* * Graph.java */ class Vertex { public char label; public boolean isInTree; public Vertex(char label) { this.label label; isInTree false; } } //sPath[]用来存储父节点和距离。 class DistPare { public int parentVertex; public int distance; public Dist…

五台归来

五台之旅结束,学习之。 2009.5.27~2009.6.13作息时间表: 7:00起床 7:30~8:50图书馆:算法、数据结构、JAVA程序员宝典 9:00~12:00办公室:WSN 12:30~14&…

PL/SQL 调试存储过程(报错ora-01036 非法的变量名/编号)

存储过程: create or replace procedure zhanshi(v_pid article.pid%type) is cursor c is select * from article where pid v_pid;begin for v_article in c loop dbms_output.put_line(v_article.cont); if (v_article.isleaf 0) then zhansh…

Arduino+WZ指令+Onenet

title: ArduinoWZ指令Onenet tags: Onenet date: 2019-02-24 00:53:00 视频演示: src"//player.bilibili.com/player.html?aid44421747&cid77777406&page1" scrolling"yes" border"0" allowfullscreen"true"> …

一行代码完成485通讯与数据回传以及CRC校验

title: 一行代码完成485通讯与数据回传以及CRC校验 tags: STM32 date: 2019-03-16 21:10:00 由于工作需要,我对现有的485通讯方式进行了一个总结,同时也包含自己原创的一些算法来快速实现485通讯与CRC校验,以及返回值的处理 看下效果&#xf…

209年7月生活记录

title: 最近生活记录 tags: 生活 date: 2019-07-28 21:46:00 OK,今天来记录一下我的生活近况,其实这一段儿工作比较忙,尤其是最近在搞联通动环监控的B接口协议,相对来说还是很复杂的,但是做好以后的效果还是可以的&…

涂鸦NBIOT OpenCPU开发快速入门(三)

1、开发板选择 工欲善其事,必先利其器。 我之前做了两款开发板(其实主要是为了我工作上开发的方便),第一款用来测试通用对接(NB+MCU)…

Elasticsearch API查询

1. 查询索引中的全部数据 public class EsTest_Doc_Query {public static void main(String[] args) throws IOException {RestHighLevelClient client new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http")));// 1.查询…