K-Means 算法步骤

那么,K-Means 这个算法是如何完成聚类过程的呢?其实算法名称中对此已有体现:

  • K: 描述了的数量,也就是应当聚合成的几何数。
  • Means均值求解会是该算法的核心。

步骤描述

下面具体看到该算法的步骤:

(1)根据设定的聚类数 KKK ,随机地选择 KKK 个聚类中心(Cluster Centroid),这就好比古代乱世,天下诸侯并起而逐鹿。

(2)评估各个样本到聚类中心的距离,如果样本距离第 iii 个聚类中心更近,则认为其属于第 iii 簇,这可以看做四方义士纷纷投奔诸侯,形成不同的势力。

(3)计算每个簇中样本的 平均(Mean) 位置,将聚类中心移动至该位置,该过程可以被认为是诸侯调整战略根据地以达到最强的控制力和凝聚力。

重复以上步骤直至各个聚类中心的位置不再发生改变。

综上,K-Means 的算法步骤能够简单概括为:

  1. 分配:样本分配到簇。
  2. 移动:移动聚类中心到簇中样本的平均位置。

注意,某些聚类中心可能没有被分配到样本,这样的聚类中心就会被淘汰(意味着最终的类数可能会减少)。

伪码描述

  • 假设簇的个数被定为 KKK ,样本数为 mmm 。
  • 随机设定 KKK 个聚类中心: μ1,μ2,...,μk∈Rnμ_1,μ_2,...,μ_k∈\R^nμ1​,μ2​,...,μk​∈Rn

重复如下过程直至聚类中心的位置不再改变:

分配过程

fori=1tom:for\quad i=1\ to\ m :fori=1 to m:
c(i)=距x(i)最近的聚类中心c^{(i)}=距\ x^{(i)}\ 最近的聚类中心c(i)=距 x(i) 最近的聚类中心

距离的计算式如下:

min⁡k∣∣x(i)−μk∣∣2\min_k||x^{(i)}−μ_k||^2kmin​∣∣x(i)−μk​∣∣2

移动过程:

fork=1toK:for\quad k=1\ to\ K :fork=1 to K:
μk(第k个聚类中心的新位置)=第k簇的平均位置μ_k(第 k个聚类中心的新位置)=第\ k\ 簇的平均位置μk​(第k个聚类中心的新位置)=第 k 簇的平均位置

假设 μ2μ_2μ2​ 聚类中心下分配了 4 个样本:
x(1),x(5),x(6),x(10)x^{(1)},\ x^{(5)},\ x^{(6)},\ x^{(10)}x(1), x(5), x(6), x(10)

亦即:
c(1)=c(5)=c(6)=c(10)=2c^{(1)}=c^{(5)}=c^{(6)}=c^{(10)}=2c(1)=c(5)=c(6)=c(10)=2

那么 μ2μ_2μ2​ 将会移动到这四个样本的中心位置:
μ2=14(x(1)+x(5)+x(6)+x(10))μ_2=\frac14(x^{(1)}+x^{(5)}+x^{(6)}+x^{(10)})μ2​=41​(x(1)+x(5)+x(6)+x(10))

6.2 K-Means 算法步骤-机器学习笔记-斯坦福吴恩达教授相关推荐

  1. 4.7 程序示例--算法诊断-机器学习笔记-斯坦福吴恩达教授

    程序示例–算法诊断 我们手头有一份大坝水的流量与水位关系的数据,首先我们将其划分为训练集.交叉验证集和测试集: # coding: utf-8 # algorithm_analysis/diagnos ...

  2. 4.4 机器学习系统设计--垃圾邮件分类-机器学习笔记-斯坦福吴恩达教授

    机器学习系统设计–垃圾邮件分类 假定我们现有一封邮件,其内容如下: From: cheapsales@buystufffromme.com To: ang@cs.stanford.edu Subjec ...

  3. 6.6 二分 K-Means 算法-机器学习笔记-斯坦福吴恩达教授

    二分 K-Means 算法 该算法补充自 <机器学习实战> 一书 常规的 K-Means 算法的误差通常只能收敛到局部最小,在此,引入一种称为二分 K-Means(bisecting km ...

  4. 8.3 算法流程与评估-机器学习笔记-斯坦福吴恩达教授

    算法流程与评估 算法流程 有了前面的知识,我们可以得到,采用了高斯分布的异常检测算法流程如下: 选择一些足够反映异常样本的特征 xjx_jxj​ . 对各个特征进行参数估计: μj=1m∑i=1mxj ...

  5. 6.3 优化-机器学习笔记-斯坦福吴恩达教授

    优化 和其他机器学习算法一样,K-Means 也要评估并且最小化聚类代价,在引入 K-Means 的代价函数之前,先引入如下定义: μc(i)=样本x(i)被分配到的聚类中心μ^{(i)}_c=样本\ ...

  6. 5.7 程序示例--基于 SMO 的 SVM 模型-机器学习笔记-斯坦福吴恩达教授

    程序示例–基于 SMO 的 SVM 模型 在这里,我们会实现一个基于 SMO 的 SVM 模型,在其中,提供了简化版 SMO 和 完整版 SMO 的实现. 简化版 SMO:不使用启发式方法选择 (α( ...

  7. 10.2 梯度下降-机器学习笔记-斯坦福吴恩达教授

    梯度下降 批量梯度下降法(Batch gradient descent) 拥有了大数据,就意味着,我们的算法模型中得面临一个很大的 m 值.回顾到我们的批量梯度下降法: 重复直到收敛:重复直到收敛:重 ...

  8. 10.1 掌握大数据-机器学习笔记-斯坦福吴恩达教授

    掌握大数据 在算法分析与优化一节中,我们就提到,在机器学习界流传着这样一句话: It's not who has the best algorithm that wins. It's who has ...

  9. 9.2 协同过滤-机器学习笔记-斯坦福吴恩达教授

    协同过滤(Collaborative Filtering) 回到上一节的问题,每部电影,我们都有评价其内容的特征向量 xxx : 但是,在现实中,不会有任何网站,任何人有精力,有能力去评估每部电影所具 ...

最新文章

  1. python矩阵运算库效率_python - 布尔矩阵运算的最快方法_performance_酷徒编程知识库...
  2. javascript技巧收集(200多个)---转
  3. 我的小型网站搜索分词中遇到的问题
  4. 赛诺朗基智能安全保障平台——安全着你的安全!
  5. 数据结构--图(Graph)详解(三)
  6. mysql 开发 生产_在没有表锁定的情况下在巨大的MySQL生产表...
  7. 服务器驱动精灵_驱动精灵真的可以帮你安装驱动吗?别再无脑装驱动了
  8. 编写可阅读代码的艺术 培训实践 第一部分 表面层次的改进
  9. linux pid文件找不到,linux – 当’正确’时,PID文件是否仍有缺陷?
  10. 请注意调整好自己的心态
  11. 【数据结构实验题】0/1背包问题的递归求解(注意输出所选物品下标的方法)
  12. ssm基于微信平台的牙科就诊信息管理系统的设计与实现 毕业设计源码211157
  13. 故事会-设计模式-策略模式
  14. 想了解Intel vPro(博锐)技术,就来Intel vPro虚拟展厅
  15. python基础螺旋线
  16. 第三方PORTAL认证系统对接华为AC6605实现无线WiFi微信认证、短信认证和访客认证
  17. UVALive 7456 Least Crucial Node
  18. StarGFS海量小文件的高性能存储和保护方案
  19. 公众号代运营的价格一般是多少钱
  20. 4.2w字,详细的带你认识基础I/O【Linux--基础IO】

热门文章

  1. Spring框架深入(四)--SpringMVC配置详解
  2. jstl fn:replace替换换行符
  3. spring事务的传播特性
  4. 贪吃蛇原型实现基本思路
  5. java读写文件大全
  6. Adaboost from Baidu
  7. 认识Linux设备驱动模型和Kobject
  8. 超图桌面版加载3dmax模型基本成功
  9. .Net Core 环境安装
  10. babel7中 preset-env 完全使用