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

通俗易懂讲透 GMM 高斯混合聚类

通俗易懂讲透 GMM 高斯混合聚类|本科生/研究生都能看懂

本文用大白话+生活案例+公式拆解+完整代码+可视化,把 GMM(高斯混合模型)从原理、EM 算法、优缺点到实战讲得明明白白,适合机器学习入门、面试复习、课程笔记。


一、先搞懂:GMM 到底是什么?

一句话定义:
GMM = 用多个“钟形曲线(高斯分布)”去拟合数据,按概率做软聚类的算法。

和 K-Means 最大区别:

  • K-Means:硬分组,一个点只能属于一类
  • GMM:软分组,一个点可以按概率属于多个类
    比如:这个点 70% 属于A类,30% 属于B类

二、超通俗例子:饮料分类

你要把饮料分成两类:

  1. 气泡饮料(可乐、雪碧)
  2. 果汁饮料(橙汁、苹果汁)

用两个特征:

  • 甜度
  • 气泡强度

GMM 做的事:

  1. 假设两类饮料各自服从一个高斯分布(钟形)
  2. 算出每瓶饮料属于哪一类的概率
  3. 自动调整两个分布的中心、形状,让数据拟合最好

三、GMM 核心思想(3 句话)

  1. 数据是由K 个高斯分布混合生成
  2. 每个簇 = 一个高斯分布(均值 + 协方差)
  3. EM 算法迭代求解:先算概率,再更新分布

四、GMM 最关键的 3 个参数

对每个高斯分布 k:

  1. π_k:权重(这个簇占多少比例)
  2. μ_k:均值(中心位置)
  3. Σ_k:协方差矩阵(形状、方向、胖瘦)

五、EM 算法是什么?(最简单解释)

GMM 用 EM 算法训练,只做两件事:

1. E 步(Expectation)

算每个点属于每个簇的概率(叫责任度 γ)

2. M 步(Maximization)

用这些概率重新估计 μ、Σ、π

不断循环,直到分布不再变化。


六、核心公式(看懂就行)

1. 单个高斯分布

P ( x ) = 1 ( 2 π ) d / 2 ∣ Σ ∣ 1 / 2 exp ⁡ ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) P(x) = \frac{1}{(2\pi)^{d/2}|\Sigma|^{1/2}} \exp\left(-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)\right)P(x)=(2π)d/2∣Σ1/21exp(21(xμ)TΣ1(xμ))

2. 混合分布

P ( x ) = ∑ k = 1 K π k ⋅ P ( x ∣ μ k , Σ k ) P(x) = \sum_{k=1}^K \pi_k \cdot P(x|\mu_k,\Sigma_k)P(x)=k=1KπkP(xμk,Σk)

3. 责任度(E 步)

γ i k = π k P ( x i ∣ μ k , Σ k ) ∑ j π j P ( x i ∣ μ j , Σ j ) \gamma_{ik} = \frac{\pi_k P(x_i|\mu_k,\Sigma_k)}{\sum_j \pi_j P(x_i|\mu_j,\Sigma_j)}γik=jπjP(xiμj,Σj)πkP(xiμk,Σk)

4. M 步更新

μ k = ∑ γ i k x i ∑ γ i k \mu_k = \frac{\sum \gamma_{ik}x_i}{\sum \gamma_{ik}}μk=γikγikxi
Σ k = ∑ γ i k ( x i − μ k ) ( x i − μ k ) T ∑ γ i k \Sigma_k = \frac{\sum \gamma_{ik}(x_i-\mu_k)(x_i-\mu_k)^T}{\sum \gamma_{ik}}Σk=γikγik(xiμk)(xiμk)T
π k = ∑ γ i k N \pi_k = \frac{\sum \gamma_{ik}}{N}πk=Nγik


七、代码实战:GMM 图像分割(超炫酷)

直接复制可运行,包含:

  • 图片加载
  • GMM 聚类分割
  • 软概率图输出
  • 自定义色彩图
importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.mixtureimportGaussianMixturefromskimageimportiofrommatplotlib.colorsimportListedColormap# ===================== 1. 加载图片 =====================image_url="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Example.jpg/800px-Example.jpg"image=io.imread(image_url)plt.figure(figsize=(8,8))plt.imshow(image)plt.title("原始图片")plt.axis("off")plt.show()# ===================== 2. 展平像素 =====================h,w,_=image.shape pixels=image.reshape(-,3)# ===================== 3. GMM 聚类 =====================n_components=4gmm=GaussianMixture(n_components=n_components,random_state=42)labels=gmm.fit_predict(pixels)# ===================== 4. 分割结果 =====================seg_img=labels.reshape(h,w)custom_cmap=ListedColormap(["#FF5733","#33FF57","#3357FF","#FFD700"])plt.figure(figsize=(8,8))plt.imshow(seg_img,cmap=custom_cmap)plt.title("GMM 图像分割结果")plt.axis("off")plt.show()# ===================== 5. 软概率图 =====================proba=gmm.predict_proba(pixels)[:,0].reshape(h,w)plt.figure(figsize=(8,8))plt.imshow(proba,cmap="plasma")plt.title("第1类概率热力图")plt.axis("off")plt.show()

八、GMM 优点(面试必背)

  1. 软聚类:输出概率,边界更自然
  2. 能拟合任意形状簇(椭圆、长条、斜向)
  3. 生成式模型:可做密度估计、异常检测
  4. 能捕捉特征相关性(协方差矩阵)
  5. 高维数据友好

九、GMM 缺点

  1. 必须指定 K(簇数量)
  2. 对初始化敏感
  3. 比 K-Means 慢
  4. 假设数据服从高斯分布
  5. 容易局部最优

十、GMM vs K-Means(速记表)

特点K-MeansGMM
聚类方式硬分类软分类(概率)
簇形状球形任意椭圆/方向
输出标签概率
速度较慢
初始化敏感更敏感
高维一般较好

十一、什么时候用 GMM?

适合

  • 簇是椭圆形、斜向、非球形
  • 需要概率输出
  • 数据近似高斯分布
  • 图像分割、异常检测、密度估计

不适合

  • 追求超快速度
  • 数据完全不符合高斯分布
  • 完全不知道 K 是多少

十二、一句话总结

GMM 是基于高斯混合的概率软聚类算法,用 EM 算法迭代拟合多个钟形分布,能处理任意形状簇,是机器学习最经典的聚类模型之一。

http://www.jsqmd.com/news/640946/

相关文章:

  • 第二篇 —— 项目启动阶段怎么做:PM、UI、UX 如何共同理解业务、用户与机会
  • 文本搜图像、语音唤3D模型、草图查视频——跨模态检索已进入零样本时代,你还在用CLIP微调?
  • 3步轻松上手西安交通大学LaTeX论文模板:新手必读指南
  • 深度学习金融前端演进
  • 4月14日成都地区友发产镀锌方矩管(Q235B;直径20-400mm)现货报价 - 四川盛世钢联营销中心
  • DownKyi哔哩下载姬:B站视频下载的终极解决方案,轻松构建个人离线资源库
  • 实验六 存储器实验:从触发器到RAM的实战解析
  • 11.庖丁解牛:深度负反馈下的“虚短”与“虚断”——从华成英《模电》到电路分析的化繁为简
  • 3分钟快速上手:Markdown Viewer浏览器扩展的终极使用指南
  • 快速上手CYBER-VISION:体验未来科技漫画风格的AI交互界面
  • 用PPO算法训练AI团队:从零实现多智能体协作捕猎(附完整代码)
  • CefFlashBrowser:轻松在现代电脑上重温经典Flash游戏的最佳工具
  • APNs 推送通知实战指南:从证书生成到服务器对接
  • Feroxbuster vs Dirsearch终极对决:2024年目录爆破工具选型指南
  • 别再只调参了!用消融实验(Ablation Study)给你的AI项目做一次“外科手术”
  • 2026奇点智能技术大会AIAgent框架深度白皮书(官方未公开的7层抽象架构图首次流出)
  • 避坑指南:在Win11上搞定PSCAD 5.0与MATLAB R2022a联合仿真(附VS2015+Intel Fortran配置)
  • Speechless:三步实现微博永久备份的终极指南
  • 一杯奶茶钱,解决两天的委屈
  • 别再为静电损坏发愁!手把手教你用SP3232E芯片为你的嵌入式设备加上RS-232“金钟罩”
  • Python工厂损耗智能分摊代码,打破老会计经验估成本套路,录入投料成品数据,按行业系数代码,自动分摊损耗算单品成本,数据精准碾压主观经验估算,定价不再凭感觉。
  • PDF-Extract-Kit-1.0表格识别进阶:复杂合并单元格处理方案
  • 快速上手Axure中文界面:3分钟完成汉化安装指南
  • 避坑指南:Xilinx SelectIO IP核例程里的这些细节,新手最容易搞错
  • 2026届毕业生推荐的十大降AI率神器实测分析
  • Intv_AI_MK11智能运维(AIOps)实战:日志分析与故障预测
  • 从校准数据到量化模型:深入解析RKNN的INT8量化实现路径
  • 谁是 geo 代理源头厂家?2026 年 GEO 公司代理加盟推荐:五大服务商综合评测与选择避坑指南 - 第三方测评
  • 抖音下载器完整教程:如何快速批量下载无水印视频和用户主页
  • 深入解析Camera矩阵:从Intrinsic到Extrinsic的完整指南