当前位置: 首页 > news >正文

K-means 怎么选 K ?

K-means 怎么选 K ?

这个问题我们可以回到 K-means 或是 Cluster 方法的核心目标:

同一群里的资料同质性高,不同群的资料同质性低。

这边的同质性高会以「距离」作为指标,也就可以换句话说:

同一群里内的距离近,不同群间的距离远。

基于这个概念,提供两种方式来挑选 K:

1. 手肘法(elbow method)

其概念是基于 SSE(sum of the squared errors,误差平方和)作为指标,去计算每一个群中的每一个点,到群中心的距离。算法如下:

其中总共有 K 个群, Ci 代表其中一个群,mi 表示该群的中心点。

根据 K 与 SSE 作图,可以从中观察到使 SSE 的下降幅度由「快速转为平缓」的点,一般称这个点为拐点(Inflection point),我们会将他挑选为 K。因为该点可以确保 K 值由小逐渐递增时的一个集群效益,因此适合作为分群的标准。

2. 轮廓系数法(Silhouette Coefficient)

轮廓系数法的概念是「找出相同群凝聚度越小、不同群分离度越高」的值,也就是满足 Cluster 一开始的目标。其算法如下:

其中,凝聚度(a)是指与相同群内的其他点的平均距离;分离度(b)是指与不同群的其他点的平均距离。 S 是指以一个点作为计算的值,轮廓系数法则是将所有的点都计算 S 后再总和。 S 值越大,表示效果越好,适合作为 K。

结论

从上面的例子来说,轮廓系数法容易找出区域最佳解,因此实务上会搭配不同的方法相互参考。


License

本著作由Chang Wei-Yaun (v123582)制作, 以创用CC 姓名标示-相同方式分享 3.0 Unported授权条款释出。

转载于:https://juejin.im/post/5c4521a26fb9a049ab0deca2

相关文章:

  • 蚂蚁金服庆涛:OceanBase支撑2135亿成交额背后的技术原理
  • Electron构建跨平台应用Mac/Windows/Linux
  • 每个 JavaScript 开发者都该了解的 ES2018 新特性
  • 混合式开发框架资料汇总
  • Python爬虫初学者需要了解的知识与技能
  • js获取客户端本地ip
  • 「小程序JAVA实战」小程序视频播放的时候生命周期的控制(56)
  • oracle中无法用退格和上下翻命令解决
  • 我发起并创立了一个 Javascript 前端库 开源项目 jWebForm
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • C# 8新提案让泛型Attribute成为现实
  • v-if和v-for连用出现的问题
  • 导入javax.servlet。伺服登记无法解决:The import javax.servlet.MultipartConfigElement cannot be resolved...
  • 与柯尼塞格达成合作后 恒大或将继续瞄准中高端新能源车
  • eclipse 插件编写(一)(转)
  • Android交互
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • Apache的基本使用
  • Git同步原始仓库到Fork仓库中
  • javascript面向对象之创建对象
  • mysql innodb 索引使用指南
  • mysql外键的使用
  • PHP CLI应用的调试原理
  • ReactNativeweexDeviceOne对比
  • Vue全家桶实现一个Web App
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 小程序测试方案初探
  • 协程
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #ifdef 的技巧用法
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (转) RFS+AutoItLibrary测试web对话框
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .Net CoreRabbitMQ消息存储可靠机制
  • @ConditionalOnProperty注解使用说明
  • @RequestBody与@ModelAttribute
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [2018][note]用于超快偏振开关和动态光束分裂的all-optical有源THz超表——
  • [Arduino学习] ESP8266读取DHT11数字温湿度传感器数据
  • [AutoSar]工程中的cpuload陷阱(三)测试
  • [BZOJ1053][HAOI2007]反素数ant
  • [C#]DataTable常用操作总结【转】
  • [Docker]十二.Docker consul集群搭建、微服务部署,Consul集群+Swarm集群部署微服务实战
  • [HackMyVM]靶场Crossbow
  • [JavaWeb]——过滤器filter与拦截器Interceptor的使用、执行过程、区别
  • [Labtools 27-1429] XML parser encountered a problem in file
  • [loj#115] 无源汇有上下界可行流 网络流
  • [NOI2014]购票
  • [NSSCTF 2nd] web刷题记录
  • [one_demo_5]命令行输入输出
  • [Python]闭包
  • [Python]装饰器