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

机器学习--K-Means

K均值聚类

算法过程

K − m e a n s K-means Kmeans 是 聚类 c l u s t e r i n g clustering clustering 算法的一种,就是给你一坨东西,让你给他们分类:

在这里插入图片描述

  我们的 K − m e a n s K-means Kmeans 大概是这样一个流程:

  1. 第一步随机生成两个点(因为这里我想分两类,你想分几类你就弄几个点),标记为两个聚类中心 c l u s t e r    c e n t r i o d cluster \; centriod clustercentriod,像这样:

在这里插入图片描述

  1. 然后重复以下两个步骤:

   1. 遍历每个点 x ( i ) x^{(i)} x(i),分别计算点 x ( i ) x^{(i)} x(i) 到两个聚类中心的距离 d 1 d_1 d1 d 2 d_2 d2,然后比较大小。并标记这个点为距离更小的那一类

   2. 分别遍历同一类的所有点,计算这些点的几何平均位置,并把聚类中心移动到这个位置

  这样说起来可能很抽象,我们还是用图像来更清晰的表示一下这个过程:

在这里插入图片描述

  图画到这里我们就能明显的观察到两个聚类已经被划分好了。

优化目标函数

  像前面介绍的线性回归、逻辑回归、 S V M SVM SVM 一样,这里的 K − m e a n s K-means Kmeans 也有一个用于优化的函数:

n o t a t i o n notation notation c i c_i ci 表示点 x i x_i xi 的类别, μ k \mu_k μk 表示聚类中心 k k k μ c i \mu_{c_i} μci 表示 x i x_i xi 所属的那个聚类中心

J ( c 1 , ⋯   , c m , μ 1 , ⋯   , μ K ) = 1 m ∑ i = 1 m ∣ x i − μ c i ∣ 2 J(c_1, \cdots, c_m, \mu_1, \cdots, \mu_K) = \frac{1}{m}\sum_{i = 1}^m |x_i - \mu_{c_i}|^2 J(c1,,cm,μ1,,μK)=m1i=1mxiμci2

  我们要做的就是:

min ⁡ c , μ J ( c 1 , ⋯   , c m , μ 1 , ⋯   , μ K ) \min\limits_{c, \mu} J(c_1, \cdots, c_m, \mu_1, \cdots, \mu_K) c,μminJ(c1,,cm,μ1,,μK)

  看得出来,这就是要最小化所有点 x i x_i xi 与其所属的聚类中心 μ x i \mu_{x_i} μxi 的距离的平方和。

114514 114514 114514 k − m e a n s k-means kmeans

  可能你也注意到了,我们如果只跑一遍 k − m e a n s k-means kmeans 的话可能不会得到一个很好的分类方案,所以我们考虑每次随机初始化聚类中心,然后跑很多遍(取决于你的数据规模和时间) k − m e a n s k-means kmeans,对于每次计算出来的 c , μ c, \mu c,μ 算出它的 J ( c , μ ) J(c, \mu) J(c,μ),然后在其中选择 J ( c , μ ) J(c, \mu) J(c,μ) 最小的那个分类方案作为最后的答案。


http://www.kler.cn/news/307095.html

相关文章:

  • 浙大数据结构:05-树7 堆中的路径
  • PHP智慧家政同城服务家政系统小程序源码
  • Java集合(八股)
  • 大数据新视界 --大数据大厂之数据治理之道:构建高效大数据治理体系的关键步骤
  • CleanMyMac 5 for Mac 最新中文破解版下载 系统优化垃圾清理工具
  • python AssertionError: Torch not compiled with CUDA enabled
  • 随机规划及其MATLAB实现
  • Jetpack PDF库:解锁Android应用中的PDF功能
  • FloodFill算法【下】
  • WGCAT工单系统可以让客户自己提交工单吗
  • Day21笔记-封装继承
  • MySQL练手题--体育馆的人流量(困难)
  • [数据集][目标检测]疟疾恶性疟原虫物种目标检测数据集VOC+YOLO格式948张1类别
  • 大学生看过来,必备4款写论文AI写作网站先稿后付
  • 《论负载均衡技术在Web系统中的应用》写作框架,软考高级系统架构设计师
  • Python网络爬虫:如何高效获取网络数据
  • vue3 透传 Attributes
  • TDengine 签约前晨汽车,解锁智能出行的无限潜力
  • 【计算机网络】网络通信中的端口号
  • Android SPN/PLMN 显示逻辑简介
  • SpringBoot框架Web开发
  • 第十一章 【后端】商品分类管理微服务(11.1)——创建父工程
  • Python 实现 LM 算法(Levenberg-Marquardt)
  • PCIe进阶之TL:First/Last DW Byte Enables Rules Traffic Class Field
  • Linux命令分享 四 (ubuntu 16.04)(vi操作文件)
  • 第十七节:学习Hutool上传文件(自学Spring boot 3.x的第四天)
  • C++比大小游戏
  • 虚幻引擎Gameplay探索 Actor 之间的高效通信与交互技巧一
  • 鹏哥C语言39---goto语句(关机程序 )
  • UE4_后期处理六—复古电视效果