kmeans一般在数据分析前期使用,选取适当的k,将数据聚类后,然后研究不同聚类下数据的特点。

算法原理:

(1) 随机选取k个中心点;

(2) 在第j次迭代中,对于每个样本点,选取最近的中心点,归为该类;

(3) 更新中心点为每类的均值;

(4) j

空间复杂度o(N)

时间复杂度o(I*K*N)

其中N为样本点个数,K为中心点个数,I为迭代次数

为什么迭代后误差逐渐减小:

SSE=

对于

而言,求导后,当

时,SSE最小,对应第(3)步;

对于

而言,求导后,当

时,SSE最小,对应第(2)步。

因此kmeans迭代能使误差逐渐减少直到不变

轮廓系数:

轮廓系数(Silhouette Coefficient)结合了聚类的凝聚度(Cohesion)和分离度(Separation),用于评估聚类的效果。该值处于-1~1之间,值越大,表示聚类效果越好。具体计算方法如下:

对于每个样本点i,计算点i与其同一个簇内的所有其他元素距离的平均值,记作a(i),用于量化簇内的凝聚度。

选取i外的一个簇b,计算i与b中所有点的平均距离,遍历所有其他簇,找到最近的这个平均距离,记作b(i),即为i的邻居类,用于量化簇之间分离度。

对于样本点i,轮廓系数s(i) = (b(i) – a(i))/max{a(i),b(i)}

计算所有x的轮廓系数,求出平均值即为当前聚类的整体轮廓系数,度量数据聚类的紧密程度

从上面的公式,

kmeans k值确定 matlab,kmeans算法原理以及实践操作(多种k值确定以及如何选取初始点方法)...相关推荐

  1. kmeans算法原理以及实践操作

    原文:http://www.cnblogs.com/dudumiaomiao/p/5839905.html kmeans算法原理以及实践操作(多种k值确定以及如何选取初始点方法) kmeans一般在数 ...

  2. LSA/LSI算法原理和实践

    本篇文章主要转载自LSI/LSA算法原理与实践Demo 目录: 1.使用场景 2.优缺点 3.算法原理 3.1.传统向量空间模型的缺陷 3.2.Latent Semantic Analysis (La ...

  3. Apollo星火计划学习笔记——Apollo开放空间规划算法原理与实践

    文章目录 前言 1. 开放空间规划算法总体介绍 1.1 Task: OPEN_SPACE_ROI_DECIDER 1.2 Task: OPEN_SPACE_TRAJECTORY_PROVIDER 1. ...

  4. 【操作系统】进程调度(3):RR(轮转) 算法 原理与实践

    0 前言 接上一篇文章:进程调度(2b):STCF(最短完成时间优先) 算法 原理与实践 1 前提铺垫 除了与上一篇相同的,这里介绍新的基础知识. 1.1 三种类型的程序 计算密集型(CPU导向) 输 ...

  5. 【操作系统】进程调度(2b):STCF(最短完成时间优先) 算法 原理与实践

    0 前言 接上一篇文章:进程调度(2a):SJF(短任务优先) 算法 原理与实践 1 前提铺垫 与上一篇同. 2 STCF 原理 STCF(Shortest Time-to-Completion Fi ...

  6. 【操作系统】进程调度(2a):SJF(短任务优先) 算法 原理与实践

    0 前言 接上一篇文章:进程调度(1):FIFO(先进先出)算法 原理与实践 1 前提铺垫 请参考上一篇文章的前提铺垫部分,本文与之完全一致. 2 SJF 原理 SJF(Shortest Job Fi ...

  7. 【操作系统】进程调度(1):FIFO(先进先出)算法 原理与实践

    0 前言 本文基于书籍<Operating System:Three Easy Pieces>. 中译本:<操作系统导论>,中译本质量还可以,但是英文版后来的更新,中文版目前没 ...

  8. cordic sinh matlab,cordic算法的应用(三角函数、相位模值、乘法除法、双曲函数、指数平方差)...

    cordic算法是一种易于硬件实现的求基本函数的算法,将复杂运算转化为加法.减法和移位操作的组合,避免硬件上不易实现的复杂运算,比如除法,开方等,另外可以避免查找表方法带来的占用较多存储资源的问题.关 ...

  9. LSI/LSA算法原理与实践Demo

    目录: 1.使用场景 2.优缺点 3.算法原理 3.1.传统向量空间模型的缺陷 3.2.Latent Semantic Analysis (Latent Semantic Indexing) 3.3. ...

最新文章

  1. pgsql,mysql case when
  2. 《你必须知道的495个C语言问题》知识笔记及补充
  3. JVM:类加载机制之类加载器
  4. self studying room list available at campus
  5. mysql 查看运行级别_运行级别及进程
  6. HTMLTestRunner.py内容
  7. Ubuntu 13.04设置root用户登录图形界面
  8. 微信搜一搜品牌官方区新增视频号触点
  9. Web.xml配置详解之context-param (加载spring的xml,然后初始化bean看的)
  10. Java实现QQ机器人
  11. 可编程渲染管线(SRP)_学习笔记
  12. python提示语法错误_python出现语法错误怎么办
  13. mysql 与文件系统_MySQL文件系统
  14. Kubernetes 污点和容忍
  15. 嵌入式linux远程桌面,嵌入式开发配置远程桌面和FTP
  16. 人人公司启动史上最大规模校园招聘
  17. 基于MATLAB的DTMF信号的仿真分析
  18. outlook 找不到电子邮件服务器,使用Outlook收取电子邮件并保留邮箱服务器中的邮件的设置方法...
  19. 最值得你收藏的金字塔之谜详解
  20. Firefox常用扩展(extension)推荐

热门文章

  1. 关于解释和编译,静态语言和脚本语言
  2. windows server服务器下用Gogs搭建Git服务器教程详解
  3. Linux下TInbsp;omap芯片nbsp;MUX…
  4. 从python开始学编程-vamei(1)
  5. android 蓝牙 接收不完整,安卓蓝牙串口中InputStream数据接收不完整,已解决
  6. 有N个小朋友围成一圈玩击鼓传花游戏,将小朋友编号为1~N,从1号开始传花,每次传3个,拿到花的小朋友表演节目后退出,扔给后一位没有表演的同学,求同学们的表演次序?
  7. oracle中管理员账户登录,Oracle使用管理员账户登录
  8. 谷歌浏览器 跨域访问 设置
  9. 如何保护您的Gmail和Google帐户的安全
  10. 省市区js(可以得到省、市、区的行政代码和名称)