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)弥补。
相关推荐
feasibility.2 小时前
在OpenCode使用skills搭建基于LLM的dify工作流
人工智能·低代码·docker·ollama·skills·opencode·智能体/工作流
进击monkey2 小时前
PandaWiki:开源企业级AI知识库工具,基于RAG架构的私有化部署方案
人工智能·开源
zy_destiny3 小时前
【工业场景】用YOLOv26实现桥梁检测
人工智能·深度学习·yolo·机器学习·计算机视觉·目标跟踪
蒟蒻的贤3 小时前
leetcode链表
算法·leetcode·链表
2501_941837263 小时前
蘑菇可食用性分类识别_YOLO11分割模型实现与优化_1
人工智能·数据挖掘
2501_941837263 小时前
基于YOLO11-Aux改进的圣女果目标检测实现
人工智能·目标检测·计算机视觉
莫有杯子的龙潭峡谷3 小时前
在 Windows 系统上安装 OpenClaw
人工智能·node.js·安装教程·openclaw
Funny_AI_LAB3 小时前
AI Agent最新重磅综述:迈向高效智能体,记忆、工具学习和规划综述
人工智能·学习·算法·语言模型·agi
zhangshuang-peta3 小时前
超越Composio:ContextForge与Peta作为集成平台的替代方案
人工智能·ai agent·mcp·peta