3.2K-means

一、k-means 00:03

k-means算法是常见的聚类算法,其核心步骤包括:

  • 人工指定聚类数量k,算法无法自动推断类别数

  • 初始化阶段:随机选择k个中心点作为各类别的初始代表

  • 迭代过程包含两个交替步骤:

    • 数据点分配:计算每个点到k个中心的最近邻,确定类别归属
    • 中心点更新:将每个类别的中心点重置为该类数据点的均值
1.k-means的定义 01:25

数学定义为:给定n个d维数据点和k个类别,用μk表示第k类的d维中心点,rnk为二元指示变量(当第n个点属于第k类时rnk=1,否则为0)。优化目标函数J为所有数据点到所属类别中心的距离平方和,该函数在部分文献中称为distortion measure。

2.k-means的损失函数优化 02:33

优化过程采用EM算法框架:

  • 固定μk,优化rnk(E步)
  • 固定rnk,优化μk(M步)
1) E step 02:54

E步执行最近邻分配:当中心点μk固定时,每个数据点独立选择距离最近的中心点对应类别,即令该类别rnk=1,其余为0,此时目标函数J达到局部最小。

2) M step 03:22

M步通过求导更新中心点:固定rnk后,对目标函数J求关于μk的一阶导数并令其为零,可得中心点更新公式μk=∑rnkxn/∑rnk,即该类数据点的算术平均值。

3.k-means的示意图 04:22

算法流程示意图说明:

  • 图a初始化:随机选择红蓝两中心点
  • 图b E步:按最近邻原则分配数据点类别
  • 图c M步:重新计算两类中心点为所属点均值
  • 收敛条件包括:
  • 中心点移动量小于阈值
  • 类别分配不再变化
  • 特殊情况下可能出现中心点震荡,需设置最大迭代次数终止
4.k-means的实践技巧 06:33

应用技巧包括:

  • 初始化优化:从数据点中选取初始中心而非完全随机

  • 多轮运行:选择目标函数最小的结果作为最终输出

  • 加速方法 :

    • 使用kd-tree/octree加速最近邻搜索
    • mini-batch变体:每次迭代使用数据子集降低计算量
5.k-means的顺序更新 08:06

sequential k-means特点:

  • 每次迭代仅处理单个数据点xn
  • 中心点更新公式为μk←μk+η(xn-μk),η为学习率
  • 批量处理时即演变为mini-batch k-means
6.k-medoids 09:22

k-medoids改进动机:

对比维度 k-means k-medoids
中心点性质 可不在数据集中 必须为实际数据点
抗噪能力 易受离群点影响 通过最小化距离和抵抗噪声
数据类型 需可计算均值 支持任意可定义距离的数据
1) k-medoids的estep 13:05

E步与k-means一致:通过预定义的距离函数v计算数据点到各中心点的距离,按最近邻原则分配类别。

2) k-medoids的mstep 13:44

M步采用枚举法:

  • 对每个类别遍历其所有数据点
  • 计算各点作为中心点时与类内其他点的距离和
  • 选择使距离和最小的点作为新中心点
  • 时间复杂度为O(nk²),其中nk为类内点数。
7.k-means的应用 15:50
1) 例题:图像压缩示例 15:55
  • 图像压缩原理:将h×w×3的三通道图像(红、蓝、绿)转换为n×3的点云数据,通过k-means聚类将n×3数据压缩为k×3中心点(k远小于n)。
  • 压缩实现:原始图像的每个像素点被归类到k个中心点之一,存储时仅需记录n个标签(对应k个类别)而非原始RGB值。
  • 压缩效果对比:示例中原始图像包含1600万种颜色(RGB各8位),通过k=2或k=10的聚类即可显著减少颜色数量,肉眼难以区分压缩前后差异。
  • 颜色数量计算:RGB三通道各8位可组合出2^24(1600万)种颜色,此为数字图像基础标准。
2) k-means压缩原理 19:58
参数 原始存储空间 压缩后存储空间 说明
原始RGB数据 24n bit - 每个像素占用24位(3通道×8位)
压缩标签数据 - n⌈log₂k⌉ bit 每个像素用⌈log₂k⌉位表示所属类别
中心点数据 - 24k bit k个中心点各占24位
总压缩率 24n n⌈log₂k⌉ + 24k 当k远小于n时(如k=20),压缩率显著提升
应用限制 - 仅适用于颜色压缩 点云压缩中仅能压缩颜色属性,无法压缩空间坐标(xyz)
8.k-means的局限性 22:31
  • 预设k值问题:聚类数量k需预先设定,实际应用中常依赖实验猜测,缺乏自动确定机制。
  • 噪声敏感性:对异常点敏感,需通过k-medoids等改进算法缓解噪声影响。
  • 硬分类缺陷:仅支持非概率性分类,边界点无法输出隶属概率(如50%属A类,50%属B类),此缺陷由高斯混合模型(GMM)弥补。
相关推荐
大龄程序员狗哥5 小时前
第47篇:使用Speech-to-Text API快速构建语音应用(操作教程)
人工智能
KKKlucifer5 小时前
数据安全合规自动化:策略落地、审计追溯与风险闭环技术解析
人工智能·安全
RWKV元始智能5 小时前
RWKV超并发项目教程,RWKV-LM训练提速40%
人工智能·rnn·深度学习·自然语言处理·开源
dyj0955 小时前
Dify - (一)、本地部署Dify+聊天助手/Agent
人工智能·docker·容器
IronMurphy5 小时前
【算法四十三】279. 完全平方数
算法
墨染天姬5 小时前
【AI】Hermes的GEPA算法
人工智能·算法
小超同学你好5 小时前
OpenClaw 深度解析系列 · 第8篇:Learning & Adaptation(学习与自适应)
人工智能·语言模型·chatgpt
紫微AI5 小时前
前端文本测量成了卡死一切创新的最后瓶颈,pretext实现突破了
前端·人工智能·typescript
papership5 小时前
【入门级-数据结构-3、特殊树:完全二叉树的数组表示法】
数据结构·算法·链表
码途漫谈5 小时前
Easy-Vibe开发篇阅读笔记(四)——前端开发之结合 Agent Skills 美化界面
人工智能·笔记·ai·开源·ai编程