无论什么数据集,理论上都可以形成一定数量的集群。

例如,党我们拿到学生成绩表时,我们可以把成绩分数划分为优(90分左右)、良(80分左右)、中(70分左右)、差(60分及以下)。

再例如对于工人工资表,我们也可以把工人按照工资划分成一定数量的集群,每个集群一定是围绕某个工资水平的。

甚至我们可以抓取所有微信公众文章,将文章标题映射为向量表示(假设没有那些标题党文章的话),我们就可以对这些文章按标题进行集群分类。

我们还可以使用集群算法来对图像进行重新分配颜色,例如有一张灰度图,图像是由像素点构成,我们希望只用5种颜色来对像素点进行重构,将原始像素点划分成5个集群,然后对5个集群分别涂上5种不同的颜色,那么我们可以是用5-Means方法来做这件事,效果如下图所示(左边为原始图像,右边为使用5-Means重新染色的图像):

值得注意的是,集群算法既然是一种无监督学习,那么就没有绝对正确的集群算法,只能是一步一步使得集群划分更加优化。

K-Means集群算法(以下简称K-Means)是一种无监督机器学习算法,顾名思义,它使用K个集群对数据集进行分类,K的大小通常需要预先设定好,然后就可以靠距离中心点(Means)的远近来实现分类。

假设现有一个点集S,需要划分成S_1,S_2,...,S_K,那么使用K-Means的流程如下:
  (1)设定好K的大小,随机选取K个点作为初始中心点;
  (2)计算每个点到这K个中心点的距离大小,选取最近的中心点,划分到以该中心点为中心的集群中去;
  (3)重新计算K个新集群的中心点;
  (4)如果中心点保持不变,则结束K-Means过程。否则,重复进行(2)、(3)步;

K-Means的算法过程的确很简单,前文我们说过K要预先设定,但是实际中可能K需要不停去trials-and-errors才能确定最优的K,那么对于一个特定问题,如何找到最优的K呢?

通常,提到最优这个词必须得有个标准,这里也是一样,确定最优K的标准就是判断集群中每个点到集群中心的距离平方,距离平方越小,说明我们的集群划分越密集,即更符合集群的固有属性。

因此,可以设定K从1依次增大,然后判断误差曲线的弯曲程度,我们可以认为误差曲线的拐点处就是K的最优值。K越小,集群划分较少,点不太集中;相反K越大,及集群划分较多,给人一种过拟合的感觉(极端情况是100个点划分成100个集群,听起来似乎已经没有集群的概念了)。

K-Means集群算法相关推荐

  1. 乌鸦搜索算法和粒子集群算法_乌鸦和乌鸦

    乌鸦搜索算法和粒子集群算法 Currently enjoying two new albums by two older bands: 目前正在欣赏两个老乐队的两张新专辑: The Black Cro ...

  2. 如何在Python中建立和训练K最近邻和K-Means集群ML模型

    One of machine learning's most popular applications is in solving classification problems. 机器学习最流行的应 ...

  3. 【Redis】集群(cluster)

    文章目录 Redis集群(cluster) 定义 官网 作用 集群算法(分片->槽位) 分片(每台Redis实例) 槽位 slot槽位映射 哈希取余分区 一致性哈希算法分区 哈希槽分区 搭建三主 ...

  4. 运维工程师必备之负载 均衡集群及LVS详解

    原文地址:运维工程师必备之负载 均衡集群及LVS详解作者:蚁巡运维平台 来源: chrinux 的BLOG 时间: 2013-07-01 14:00 此博文主要介绍集群和负载均衡的基本理论和类别,内容 ...

  5. 灵活、高效的云原生集群管理经验:用 K8s 管理 K8s

    作者 | 淮右.临石 **导读:**单 K8s 集群为用户提供了 Namespace 级别的隔离能力,理论上支持不超过 5K Node.15W Pod.多 K8s 集群则解决了单集群的资源隔离.故障隔 ...

  6. 运维工程师必备之负载均衡集群及LVS详解

    此博文主要介绍集群和负载均衡的基本理论和类别,内容看着比较枯燥.无味的,但是要想成为一个好的linux运维工程师,这些基本理论是必须理解透彻,才会在后来的系统调优和集群架构中得心应手,所以想成为lin ...

  7. 0685-6.2.0-什么是Cloudera虚拟私有集群和SDX-续

    Fayson的github: https://github.com/fayson/cdhproject 推荐关注微信公众号:"Hadoop实操",ID:gh_c4c535955d0 ...

  8. Python实现鸡群算法

    文章目录 算法简介 Python实现鸡和鸡群 鸡群更新 优化迭代 测试 源码地址: 鸡群算法之Python实现 算法简介 鸡群算法,缩写为CSO(Chicken Swarm Optimization) ...

  9. 基于控制的角度无人机集群——避障(有源代码)

    无人机集群--避障 前言 一.浅谈避障 二.复杂公式 三.仿真效果 1.集群效果 2.避障效果 总结 前言 关于无人机集群避障的问题,我在之前的博客中已经简单描述了一下. 三维空间无人机集群编队控制, ...

最新文章

  1. 设计模式之工厂方法模式(Factory Method)摘录
  2. Linux下的tr编辑器命令详解
  3. c++/cli之我见
  4. postsharp初体验
  5. 优化Java序列化– Java,XML,JSON,Kryo,POF
  6. 谈谈神经网络的大规模训练优化
  7. C# 字符串格式化测试小工具
  8. WORD样式保存为主题集?
  9. lvs/nginx/haproxy优缺点
  10. Scikit-Learn (1.Sklearn提供的常用数据集 - 自带的小数据集)
  11. OMP与MP算法流程与代码
  12. Android Studio下载、安装和配置+SDK+tools下载(无敌超级详细版本)
  13. excel查找通配符波浪号,星号
  14. 计算机基础与知识点总结,计算机基础知识点总结
  15. json解析教程(1)程序员不得不掌握的数据格式json
  16. windows防火墙设置_详解关闭Windows防火墙操作技巧,让你彻底断开与外网的连接...
  17. 于是,我搭了个自己的博客网站
  18. 被火龙强奸了100次~~~怨念!
  19. Android审计平台,Android系统安全审计方法研究
  20. s7填表指令att_S7-200PLC 表操作指令

热门文章

  1. 干了这碗鸡汤!“机器人版 Linux”ROS崛起背后的隐秘故事大揭秘
  2. 免费赠书啦!逃离帝都,书搬不动,大量AI类、技术类、科幻类书免费送给小伙伴...
  3. 推荐几款好用的VsCode色彩主题
  4. (已解决)RedisTemplate写入数据 \xAC\xED\x00\x05t\x00 序列化问题
  5. 一组超赞的母亲节祝福创意海报
  6. How to customize the UI in IBM ITIM Solution
  7. android 酷狗音乐 ip,“音乐+IP”融合模式 夯实酷狗音乐原创硬实力
  8. 正弦稳态电路的相关概念
  9. Oracle 常用命令总结
  10. 2022年安全员-A证考题及答案